Zabbix 微信報警

實現zabbix通過微信報警的方式也是通過腳本來實現,與郵件報警不同的是,腳本調用的微信的相關接口的獲取相對複雜一點

1、申請一個微信公衆號(企業號)

申請方法不多說,如果已申請請忽略

2、在微信企業號上新建應用

Zabbix 微信報警

Zabbix 微信報警

應用創建完之後查看並啓用應用,同時會生成應用的AgentId以及Secret,這個在後面步驟會有用

3、接口調用測試

點擊:API文檔——>開發者工具——>接口調試工具,找不到就直接點這個地址

http://work.weixin.qq.com/api/devtools/devtool.php
Zabbix 微信報警
4、關於腳本

腳本的存放目錄爲/usr/lib/zabbix/alertscripts,腳本內容不做過多說明,需要了解含義請自行百度,腳本內容如下
Zabbix 微信報警

[root@Zabbix alertscripts]# cat weixin.py
#!/usr/bin/env python

#-- coding: utf-8 --

import requests
import sys
import os
import json
import logging

logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
datefmt = '%a, %d %b %Y %H:%M:%S',
filename = os.path.join('/tmp','weixin.log'),
filemode = 'a')

corpid='wwdeXXXXXXX' ##這裏是你申請企業微信生成的值
appsecret='XXXXXXXXX' ##這裏是你申請企業微信生成的值
agentid=XXXXXXX ##這裏是你申請企業微信生成的值

token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret
req=requests.get(token_url)
accesstoken=req.json()['access_token']

msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken

touser=sys.argv[1]
subject=sys.argv[2]
#toparty='3|4|5|6'
message=sys.argv[2] + "\n\n" +sys.argv[3]

params={
"touser": touser,
#"toparty": toparty,
"msgtype": "text",
"agentid": agentid,
"text": {
"content": message
},
"safe":0
}
req=requests.post(msgsend_url, data=json.dumps(params))
logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)
[root@Zabbix alertscripts]#

腳本中需要填寫微信企業號corpid,應用的Secret以及應用的id,腳本中還定義了日誌文件爲/tmp/weixin.log(日誌文在要添權用戶權限)

腳本編寫完成之後需要爲腳本添加執行權限

[root@zabbix alertscripts]# chmod +x weixin.py

Zabbix 微信報警
可以在微信企業號後臺通訊錄——>部門——>成員詳情找到
Zabbix 微信報警
在ZABBIX中添微信報警類型:
名稱自定義即可,類型選擇腳本,腳本名稱爲所寫的腳本的名稱weixin.py,腳本的三個參數都是zabbix內置變量,分別爲:報警收件人:{ALERT.SENDTO},報警標題:{ALERT.SUBJECT},報警內容:{ALERT.MESSAGE},添加完報警媒介類型後勾選啓用

6、配置用戶報警媒介信息

配置需要收到微信報警的用戶的信息,添加報警媒介,選擇上面創建的微信報警,收件人填寫上面所說的部門成員的賬號,由於是通過微信公衆號發送的微信提醒,如果需要爲多個用戶例如微信企業號中所有用戶發送報警,這裏收件人的信息就填寫爲
Zabbix 微信報警

Zabbix 微信報警
Zabbix 微信報警

Zabbix 微信報警

Zabbix 微信報警
Zabbix 微信報警

Zabbix 微信報警

Zabbix 微信報警

Zabbix 微信報警
Zabbix 微信報警
命令行測試腳本能否成功執行

[root@zabbix alertscripts]# ./weixin.py Zhaslkfxxx "測試" 'test'
報錯
Traceback (most recent call last):
File "weixin.py", line 5, in <module>
import requests
ImportError: No module named requests

測試參數爲三個,分別爲部門成員賬號,報警標題,報警內容

測試的時候如果出現錯誤提示缺少requests,解決方法爲使用pip進行安裝:pip install smtplib

[root@Zabbix alertscripts]# yum -y install python-pip

解決辦法:

yum安裝
[root@Zabbix alertscripts]# yum install python-pip
[root@Zabbix alertscripts]# pip -v
[root@Zabbix alertscripts]# pip install requests

===========================================================

源碼安裝
1.下載:
在它的官網可以下載到安裝包:
https://pypi.python.org/pypi/setuptools
下載路徑:
#wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-12.0.3.tar.gz#md5=f07e4b0f4c1c9368fcd980d888b29a65

  1. 安裝

    tar xvf setuptools-12.0.3.tar.gz

    cd setuptools-12.0.3

    python setup.py install

    https://files.pythonhosted.org/packages/8b/8a/1b2aadd922db1afe6bc107b03de41d6d37a28a5923383e60695fba24ae81/pip-19.2.1.tar.gz

    cd pip-18.0

    python setup.py install

測試後會在微信企業號中收到我們創建的應用所發出的消息
Zabbix 微信報警

Zabbix 微信報警
Zabbix 微信報警

添加用戶組
Zabbix 微信報警

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章