zabbix4.0-告警:配置钉钉报警(python脚本)

2021/10/27 14:39:36

本文主要是介绍zabbix4.0-告警:配置钉钉报警(python脚本),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

 


开始搭建

一、钉钉方面的准备工作

最少邀请2个人才能建立一个群,然后在群设置中添加一个智能群助手,如图选择自定义

 

 

然后点击添加,开始自定义机器人的配置

 

 

 

 配置好后点击完成,会出现一个Webhook的地址。

 

 

 至此,钉钉机器人配置完毕。开始配置zabbis_server端。

 

二、zabbix_server端

1.添加必要的组件(执行python脚本时需要)

#yum install python-pip -y
#pip install --upgrade pip
#pip install requests

 

2.添加报警脚本路径

[root@vha zabbix]# vim /opt/zabbix/etc/zabbix_server.conf|grep -v -e"#" -e "^$"
......(前面的配置忽略)
AlertScriptsPath=/opt/zabbix/alertscripts

 

3.创建对应目录,编辑python脚本,授予相应权限。

#mkdir /opt/zabbix/alertscripts
#cd  /opt/zabbix/alertscripts

#vim dingding.py
  #!/usr/bin/env python
  #coding:utf-8
  #zabbix钉钉报警

  import requests,json,sys,os,datetime

  #说明:这里改为自己创建的机器人的webhook的值
  webhook="https://oapi.dingtalk.com/robot/send?access_token=56843c91afe33e9a0b8f31c480ae817bb7a17eacf2aa2adb1e951fc2f7a9b8ab"  

  #发给钉钉群中哪个用户
  user=sys.argv[1]
  #发送的报警内容
  text=sys.argv[3]
  data={
      "msgtype": "text",
      "text": {
          "content": text
      },
      "at": {
          "atMobiles": [
              user
          ],
          "isAtAll": False
      }
  }

  #钉钉API固定数据格式
  headers = {'Content-Type': 'application/json'}
  x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
  if os.path.exists("/opt/zabbix/dingding.log"):
      f=open("/opt/zabbix/dingding.log","a+")
  else:
      f=open("/opt/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()
  #将发送的告警信息写入本地日志/opt/zabbix/dingding.log中。

#chmod +x dingding.py
#chown -R zabbix.zabbix /opt/zabbix/

 

4.测试脚本是否能正常使用,并查看"dingding.log"日志。

其中"dzmvl127"为钉钉上个人信息中的"钉钉号"。

[root@vha alertscripts]# ./dingding.py dzmvl127 test "这是一条告警测试信息,请忽略"
[root@vha alertscripts]# cat /opt/zabbix/dingding.log 

------------------------------------------------------------
2021-10-27 14:03:19.891915    dzmvl127    发送成功
这是一条告警测试信息,请忽略[root@vha alertscripts]# 

查看钉钉群是否有消息传来,如图说明脚本可以正常使用。

 

 

 至此,zabbix_server端搭建完毕,开始配置zabbix_web端。

 

三、zabbix_web端

1.编辑"管理------>报警媒介类型",创建媒体类型

 

 

 

2.编辑"管理----->用户",选择使用哪个用户发送消息,这里选择的是Admin,然后选择报警媒介

 

 

 

3.编辑"配置------->动作",选择事件源为"触发器",然后创建动作

动作页面配置:

 

 

操作页面配置

消息内容

报警:故障{TRIGGER.STATUS},服务器名:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
告警主机:{HOSTNAME}
告警主机IP地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

 

恢复操作页面

查看配置好后的动作

 

 

将其都启用。至此,web端也已配置完毕。然后开启测试


 测试报警与恢复

 

1.制造报警,将根目录磁盘搞到100%

 

 

 2.查看仪表盘有报警

 

 

3.查看钉钉群

钉钉几乎也是同一时间接收到报警

 

 

 恢复磁盘容量到正常时,查看恢复

 

至此,钉钉报警配置完毕。


 



这篇关于zabbix4.0-告警:配置钉钉报警(python脚本)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程