Zabbix 結合企業微信實作微信報警功能
- 一、Zabbix 概述
- 二、部署 Zabbix 結合企業微信報警
- 1.注冊企業微信
- 2.配置企業微信
- 1)創建部門
- 2)添加成員
- 3.創建應用
- 4.配置監控腳本
- 1)修改 Zabbix_server 組態檔
- 2)安裝 simplejson 軟體
- 3)配置監控腳本
- 4)報警測驗
- 5.Zabbix Web 界面配置
- 1)配置報警媒介
- 2)把媒介貼到用戶上
- 3)創建動作
- 4)設定報警訊息
- 5)設定恢復報警訊息
- 三、測驗 Zabbix 結合企業微信報警
- 1.被監控機配置
- 2.通過 Zabbix Web管理界面來對 MySQL 服務器進行監控
- 3.關閉 MySQL 服務器的Agent
- 4.驗證
一、Zabbix 概述
Zabbix 可以通過多種方式把告警資訊發送到指定人,常用的有郵件,短信報警方式,但是越來越多的企業開始使用 Zabbix 結合微信作為主要的告警方式,這樣可以及時有效的把告警資訊推送到接收人,方便告警的及時處理,
二、部署 Zabbix 結合企業微信報警
1.注冊企業微信
注冊地址: https://work.weixin.qq.com

2.配置企業微信
1)創建部門

2)添加成員


3.創建應用


4.配置監控腳本
- 注意:如果未部署 Zabbix 監控平臺需看:分布式部署 Zabbix 監控平臺 來進行部署,
1)修改 Zabbix_server 組態檔
[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
在最后面添加:
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
[root@zabbix ~]# systemctl restart zabbix_server
2)安裝 simplejson 軟體
- simplejson 軟體包從這個連接下載:https://pan.baidu.com/s/1YGqHn4bDLZZrW6X6YApHLQ
- 提取碼:x3r0
[root@zabbix ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/
[root@zabbix alertscripts]# ls
[root@zabbix alertscripts]# ls
simplejson-3.8.2.tar.gz
[root@zabbix alertscripts]# tar zxf simplejson-3.8.2.tar.gz
[root@zabbix alertscripts]# cd simplejson-3.8.2
[root@zabbix simplejson-3.8.2]# python setup.py build && python setup.py install

3)配置監控腳本
- 下面圖片中劃線的東西,和下面腳本檔案中對應寫,
touser


toparty

agentid

corpid

corpsecret

[root@zabbix simplejson-3.8.2]# cd ..
[root@zabbix alertscripts]# vim testzabbix.py
#!/usr/bin/python
#_*_coding:utf-8 _*_
import urllib,urllib2
import json
import sys
import simplejson
reload(sys)
sys.setdefaultencoding('utf-8')
def gettoken(corpid,corpsecret):
gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
# print gettoken_url
try:
token_file = urllib2.urlopen(gettoken_url)
except urllib2.HTTPError as e:
print e.code
print e.read().decode("utf8")
sys.exit()
token_data = token_file.read().decode('utf-8')
token_json = json.loads(token_data)
token_json.keys()
token = token_json['access_token']
return token
def senddata(access_token,user,subject,content):
send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
send_values = {
"touser":'zhangsan', #企業號中的用戶帳號.
"toparty":"1", #企業號中的部門id.
"msgtype":"text",
"agentid":"1000002", #企業號中的應用id.
"text":{
"content":subject + '\n' + content
},
"safe":"0"
}
# send_data = json.dumps(send_values, ensure_ascii=False)
send_data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8')
print(send_data)
send_request = urllib2.Request(send_url, send_data)
response = json.loads(urllib2.urlopen(send_request).read())
print str(response)
if __name__ == '__main__':
user = str(sys.argv[1])
subject = str(sys.argv[2])
content = str(sys.argv[3])
corpid = 'ww849e7d6548123bc4' #企業號的標識ID.
corpsecret = 'ipzr_M5MpAKeao2IZROFwqQFuadWCNmQGyYujb12345' #應用程式的密鑰.
accesstoken = gettoken(corpid,corpsecret)
senddata(accesstoken,user,subject,content)
4)報警測驗
[root@zabbix simplejson-3.8.2]# chmod +x testzabbix.py
[root@zabbix alertscripts]# chmod +x testzabbix.py
[root@zabbix alertscripts]# ./testzabbix.py 1 test 你好

5.Zabbix Web 界面配置
- 切換到中文


- 更新后重繪一下頁面即可
1)配置報警媒介

- 腳本引數添加如下即可
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

2)把媒介貼到用戶上



3)創建動作


4)設定報警訊息
!!!!!!
服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊: {TRIGGER.NAME}


5)設定恢復報警訊息

三、測驗 Zabbix 結合企業微信報警
1.被監控機配置
[root@mysql ~]# ls
anaconda-ks.cfg zabbix-4.2.6.tar.gz zabbix-agent-3.2.6-1.el7.x86_64.rpm
[root@mysql ~]# rpm -ivh zabbix-agent-3.2.6-1.el7.x86_64.rpm
[root@mysql ~]# vim /etc/zabbix/zabbix_agentd.conf
95 Server=192.168.1.1
136 ServerActive=192.168.1.1
147 Hostname=mysql
[root@mysql ~]# systemctl start zabbix-agent
2.通過 Zabbix Web管理界面來對 MySQL 服務器進行監控
- 上面的
"配置"然后"主機",創建主機,左邊的群組記得選"所有",點擊"創建主機"


- 點擊
"模板"界面,鏈接指示器,選擇如下的模板

3.關閉 MySQL 服務器的Agent
[root@mysql ~]# systemctl stop zabbix-agent

4.驗證
注意:需要等待大概5~6分鐘,這個訊息比較慢,

開啟 MySQL 上的 Agent 再次驗證
[root@mysql ~]# systemctl start zabbix-agent

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/239600.html
標籤:其他
