千家信息网

zabbix3.4.15用python实现钉钉机器人告警的方法是什么

发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,zabbix3.4.15用python实现钉钉机器人告警的方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。zabbix服务器
千家信息网最后更新 2024年12月12日zabbix3.4.15用python实现钉钉机器人告警的方法是什么

zabbix3.4.15用python实现钉钉机器人告警的方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

zabbix服务器监控到异常,可以通过钉钉机器人进行报警通知,具体配置如下:

钉钉机器人配置:

需要新建一个钉钉群,群里面添加一个机器人即可。

报警用到的python脚本:

#cat dingding.py

#!/usr/bin/env python

#coding:utf-8

#zabbix钉钉报警

import requests,json,sys,os,datetime

webhook="https://oapi.dingtalk.com/robot/send?access_token=3dee44ff7fecfxxxxxxxxxxxxxxxxx" --钉钉机器人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/zabbix_dingding.log"):

f=open("/tmp/zabbix_dingding.log","a+")

else:

f=open("/tmp/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()

备注:需要把此脚本放到zabbix定义的脚本执行目录里。

查看zabbix里面定义的脚本执行目录方法:

#cat /etc/zabbix/conf/zabbix_server.conf | grep AlertScriptsPath

### Option: AlertScriptsPath

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts

钉钉机器人webhook地址获取方法:

群设置--> 群机器人-->本群的机器人,选择之前添加的机器人,然后点开,见下图:

WEB界面上的配置:

1、配置用户可以使用脚本报警

用户-->找到Admin,点开,找到报警媒介

2、创建报警媒介:

名称 dingding

类型 脚本

名称 dingding.py

脚本参数:

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

创建用户指定报警媒介类型

管理--> 报警媒介类型-->创建媒体类型

创建触发器发送警告动作

配置-->动作-->创建动作

操作和恢复操作需填写的内容如下:

标题:故障信息!

内容:

主机名称:{HOST.NAME}

主机地址:{HOST.IP}

主机分组:{TRIGGER.HOSTGROUP.NAME}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警项目:({EVENT.ID}){TRIGGER.KEY1}

告警信息:{TRIGGER.NAME}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

事件状态:{TRIGGER.STATUS}

发送时间:{TIME}

默认标题:恢复信息!

消息内容:

主机名称:{HOST.NAME}

主机地址:{HOST.IP}

主机分组:{TRIGGER.HOSTGROUP.NAME}

恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}

恢复项目:({EVENT.RECOVERY.ID}):{TRIGGER.KEY1}

恢复信息:{TRIGGER.NAME}

恢复详情:{ITEM.NAME}:{ITEM.VALUE}:{EVENT.RECOVERY.VALUE}

当前状态:{EVENT.RECOVERY.STATUS}

发送时间:{TIME}

4、测试发送结果

查看告警发送的日志内容,status列为发送状态,error为错误提示信息。

【报表->审计->动作->选择时间段】

【报表->审计->动作日志->选择时间段】

钉钉能收到报警信息,配置完成。

收到的告警信息类似如下图:

关于zabbix3.4.15用python实现钉钉机器人告警的方法是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

0