前言:通过企业微信小程序,实现zabbix自动注册和zabbix告警的微信消息推送。
一、整体架构
1、企业微信 - 创建zabbix机器人应用 - 取得企业微信ID、应用Agentld和Secret
2、编写zabbix机器人推送脚本,测试脚本
3、添加报警媒介
4、配置Trigger actions触发动作,启用消息推送管理员,填写要发送的信息
5、配置Autoregistration actions自动注册,填写要发送的信息
6、进行测试
二、注册或使用已有的企业微信,查询企业微信ID
1、在企业微信 - 我的企业 - 企业信息 - 企业ID
2、创建zabbix机器人应用
企业微信后台 - 应用管理 - 应用 - 创建应用
3、查看Agentld和Secret
三、编写zabbix机器人脚本
准备工作
yum -y install epel-release
yum -y install python-pip
pip install requests
查询脚本存放位置
cat /etc/zabbix/zabbix_server.conf | grep AlertScript
可以看到脚本存放在/usr/lib/zabbix/alertscripts目录中
编写脚本 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='ww36e'
appsecret='5yFNqeTjrr3I'
agentid=1000002
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] "nn" 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)
赋予执行权限
chmod x /usr/lib/zabbix/alertscripts/weixin.py
创建日志文件
touch /tmp/weixin.log
chown zabbix.zabbix /tmp/weixin.log
测试脚本,用户名为企业微信通讯录中的用户名,一般为拼音全拼,严格区分大小写!
/usr/lib/zabbix/alertscripts/weixin.py 用户名 '标题' '测试成功'
此时企业微信可以收到zaabix应用发来的信息。
四、添加报警媒介,测试媒介
zabbix后台 - 管理 - 报警媒介类型
名称 weixin
类型 脚本
脚本名称 weixin.py
脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
五、配置Trigger actions触发动作,启用消息推送管理员,填写要发送的信息
配置 - 动作 Trigger actions - 创建动作
在 动作 中填写名称
在 操作 中编辑操作和恢复操作
1、操作
发送消息
zabbix管理员组
仅发送到微信
custom message
主题:服务器报警
消息:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
2、恢复操作
通知所有参与者
custom message
主题:服务器已恢复
消息:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
六、配置Autoregistration actions自动注册,填写要发送的信息
在Autoregistration actions自动注册中
发送消息
zabbix管理员组
仅送到weixin
Custom message
主题:
Linux主机自动注册到zabbix服务器
消息:
主机名:{HOST.HOST}
主机IP:{HOST.IP}
Agent端口:{HOST.PORT}
七、进行测试
新linux上线微信收到提示
linux重启微信收到提示
八、总结
很简单的啦