Nagios 告警配置太複雜?CA簡單實現Nagios自定義多功能告警

Nagios 是一個插件式的監控系統,可以監控服務的運行狀態和網絡信息等,並能監視所指定的本地或遠程主機參數以及服務,同時提供異常告警通知功能等。Nagios 支持客戶端的數據採集,通過編寫客戶端插件,可以獲取各種監控數據,並提供了 Web 管理界面進行數據查詢。其產品的主要功能側重於監控服務的可用性,根據設置的閥值進行告警,但大部分告警邏輯都是通過監控插件實現的。

目前 Nagios 告警支持的通知方式有短信和郵件,但是很明顯,這兩種通知方式會導致重要級別的告警無法及時查看,並解決相關問題,而且在產生告警風暴的時候,這兩種通知方式就更無法滿足用戶的多樣化通知需求,於是如何將告警通過用戶的多樣化需求達到多種化通知方式,並且有效的避免告警風暴,就成了目前的首要解決問題。

智能告警平臺 Cloud Alert睿象雲自研的一款告警管理平臺,就能夠完美解決這個問題!用戶可以將告警通過不同的需求,指定多種化通知方式,目前支持的通知方式有電話、短信、微信、郵件、APP、釘釘等;並且當告警風暴來臨時,用戶可以通過勾選算法智能降噪或設置告警壓縮規則,使得相同類型的告警進行壓縮,有效的避免告警風暴。用戶也可以將不同的監控平臺接入到 Cloud Alert 內進行統一化管理。

接下來就說下是如何設置的吧~

主要分爲三大部分,首先是將 Nagios 集成到此平臺當中,其次設置分派策略,也就是指定條件(用戶自定義)下的告警發生時通知的人,最後是設置通知策略,根據用戶自身需求設置多元化的通知方式。

首先肯定是進入官網 www.aiops.com,登錄賬號。
在這裏插入圖片描述

一.Nagios集成

  1. 在 Cloud Alert 中創建 Nagios 應用,點擊集成 — 監控工具 — Nagios
    在這裏插入圖片描述
  2. 填寫“應用名稱”,點擊“保存並獲取應用key”
    在這裏插入圖片描述
  3. 下載Agent安裝包

Nagios 服務器中,使用 root 或 nagios 用戶下載

wget
https://download.aiops.com/ca_agent/nagios/ca_agent-4.1.3.1-linux-x64.tar.gz

  1. 安裝Agent

注:下文以Nagios默認安裝路徑/user/local/nagios/爲例,如果你的Nagios服務器不是安裝在該目錄,請自行替換。

tar -xzf ca_agent-4.1.3.1-linux-x64.tar.gz

cp -R ca_agent /usr/local/nagios/libexec/

cp ca_agent/plugin/nagios-plugin/nagios /usr/local/nagios/libexec/

chmod +x /usr/local/nagios/libexec/nagios

cp ca-agent/plugin/nagios-plugin/cloudalert.cfg /usr/local/nagios/etc/objects/

  1. 修改配置

①修改/usr/local/nagios/etc/objects/cloudalert.cfg,設置pager爲剛纔點擊保存所獲取的appkey

vi /usr/local/nagios/etc/objects/cloudalert.cfg

define contact{

contact_name cloudalert ; The name of this contact template

alias ca ;

service_notification_period 24x7 ; service notifications can be sent anytime

host_notification_period 24x7 ;

host notifications can be sent anytime

service_notification_options w,u,c,r,f,s ; send notifications for all service states, flapping events, and scheduled downtime events

host_notification_options d,u,r,f,s ;

send notifications for all host states, flapping events, and scheduled downtime events

service_notification_commands notify-service-by-cloudalert ; send service notifications via email

host_notification_commands notify-host-by-cloudalert ; send host notifications via email

pager -- –處填入您新建應用時生成的appkey ;

}

② 修改/usr/local/nagios/etc/objects/contacts.cfg,新增cloudalert到默認聯繫組

vi /usr/local/nagios/etc/objects/contacts.cfg

define contactgroup{

contactgroup_name admins

alias Nagios Administrators

members nagiosadmin,cloudalert

}

③ 修改/usr/local/nagios/etc/nagios.cfg,將cloudalert.cfg新增到nagios.cfg

vi /usr/local/nagios/etc/nagios.cfg

cfg_file=/usr/local/nagios/etc/objects/cloudalert.cfg

④ 可選:爲了讓告警信息顯示更加友好,建議修改nagios.cfg由原來us更改爲iso8601

vi /usr/local/nagios/etc/nagios.cfg

  1. 重啓Nagios

重啓前請檢查配置是不是正確

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

請使用root賬號重啓Nagios

service nagios restart

  1. 集成結果驗證

