首頁 後端開發 Python教學 Python利用Nagios增加微信警報通知的功能

Python利用Nagios增加微信警報通知的功能

Jan 17, 2017 am 09:51 AM

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
}
登入後複製


要和微信公共平台通訊錄中名字帳號一樣才會發送成功。

define contact{
contact_name zhangnq-weixin
use weixin-contact
alias zhangnq
email admin@sijitao.net
}
登入後複製


最後在配置service的時候添加zhangnq-weixin這個聯絡人後就可以透過微信發送警報郵件了。

Python利用Nagios增加微信警報通知的功能

關於小編給大家分享的Python利用Nagios增加微信警報通知的功能就給大家介紹這麼多,希望對大家有所幫助。

更多Python利用Nagios增加微信警報通知的功能相關文章請關注PHP中文網!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用Python查找文本文件的ZIPF分佈 如何使用Python查找文本文件的ZIPF分佈 Mar 05, 2025 am 09:58 AM

如何使用Python查找文本文件的ZIPF分佈

python中的圖像過濾 python中的圖像過濾 Mar 03, 2025 am 09:44 AM

python中的圖像過濾

如何在Python中下載文件 如何在Python中下載文件 Mar 01, 2025 am 10:03 AM

如何在Python中下載文件

我如何使用美麗的湯來解析HTML? 我如何使用美麗的湯來解析HTML? Mar 10, 2025 pm 06:54 PM

我如何使用美麗的湯來解析HTML?

如何使用Python使用PDF文檔 如何使用Python使用PDF文檔 Mar 02, 2025 am 09:54 AM

如何使用Python使用PDF文檔

如何在django應用程序中使用redis緩存 如何在django應用程序中使用redis緩存 Mar 02, 2025 am 10:10 AM

如何在django應用程序中使用redis緩存

引入自然語言工具包(NLTK) 引入自然語言工具包(NLTK) Mar 01, 2025 am 10:05 AM

引入自然語言工具包(NLTK)

如何使用TensorFlow或Pytorch進行深度學習? 如何使用TensorFlow或Pytorch進行深度學習? Mar 10, 2025 pm 06:52 PM

如何使用TensorFlow或Pytorch進行深度學習?

See all articles