Zabbix 3.4.3之企業微信報警
一、企業微信註冊
微信的報警方式可以讓我們隨時隨地接收到信息,加快問題的處理,比傳統郵件更加方便,首先我們先打開企業微信的地址 https://work.weixin.qq.com
1、填寫申請信息
2、下一步
根據註冊流程步驟進行後面的操作,直到註冊成功。
二、企業微信配置
1、創建部門
首先我們要創建部門,類似於組,把相關的人員放到這個部門裏面,創建部門之後,我們會用到部門id,報警消息根據部門id發到部門的相關人員。
根據自己的需求填寫,所屬部門也可以是現有部門的子部門,具有層級所屬關系。
查看部門id,我們以後會用到,我這裏部門id是2。
2、給部門增加人員
點擊添加成員,然後讓用戶關註就可以了。
3、添加應用
用於消息發送的接口,這裏我們需要記住應用的id以及secret,用於發送token的獲取,按照我們的設定,目前只有運維部的人員可以看到此應用,即可以通過此應用獲取到報警信息。
記住這裏的Agentid和Secret。
4、獲取企業ID
三、測試微信消息發送接口
調用微信接口需要一個調用接口的憑證:access_token,通過CropID 、Secret才能獲取到access_token,但是獲取到的token有效期為7200秒。
我們可以通過下面的接口調試工具以及接口說明文檔進行測試。
接口調試工具:http://work.weixin.qq.com/api/devtools/devtool.php
接口說明文檔:https://work.weixin.qq.com/api/doc#10167
調試成功頁面如下。
四、報警腳本
1、編寫python腳本
腳本使用的python版本為2.7以上,所以請安裝CentOS 7。
vim /usr/local/zabbix/alertscripts/wechat.py
#!/usr/bin/python # -*- coding: utf-8 -*- # zabbix notification confirmation script # python2.7 or above import requests import json import os import sys Toparty = "2" #部門id AgentID = 4 #應用id #修改為企業CropID和Secret CropID = ‘wx8d46d3xxxxx993‘ Secret = ‘QCjzy2lH2ZB7MUG6uowChyChPsOxxxxxxxxxxxxxxTVR4saIw3Ezznh‘ #獲取Token Gtoken ="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+ CropID + "&corpsecret=" + Secret headers = {‘Content-Type‘: ‘application/json‘} json_data = json.loads(requests.get(Gtoken).content.decode()) token = json_data["access_token"] #消息發送接口 Purl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + token #消息發送函數 def msg(title,message): weixin_msg = { "toparty" : Toparty, "msgtype" : "textcard", "agentid" : AgentID, "textcard" : { "title" : title, "description" : message, "url" : "www.wzlinux.com", "btntxt":"更多" } } print requests.post(Purl,json.dumps(weixin_msg),headers=headers) if __name__ == ‘__main__‘: title = sys.argv[1] #獲取第一個參數 message = sys.argv[2] #獲取第二個參數 msg(title,message)
chmod +x /usr/local/zabbix/alertscripts/wechat.py
2、測試腳本
微信已經可以接收到消息,那腳本已經沒有什麽問題了。
五、Zabbix配置
1、添加Media types
首先需要在zabbix server的配置文件開啟上面腳本的目錄,然後才可以使用,我們添加兩個參數,一個是報警的標題,一個是報警信息的內容,用於傳給腳本的兩個參數。
2、給用戶添加報警媒介
3、創建Action
服務器:{HOST.NAME}發生: {TRIGGER.NAME}故障! { 告警主機:{HOST.NAME} 告警地址:{HOST.IP} 監控項目:{ITEM.NAME} 監控取值:{ITEM.LASTVALUE} 告警等級:{TRIGGER.SEVERITY} 當前狀態:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時間:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID} } 服務器:{HOST.NAME}: {TRIGGER.NAME}已恢復! { 告警主機:{HOST.NAME} 告警地址:{HOST.IP} 監控項目:{ITEM.NAME} 監控取值:{ITEM.LASTVALUE} 告警等級:{TRIGGER.SEVERITY} 當前狀態:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時間:{EVENT.DATE} {EVENT.TIME} 恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 持續時間:{EVENT.AGE} 事件ID:{EVENT.ID} } 服務器:{HOST.NAME}: 報警確認 { 確認人:{USER.FULLNAME} 時間:{ACK.DATE} {ACK.TIME} 確認信息如下: "{ACK.MESSAGE}" 問題服務器IP:{HOSTNAME1} 問題ID:{EVENT.ID} 當前的問題是: {TRIGGER.NAME} }
六、報警測試
關掉zabbix agent。
本文出自 “運維點滴記錄” 博客,請務必保留此出處http://wzlinux.blog.51cto.com/8021085/1978967
Zabbix 3.4.3之企業微信報警