zabbix钉钉报警
1.钉钉报警原理流程
和微信报警类似,发送指定的数据到钉钉官方提供的API接口,钉钉会将报警信息,发送到指定的钉钉群聊,提醒所有的群成员查看,实现告警通知。
具体操作流程
创建钉钉群聊
创建自定义机器人
创建报警关键词
生成webhook认证信息
开发报警脚本
填写zabbix-UI界面的配置
测试钉钉报警通知
2.创建群聊机器人
1.创建群聊自定义机器人
2.设置机器人信息
3.记录webhook地址
4.测试webhook地址
# 提交json类的数据,发给钉钉的API
[root@m-61 /tmp]#curl 'https://oapi.dingtalk.com/robot/send?access_token=4763e2451402cce519d7599369cd545e28288b80eb6c4b58bed03a548a03d857' \
> -H 'Content-Type: application/json' \
> -d '{"msgtype": "text","text": {"content": "zabbix 报警测试,来自于www.yuchaoit.cn"}}'
# 拿到了结果
{"errcode":0,"errmsg":"ok"}
4.1 支持更多功能参数,如圈某人看消息
# 参考钉钉机器人API的文档,支持哪些参数,参考用法如下
https://open.dingtalk.com/document/robots/custom-robot-access
# shell发请求 ,注意json数据格式,以及zabbix触发关键字
# 圈人语法,基于手机号
curl 'https://oapi.dingtalk.com/robot/send?access_token=4763e2451402cce519d7599369cd545e28288b80eb6c4b58bed03a548a03d857' \
-H 'Content-Type: application/json' \
-d '{"at":{"atMobiles":["15210858004"],"isAtAll":false},"text":{"content":"于超老师正在测试zabbix钉钉报警机器人!!"},"msgtype":"text"}'
# 圈人语法2,基于UserIds,员工ID,但是需要管理员查看,用户自己不好尝试了
钉钉脚本,python版
该脚本是python3,你的目标机器,是否支持python3
yum install python3 python3-devel python3-pip -y
pip3 install requests
python语法比较优雅,你拿到代码,只需要修改什么就行?修改你的webhook,web钩子,钉钉机器人的API地址,该成你自己的即可
#!/usr/bin/python3
# coding: utf-8
# about zabbix python script
import requests,json,sys,os,datetime
# 钉钉机器人API
webhook_url='https://oapi.dingtalk.com/robot/send?access_token=d747bcf366308f7148ef714fa7e2673a5063607dd661d5706671833ac4283c72'
# 给脚本参数手机号参数1
user_phone=sys.argv[1]
# 参数2,消息正文
text=sys.argv[2] + "\n\n" + sys.argv[3]
# 构造json数据体
data={
"msgtype":"text",
"text":{
"content":text
},
"at":{
"atMobiles":[user_phone],
"isAtAll":False
}
}
# 请求头,表明请求类型是json
headers={"Content-Type":"application/json"}
# 发HTTP请求,POST方式,传入数据与请求头
response=requests.post(url=webhook_url,data=json.dumps(data),headers=headers)
print(response.content)
# 日志目录生成
if os.path.exists("/tmp/dingding.log"):
with open("/tmp/dingding.log","a+") as f:
print("该文件以存在,追加写入中")
if response.json().get("errcode")==0:
f.write("\n" + str(datetime.datetime.now()) + " " + str(user_phone) + " " + "发送成功" + "\n" + str(text) )
else:
f.write("\n" + str(datetime.datetime.now()) + " " + str(user_phone) + " " + "发送失败" + "\n" + str(text) )
else:
with open("/tmp/dingding.log","w+") as f:
print("该日志文件不存在,创建且写入中")
if response.json().get("errcode")==0:
f.write("\n" + str(datetime.datetime.now()) + " " + str(user_phone) + " " + "发送成功" + "\n" + str(text) )
else:
f.write("\n" + str(datetime.datetime.now()) + " " + str(user_phone) + " " + "发送失败" + "\n" + str(text) )
测脚本,需要给脚本传入几个参数
python3 dingding.py 15210858004 "来自于linux0224的钉钉消息" "keyword:zabbix 老六门,看懂了吗"
钉钉脚本 bash版本
#!/bin/bash
# about zabbix bash script
# Author: www.yuchaoit.cn
#webhook 地址 webhook=''
#接受者的手机号,由 zabbix 传入
user=$1
#报警邮件标题,由 zabbix 传入
title=$2
#报警邮件内容,由 zabbix 传入
message=$3
# 构造语句执行发送动作
# bash就是用curl 构造json数据发出去而已,注意引号的细节就好
# 通过API返回的数据,来确认是否发送正确
curl -s -H "Content-Type: application/json" -X POST "https://oapi.dingtalk.com/robot/send?access_token=d747bcf366308f7148ef714fa7e2673a5063607dd661d5706671833ac4283c72" -d '{"msgtype":"text","text":{"content":"'"${title}\n\n${message}\n\nzabbix报警啦!!!火烧屁股啦!!!老六们!!!"'"},"at":{"atMobiles":["'"${user}"'"],"isAtAll":false}}'
#将报警信息写入日志文件
echo -e "\n 报警时间:$(date +%F-%H:%M)\n 报警标题:${title}\n 报警内容:${message}" >> /tmp/ding_bash.log
注意脚本存放的目录(服务端)以及权限问题
/usr/lib/zabbix/alertscripts
chown -R zabbix.zabbix ./* chmod +x ./执行的文件名
zabbix-UI页面配置钉钉报警
脚本调通后,就可以去zabbix的UI页面配置参数,提供报警
思路依然是
创建报警媒介类型
↓
创建媒体类型
↓
钉钉报警创建
↓
用户选择报警媒介方式
1创建媒体类型
2用户选择报警媒介(钉钉)
坑记录,最后一步zabbix调用python发报警,别忘记关键字
Author: www.yuchaoit.cn
keyword: zabbix
告警主机:{HOSTNAME1} {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
-------
Author: www.yuchaoit.cn
keyword: zabbix
告警主机:{HOSTNAME1} {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南