從Zabbix 3.0開始就已經有不少小夥伴開始使用微信公衆號或者企業微信配置Zabbix報警,固然這裏還可使用阿里釘釘,Mattermost等各類第三方集成方案。傳統的郵件報警有效但笨重,短信報警及時但成本高,如今手機愈來愈強大,互聯網套餐資費逐步下降,普通人使用手機的頻率已經超過了PC端,並且移動辦公也已經慢慢融入咱們的生活。這裏簡單記錄基於新版Zabbix 4.0 LTS配置企業微信報警配置步驟,但願對你們有幫助。前端
用企業微信配置Zabbix報警
2018年10月17日 - 初稿python
閱讀原文 - https://wsgzao.github.io/post...git
擴展閱讀github
zabbix Alert WeChat zabbix 微信報警 - https://github.com/X-Mars/Zab...json
你們對Zabbix應該已經很熟悉了,不用你多介紹了吧
Zabbix 是由 Alexei Vladishev 建立,目前由 Zabbix SIA 在持續開發和支持。vim
Zabbix 是一個企業級的分佈式開源監控方案。bash
Zabbix 是一款可以監控各類網絡參數以及服務器健康性和完整性的軟件。Zabbix 使用靈活的通知機制,容許用戶爲幾乎任何事件配置基於郵件的告警。這樣能夠快速反饋服務器的問題。基於已存儲的數據,Zabbix 提供了出色的報告和數據可視化功能。這些功能使得 Zabbix 成爲容量規劃的理想方案。服務器
Zabbix 支持主動輪詢和被動捕獲。Zabbix 全部的報告、統計信息和配置參數均可以經過基於 Web 的前端頁面進行訪問。基於 Web 的前端頁面能夠確保您從任何方面評估您的網絡狀態和服務器的健康性。適當的配置後,Zabbix 能夠在 IT 基礎架構監控方面扮演重要的角色。對於只有少許服務器的小型組織和擁有大量服務器的大型公司也一樣如此。微信
Zabbix 是免費的。Zabbix 是根據 GPL 通用公共許可證第 2 版編寫和發行的。這意味着它的源代碼都是免費發行的,可供公衆任意使用。網絡
世界各地許多不一樣規模的組織將 Zabbix 做爲主要的監控平臺。
企業微信註冊網址(若是有直接登錄便可)
https://work.weixin.qq.com
在企業微信中須要獲取知道的信息
# 修改 zabbix-server 配置文件,查看 zabbix 默認腳本路徑配置是否打開 egrep -v '^$|^#' /etc/zabbix/zabbix_server.conf AlertScriptsPath=/usr/lib/zabbix/alertscripts # 安裝必要的軟件包 yum install -y epel-release yum install -y gcc telnet wget git vim python python-pip # update pip pip install --upgrade pip # install requests pip install requests pip install --upgrade requests # 上傳腳本至 server 配置文件中 AlertScriptsPath 所對應的路徑下: cd /usr/lib/zabbix/alertscripts/ git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git cp Zabbix-Alert-WeChat/wechat.py . chown zabbix:zabbix wechat.py config.json chmod +x wechat.py # 上傳好該腳本後對腳本進行測試 python wechat.py wangao test helloworld {u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'} # 企業號中的用戶賬號,在zabbix用戶Media中配置,若是配置不正常,將按部門發送 python wechat.py wangao1 test wangao {u'invaliduser': u'wangao1', u'errcode': 0, u'errmsg': u'ok'} # 參數說明,這裏使用企業號中的部門ID做羣發使用 Corpid = "xxx" # CorpID是企業號的標識 Secret = "xxx" # Secret是管理組憑證密鑰 Agentid = "1000002" # 應用ID Partyid = "2" # 部門ID # 查看企業微信測試告警通知
Zabbix 4.0和老版本在界面顯示上有略微差別
1.建立報警媒介
Administration - Media types - Create media type
Name: wechat
Type: Script
Script name: wechat.py
Script parameters:
2.建立wechat專用帳戶
Administration - Users - Create user
Alias: wechat
Groups: Zabbix administrators # 根據需求定義
3.爲專用帳戶添加Media
Users - Media - Add
Type: wechat
Send to: 2 # 由於我配置的是羣發因此按照部門ID填寫區分不一樣項目監控,也能夠按照用戶名獨立發送
4.設置報警動做
Configuration - Actions - Create actions
建立動做
[Action]
Name: wechat
Conditions: # 根據需求定義
A Trigger severity is greater than or equals Not classified
事件觸發時的通知操做
[Operations]
Default operation step duration: 1m
Default subject:
Problem: {EVENT.NAME}
Default message:
Time: {EVENT.DATE} {EVENT.TIME}
Host: {HOST.NAME}
Level: {TRIGGER.SEVERITY}
ItemValue: {ITEM.VALUE}
Operations:
Send to Uers: wechat
Send only to: wechat
Conditions: Event acknowledged equals Not Ack
事件恢復時的通知操做
[Recovery operations]
Default subject:
Resolved: {EVENT.NAME}
Default message:
Time: {EVENT.DATE} {EVENT.TIME}
Host: {HOST.NAME}
Level: {TRIGGER.SEVERITY}
ItemValue: {ITEM.VALUE}
Operations:
Send to Uers: wechat
Send only to: wechat
更多有關Zabbix Supported macros的定義請參考官方解釋