Nagios是一款開源的免費網絡監視工具,能有效監控Windows、Linux和Unix的主機狀態,交換機路由器等網絡設置,打印機等。在系統或服務狀態異常時發出郵件或短信報警第一時間通知網站運維人員,在狀態恢復后發出正常的郵件或短信通知。
Nagios是調用微信公共平臺的api接口發送報警郵件。在正式操作之前,有幾個準備工作要做。先安裝nagios,可以使用我提供的nagios一鍵安裝腳本。然后是去微信公共平臺申請一個企業號,我申請時填的是組織,沒有認證也可以使用。最后登錄公共平臺添加通訊錄,和新建應用(例如nagios),記錄應用的id后面要用。用戶權限什么自己設定。
微信腳本
nagios和微信平臺都準備好之后,接下來下載微信命令腳本。右鍵點擊 下載 ,保存。然后上傳到nagios服務器,例如/usr/local/nagios/python/weixin目錄,設置文件權限為可執行。在/usr/local/nagios/python/weixin目錄新建config.py文件,添加如下配置。
#coding:utf-8 CorpID='xxxxx' Secret='xxxxxxxxxxxxxxxxx' DEBUG=0 ToUser='sijitao.net' AgentId=1
其中CorpID和Secret這兩個可以通過登錄微信公共平臺,打開添加的應用(例如nagios)獲取。
微信腳本命令傳遞的參數通過“-@@-”符號來分割,詳細說明可以參考我的github地址:https://github.com/zhangnq/nagios/tree/master/weixin
Nagios配置
下面就是nagios上的常規配置。
commands.cfg命令文件中添加weixin命令:
define command{ command_name notify-host-by-weixin command_line /usr/local/nagios/python/weixin/NotifyByWeixin.py "host-@@-$NOTIFICATIONTYPE$-@@-$HOSTNAME$-@@-$HOSTSTATE$-@@-$HOSTADDRESS$-@@-$HOSTOUTPUT$-@@-$CONTACTALIAS$" } define command{ command_name notify-service-by-weixin command_line /usr/local/nagios/python/weixin/NotifyByWeixin.py "service-@@-$NOTIFICATIONTYPE$-@@-$SERVICEDESC$-@@-$HOSTALIAS$-@@-$HOSTADDRESS$-@@-$SERVICESTATE$-@@-$SERVICEOUTPUT$-@@-$CONTACTALIAS$" }
templates.cfg模板文件中添加聯系人模板:
define contact{ name weixin-contact service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r,f,s host_notification_options d,u,r,f,s service_notification_commands notify-service-by-weixin host_notification_commands notify-host-by-weixin register 0 }
contacts.cfg聯系人中添加微信通知聯系人,這里alias名字要和微信公共平臺通訊錄中名字帳號一樣才會發送成功。
define contact{ contact_name zhangnq-weixin use weixin-contact alias zhangnq email admin@sijitao.net }
最后在配置service的時候添加zhangnq-weixin這個聯系人后就可以通過微信發送報警郵件了。
關于小編給大家分享的Python利用Nagios增加微信報警通知的功能就給大家介紹這么多,希望對大家有所幫助。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
