Zabbix集成钉钉告警

发布时间 2023-05-24 15:33:05作者: me小怪兽

需求:

Zabbix告警通知发送到钉钉群组

钉钉报警时基于zabbix,访问钉钉应用接口去推送的报警消息,所以我们需要一个在钉钉创建一个报警应用。

版本:

Zabbix:6.0.15

Python:2.7.5

一、钉钉配置

1、创建群组、添加告警机器人

钉钉的聊天界面,点击发起群聊:

钉钉要3个人才能建群,所以需要添加两个人即可。

2、点击群设置 → 机器人 → 添加机器人 → 自定义 :

 

Zabbix实现钉钉告警通知,支持@多人功能

Zabbix实现钉钉告警通知,支持@多人功能

点击添加,输入机器人名字即可

 

生成了一个 webhook ,先复制,后面会用到。

二、zabbix配置

1、创建脚本

[root@localhost ~]# vim /usr/local/zabbix/alertscripts/dingding.py

#!/usr/bin/python3
#coding:utf-8

from dingtalkchatbot.chatbot import DingtalkChatbot, ActionCard, CardItem
import sys,os
webhook = 'https://oapi.dingtalk.com/robot/send?access_token=4d5a08a67cnf3d09b12ae8d5309c4ba45362e040a6bdcf917c0fb40054e453a8'
secret = 'SEC2098de78613321258a4u782eb5d0f99e790a363b504f911e5bd2c331202e58aa'

sendto = sys.argv[1].split(",")
print(sendto)
subject = sys.argv[2]
msg = sys.argv[3]
print("msg: " + msg)
subject = subject + "\n"
msg = subject + msg
xiaoding = DingtalkChatbot(webhook, secret=secret)
xiaoding.send_text(msg=msg, at_mobiles=False)

三、Zabbix web界面设置

1、添加报警脚本到zabbix:管理>>报警媒介类型

脚本参数如下:

{ALERT.MESSAGE}

{ALERT.SENDTO}

Zabbix实现钉钉告警通知,支持@多人功能

2、配置用户

Zabbix实现钉钉告警通知,支持@多人功能

3、创建动作:配置>>动作

Zabbix实现钉钉告警通知,支持@多人功能

Zabbix实现钉钉告警通知,支持@多人功能

Zabbix实现钉钉告警通知,支持@多人功能

操作:

默认标题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME} 故障!

消息内容:

告警主机: {HOSTNAME1}

主机地址: {HOST.IP}

告警等级: {TRIGGER.SEVERITY}

监控项目: {TRIGGER.KEY1}

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

当前状态: {TRIGGER.STATUS}: {ITEM.VALUE1}

告警信息: {TRIGGER.NAME}

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

事件ID: {EVENT.ID}

恢复操作:

默认标题:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME} 已恢复!

消息内容:

告警主机: {HOSTNAME1}

主机地址: {HOST.IP}

告警等级: {TRIGGER.SEVERITY}

监控项目: {TRIGGER.KEY1}

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

当前状态: {TRIGGER.STATUS}: {ITEM.VALUE1}

告警信息: {TRIGGER.NAME}

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

事件ID: {EVENT.ID}

4、进行钉钉报警测试

[root@JDCloud_Server alertscripts]# python dingding.py Test测试 132xxxx

Zabbix实现钉钉告警通知,支持@多人功能

Zabbix实现钉钉告警通知,支持@多人功能

Zabbix实现钉钉告警通知,支持@多人功能

至此,钉钉告警部署完成。