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

本文详细介绍如何在Zabbix中配置钉钉机器人进行服务器监控报警。通过Python脚本与钉钉机器人集成,实现异常情况的即时通知。文章涵盖脚本编写、webhook地址获取、Zabbix配置步骤及测试方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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为错误提示信息。

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

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

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

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15498/viewspace-2565146/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15498/viewspace-2565146/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值