zabbix配置钉钉机器人告警
zabbix配置钉钉机器人告警
1. 在钉钉中创建群聊,在群里面添加自定义机器人
保存Webhook url链接,安全中定义相关设置,我这里使用关键字,只有信息内容中有关键字的才会被机器人发送
2. 配置钉钉告警脚本
#安装python依赖模块python-requests
[root@localhost ~]# yum -y install python-requests
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Author: bboysoul
import requests
import json
import sys
import os
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "钉钉机器人webhook url"
def msg(text):
json_text= {
"msgtype": "text",
"at": {
"atMobiles": [
"需要@人的手机号"
],
"isAtAll": False
},
"text": {
"content": text
}
}
print requests.post(api_url,json.dumps(json_text),headers=headers).content
if __name__ == '__main__':
text = sys.argv[1]
msg(text)
将上边的python代码存放在zabbibx服务端的告警脚本的位置
在zabbix_server.conf中配置告警脚本的路径
# AlertScriptsPath=${datadir}/zabbix/alertscripts
我这里修改为
AlertScriptsPath=/usr/local/etc/zabbix/alertscripts
[root@localhost ~]# chown -R zabbix.zabbix /usr/local/etc/zabbix
[root@localhost ~]# vim /usr/local/etc/zabbix/alertscripts/dingding.py
#将上面的python脚本粘粘到/usr/local/etc/zabbix/alertscripts/dingding.py
#将脚本中的webhook url和需要@的人手机号修改
3. 配置脚本告警
3.1 创建媒介
Administration
---> Media Type
--->Create media type
#消息可以使用下面的模板,也可以用自带的模板(钉钉要添加关键词)
故障:{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障!
告警主机:{HOSTNAME1},IP地址:{HOST.CONN}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
3.2 为用户添加对应媒介
Administration
---> Users
--->Admin
3.3 创建动作
Configuration
---> Actions
--->Create action
4. 触发,查看
使用系统自带的模板中的触发器触发
[root@client ~]# useradd xiaoming
[root@client ~]# id xiaoming
uid=1005(xiaoming) gid=1005(xiaoming) groups=1005(xiaoming)