为Zabbix增加企业微信告警

一、企业微信

1. 注册企业微信,记下企业ID

2. 在企业微信中创建应用Zabbix,设置“可见范围”为需要接收消息的员工或分组,记下应用的AgentIdSecret

3. 记下需要接受消息的用户帐号

二、运行环境和脚本设置

1. 安装Python2.7

2. 安装Python库requests

安装方法1

pip install requests
pip install --upgrade requests

安装方法2

wget https://pypi.python.org/packages/c3/38/d95ddb6cc8558930600be088e174a2152261a1e0708a18bf91b5b8c90b22/requests-2.18.3.tar.gz
tar zxvf requests-2.18.3.tar.gz
cd requests-2.18.3
python setup.py build
python setup.py install

3. 修改Zabbix服务端配置文件zabbix_server.conf,设置脚本文件路径AlertScriptsPath=,修改完重启Zabbix服务端

4. 下载脚本wechat.py,设置权限755
脚本来源
https://github.com/X-Mars/Zabbix-Alert-WeChat

5. 修改脚本文件

#在脚本最下方
Corpid =   #企业ID
Secret =   #Secret
Agentid =  #AgentId

三、Zabbix后台设置

1. 添加报警媒介类型
名称:企业微信
类型:脚本
脚本名称:wechat.py
参数(3个,依次添加)

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

2. 用户报警媒介
添加报警媒介:企业微信
收件人:企业微信中的用户帐号

3. 配置动作
检查是否设置为发送消息通过“所有介质”或者添加发送到“企业微信”

测试

1. 手动测试,运行脚本wechat.py

./wechat.py #收件人帐号# #标题# #内容#

2. 触发告警,查看企业微信中是否收到消息

PS:最新版的脚本,在Python3运行报错,需要将以下两行代码注释

reload(sys)
sys.setdefaultencoding('utf-8')