Zabbix集成钉钉告警
需求:
Zabbix告警通知发送到钉钉群组
钉钉报警时基于zabbix,访问钉钉应用接口去推送的报警消息,所以我们需要一个在钉钉创建一个报警应用。
版本:
Zabbix:6.0.15
Python:2.7.5
一、钉钉配置
1、创建群组、添加告警机器人
钉钉的聊天界面,点击发起群聊:
钉钉要3个人才能建群,所以需要添加两个人即可。
2、点击群设置 → 机器人 → 添加机器人 → 自定义 :
点击添加,输入机器人名字即可
生成了一个 webhook ,先复制,后面会用到。
二、zabbix配置
1、创建脚本
[root@localhost ~]# vim /usr/local/zabbix/alertscripts/dingding.py
#!/usr/bin/python3 #coding:utf-8 from dingtalkchatbot.chatbot import DingtalkChatbot, ActionCard, CardItem import sys,os webhook = 'https://oapi.dingtalk.com/robot/send?access_token=4d5a08a67cnf3d09b12ae8d5309c4ba45362e040a6bdcf917c0fb40054e453a8' secret = 'SEC2098de78613321258a4u782eb5d0f99e790a363b504f911e5bd2c331202e58aa' sendto = sys.argv[1].split(",") print(sendto) subject = sys.argv[2] msg = sys.argv[3] print("msg: " + msg) subject = subject + "\n" msg = subject + msg xiaoding = DingtalkChatbot(webhook, secret=secret) xiaoding.send_text(msg=msg, at_mobiles=False)
三、Zabbix web界面设置
1、添加报警脚本到zabbix:管理>>报警媒介类型
脚本参数如下:
{ALERT.MESSAGE}
{ALERT.SENDTO}
2、配置用户
3、创建动作:配置>>动作
操作:
默认标题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME} 故障!
消息内容:
告警主机: {HOSTNAME1}
主机地址: {HOST.IP}
告警等级: {TRIGGER.SEVERITY}
监控项目: {TRIGGER.KEY1}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}: {ITEM.VALUE1}
告警信息: {TRIGGER.NAME}
告警时间: {EVENT.DATE} {EVENT.TIME}
事件ID: {EVENT.ID}
恢复操作:
默认标题:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME} 已恢复!
消息内容:
告警主机: {HOSTNAME1}
主机地址: {HOST.IP}
告警等级: {TRIGGER.SEVERITY}
监控项目: {TRIGGER.KEY1}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}: {ITEM.VALUE1}
告警信息: {TRIGGER.NAME}
告警时间: {EVENT.DATE} {EVENT.TIME}
事件ID: {EVENT.ID}
4、进行钉钉报警测试
[root@JDCloud_Server alertscripts]# python dingding.py Test测试 132xxxx
至此,钉钉告警部署完成。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了