登錄Nagios頁面控制檯發送通知

注:請確認對應服務的notifications_enabled爲1

define service{

use local-service ; Name of service template to use

host_name localhost

service_description Tomcat18080

check_command check_http18080

notifications_enabled 1

}
在這裏插入圖片描述
8. 查看agent日誌,出現success字樣代表成功

tail -f /usr/local/nagios/libexec/ca_agent/log/agent.log

10-05-2015 15:48:53,056 CST INFO [main] [com.upyoo.agent.NagiosClient@45] start to call alert ...

10-05-2015 15:48:53,063 CST INFO [main] [com.upyoo.agent.CommandClient@82] ``alarmName:PROBLEM Service Alert: 127.0.0.1/Tomcat18080 is CRITICAL

10-05-2015 15:48:53,064 CST INFO [main] [com.upyoo.agent.CommandClient@82] ``alarmContent:localhost/127.0.0.1/Tomcat18080 ``connect to address 127.0.0.1 and port 18080: Connection refused Date/Time: 2015-05-10 15:48:52

10-05-2015 15:48:53,064 CST INFO [main] [com.upyoo.agent.CommandClient@82] ``entityName:127.0.0.1/Tomcat18080

10-05-2015 15:48:53,066 CST INFO [main] [com.upyoo.agent.CommandClient@82] priority:CRITICAL

10-05-2015 15:48:53,066 CST INFO [main] [com.upyoo.agent.CommandClient@82] ``app:9c4bc722-6677-9fc9-fbdc-003d8977d17e

10-05-2015 15:48:53,067 CST INFO [main] [com.upyoo.agent.CommandClient@82]

10-05-2015 15:48:53,068 CST INFO [main] [com.upyoo.agent.CommandClient@82]

10-05-2015 15:48:53,068 CST INFO [main] [com.upyoo.agent.CommandClient@82]

10-05-2015 15:48:53,069 CST INFO [main] [com.upyoo.agent.CommandClient@82]

10-05-2015 15:48:53,105 CST INFO [main] [com.upyoo.agent.CommandClient@58] start to post url:http://api.aiops.com/alert/api/event

10-05-2015 15:48:53,180 CST INFO [main] [com.upyoo.agent.CommandClient@65] body:{"app":"9c4bc722-6677-9fc9-fbdc-``003d8977d17e","alarmContent":"localhost/127.0.0.1/Tomcat18080 connect to address 127.0.0.1 and port 18080: Connection refused Date/Time: 2015-05-10 ``15:48:52","eventId":"8G8OGOYUCOOLOENYOGGENOOOOONYNOLU","priority":"3","alarmName":"PROBLEM Service Alert: 127.0.0.1/Tomcat18080 is CRITICAL","eventType":"trigger","entityName":"127.0.0.1/Tomcat18080"}

10-05-2015 15:48:53,775 CST INFO [main] [com.upyoo.agent.CommandClient@68] result:{"result":"success","message":null,"data":"3516","totalCount":0,"code":"200"}

二.設置分派策略

點擊配置 — 分派策略 — 新建分派
在這裏插入圖片描述
2. 輸入分派策略名稱 — 選擇應用 — 設置分派人(告警發生時通知的人),點擊保存

在這裏插入圖片描述

這一步驟的可選擇性就比較多了,用戶可以根據【告警級別】【告警內容】【主機】【服務】【告警對象】【hostgroups】【servicegroups】等條件,來添加指定條件分派通知。

三.設置通知策略

  1. 點擊【配置】—【通知策略】-【新建通知】
    在這裏插入圖片描述
  2. 通知策略的可選擇性也是很高的,用戶可選擇的地方有:告警狀態、告警級別、通知方式、時間設置、延遲策略、通知人等,其中的意思分別如下:

告警狀態:選擇告警通知的狀態。分別有發生時、認領時、關閉時、全選,4種選擇。

告警級別:選擇告警通知的級別。分別有提醒、警告、嚴重、所有,4種選擇。

通知方式:選擇告警通知的方式。分別有電話、短信、郵件、微信、APP,5種選擇。

時間設置:選擇告警通知的時間。分別有任何時間、工作時間、非工作時間,3種選擇。

延遲策略:選擇告警通知是否延遲。

通知人:選擇告警通知的人。

例如:任何時間告警發生時嚴重級別的告警立刻微信通知所有人。

告警狀態 — 發生時;告警級別 — 嚴重;通知方式 — 微信;時間設置 — 任何時間;延遲策略 — 立刻;通知人 — 全選

Nagios與CA告警級別映射關係

在這裏插入圖片描述

以上設置就滿足了不同的告警需求,多樣化的通知方式,使得告警達到通知必達的效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章