编程语言
首页 > 编程语言> > zabbix4.0-告警:配置钉钉报警(python脚本)

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.查看钉钉群

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

 

 

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

 

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


 

标签:opt,配置,python,报警,zabbix,dingding,告警,zabbix4.0
来源: https://www.cnblogs.com/gk888/p/15470539.html