Zabbix 配置钉钉告警功能

导读 这篇文章主要介绍了Zabbix 配置钉钉告警功能的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
需求

Zabbix配置钉钉告警和Prometheus配置钉钉告警类似。只不过Zabbix通过钉钉告警是通过Python脚本实现。而Prometheus是通过钉钉的二进制包实现。
我们现在主要来讲解Zabbix的设置实现

钉钉Webhook代码实现

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

#!/usr/bin/env python
#coding:utf-8
  
import requests,json,sys,os,datetime
webhook="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 配置钉钉告警功能
Zabbix的配置如下:
(1)配置报警媒介类型:
配置—> 报警媒介类型,脚本参数如下:

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

截图如下:
Zabbix 配置钉钉告警功能
(2)配置动作
配置—>动作—>创建动作,把微信告警或者邮件告警的“操作”和恢复操作内容拷贝过来即可。
Zabbix 配置钉钉告警功能
(3)最后配置用户
配置—>用户—> 报警媒介,把钉钉加进来即可。 其中收件人要写自己的电话号码。
Zabbix 配置钉钉告警功能
Zabbix的配置就配置完了。我们看一下告警的效果图
Zabbix 配置钉钉告警功能

总结

到此这篇关于Zabbix 配置钉钉告警的文章就介绍到这了

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/123227.html

(0)
上一篇 2021年8月29日
下一篇 2021年8月29日

相关推荐

发表回复

登录后才能评论