我们在钉钉上建立群聊,然后在群聊上添加钉钉机器人:
编写,脚本需要放在zabbix 的alertscripts目录下(如果不知道该目录的位置,可以使用find命令查找)
find / -iname alertscripts
脚本
vim /usr/local/zabbix/alertscripts/dingding.py #!/usr/bin/env python #coding:utf-8 #zabbix钉钉报警 import requests,json,sys,os,datetime webhook="上面创建钉钉机器人的webhook地址" user=sys.argv[1] text=sys.argv[3] data={ "msgtype": "text", "text": { "content": text }, "at": { "atMobiles": [ user ], "isAtAll": False } } headers = {'Content-Type': 'application/json'} x=requests.post(url=webhook,data=json.dumps(data),headers=headers) if os.path.exists("/tmp/zabbix_dingding.log"): f=open("/tmp/zabbix_dingding.log","a+") else: f=open("/tmp/zabbix_dingding.log","w+") f.write("\n"+"--"*30) if x.json()["errcode"] == 0: f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"发送成功"+"\n"+str(text)) f.close() else: f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "发送失败" + "\n" + str(text)) f.close()
脚本创建的时候最好在服务器端新建,不要在windows主机上创建完后再上传到服务器上,很有可能出现无法调用脚本的问题(在服务器上能使用脚本发送测试信息,log日志也可以看到,但是zabbix server 无法调用脚本,动作日志看已经发送,但钉钉收不到信息,log日志也查看不到该信息),我猜测可能是windows和Linux的编码问题
脚本和log授权
chmod +x /usr/local/zabbix/alertscripts/dingding.py chown zabbix.zabbix /usr/local/zabbix/alertscripts/dingding.py chmod +x /tmp/zabbix_dingding.log chown zabbix.zabbix /tmp/zabbix_dingding.log
操作
默认接收人 :
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障! 默认信息 : { 报警主机:{HOST.NAME} 主机地址:{HOST.IP} 监控项目:{ITEM.NAME} 监控取值:{ITEM.LASTVALUE} 报警等级:{TRIGGER.SEVERITY} 当前状态:{TRIGGER.STATUS} 报警信息:{TRIGGER.NAME} 报警时间:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID} }
恢复操作
默认接收人: 服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复! 默认信息: { 报警主机:{HOST.NAME} 主机地址:{HOST.IP} 监控项目:{ITEM.NAME} 监控取值:{ITEM.LASTVALUE} 报警等级:{TRIGGER.SEVERITY} 当前状态:{TRIGGER.STATUS} 报警信息:{TRIGGER.NAME} 报警时间:{EVENT.DATE} {EVENT.TIME} 恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 持续时间:{EVENT.AGE} 事件ID:{EVENT.ID} }
日子查看
[root@JumpFency alertscripts]# more /tmp/zabbix_dingding.log
参考:https://blog.51cto.com/m51cto/2051945
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?