您当前的位置:首页 > 网站建设 > 网站维护
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery |

Zabbix 配置钉钉告警功能的实现代码

51自学网 2022-07-04 11:43:29
  网站维护

需求

Zabbix配置钉钉告警和Prometheus配置钉钉告警类似。只不过Zabbix通过钉钉告警是通过Python脚本实现。而Prometheus是通过钉钉的二进制包实现。

钉钉的设置可以参看我的另外一篇博文(Prometheus 配置钉钉告警): https://knight.blog.csdn.net/article/details/105583741

我们现在主要来讲解Zabbix的设置实现

钉钉Webhook代码实现

vim /usr/local/zabbix/share/zabbix/alertscripts/dingding.py

#!/usr/bin/env python#coding:utf-8 import requests,json,sys,os,datetimewebhook="https://oapi.dingtalk.com/robot/send?access_token=6e5bcfee12bc6fa7f3c6bd16b7d6c333d86266cecadd3fe5e77a29cedae9f9"   #说明:这里改为自己创建的机器人的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/dingding.log"):  f=open("/tmp/dingding.log","a+")else:  f=open("/tmp/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()

执行一下:

chmod +x dingding.py # 加执行权限python dingding.py a b "测试"

我们看钉钉能不能收到告警(记得钉钉要加服务器的公网ip的白名单)

Zabbix的配置如下:

(1)配置报警媒介类型:

配置---> 报警媒介类型,脚本参数如下:

{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE}

截图如下:

(2)配置动作

 配置--->动作--->创建动作,把微信告警或者邮件告警的“操作”和恢复操作内容拷贝过来即可。

(3)最后配置用户

配置--->用户---> 报警媒介,把钉钉加进来即可。 其中收件人要写自己的电话号码。

 Zabbix的配置就配置完了。我们看一下告警的效果图

总结


下载地址:
linux实现猜数字小游戏源码
Docker安装Redis并介绍可视化客户端进行操作
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1