千家信息网

zabbix - 对接钉钉应用接口

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,在钉钉机器人未推出之前,大家还是采用的自定义的应用来实现报警,效果及配置参考如下:一:下载发送程序https://www.qiansw.com/golang-zabbix-alter-to-dingd
千家信息网最后更新 2024年11月23日zabbix - 对接钉钉应用接口

在钉钉机器人未推出之前,大家还是采用的自定义的应用来实现报警,效果及配置参考如下:

一:下载发送程序

https://www.qiansw.com/golang-zabbix-alter-to-dingding.html go语言

测试:

其实明白了机器人报警方式,这个方式也大致相似,只不过webhook变成了应用id

golang-zabbix-alter-to-dingding.exe -agentid=794723 -corpid=dingd6757aa75040e32b -corpsecret=z
C5Jbed9Sx8o9ZwfN4QgFo420WWlKw8NbSDYvk6Qin7gflFIIYLSeq4ZrdOVpk1o -to=manager5675 -msg="{ \"from\": \"Tomcat03\"
, \"time\": \"2016.07.28 14:45:24\", \"level\": \"Warning\", \"name\": \"Response time is too high on Tomcat03\", \"key\": \"icmppingsec
\", \"value\": \"31ms\", \"now\": \"31ms\", \"id\": \"1618\", \"ip\": \"10.139.105.107\", \"color\":\"FF4A934A\", \"age\":\"3m\", \"reco
veryTime\":\"2016.07.28 14:48:24\", \"status\":\"OK\" }"

可用 golang-zabbix-alter-to-dingding.exe -h 查看有什么参数

-agentid string
AgentID,可以在钉钉后台查看,不可空。
-corpid string
CorpID,可以在钉钉后台查看,不可空。
-corpsecret string
CorpSecret,可以在钉钉后台查看,不可空。
-msg string
Json格式的文本消息内容,不可空。 (default "{\"from\": \"网\",\"time\": \"1970-07-01 08:00:00\",\"level\": \"紧急\",\t\"name\": \"这是一个千思网(qiansw.com)提供的ZABBIX钉钉报警插件。\",\"key\": \"icmpping\",\"value\": \"Down (0)\",\"now\": \"Down (0)\",\t\"id\": \"1511\",\"ip\": \"8.8.8.8\"}")
-to string
消息的接收人,可以在钉钉后台查看,可空。 (default "@all")
-url string
消息内容点击后跳转到的URL,可空。 (default "https://www.qiansw.com/golang-zabbix-alter-to-dingding.html")


1、钉钉添加应用配置


二:zabbix3.0 配置

1、部署程序

将go脚本拷贝至服务端警告目录AlertScriptspath下,添加执行权限。


2、创建报警媒介(以下是 json 格式,下面还有 xml 格式)


3、添加用户或组管理-》用户-》报警媒介-》添加,注意填写收件人为我们之前设置的运维部

(可参考对接机器人的配置)

4、创建动作,创建触发发送条件


其中 "color":"FFE61A1A", color后面为消息头部的颜色,您可以自定义。

其中前两位为透明度,后六位为颜色值,您可以通过查询取色器来获取这个颜色值。

报警信息
{
"from": "{HOSTNAME1}",
"time": "{EVENT.DATE} {EVENT.TIME}",
"level": "{TRIGGER.SEVERITY}",
"name": "{TRIGGER.NAME}",
"key": "{TRIGGER.KEY1}",
"value": "{ITEM.VALUE}",
"now": "{ITEM.LASTVALUE}",
"id": "{EVENT.ID}",
"ip": "{HOST.IP}",
"color":"FFE61A1A",
"age":"{EVENT.AGE}",
"status":"{EVENT.STATUS}"
}
恢复信息
{
"from": "{HOSTNAME1}",
"time": "{EVENT.DATE} {EVENT.TIME}",
"level": "{TRIGGER.SEVERITY}",
"name": "{TRIGGER.NAME}",
"key": "{TRIGGER.KEY1}",
"value": "{ITEM.VALUE}",
"now": "{ITEM.LASTVALUE}",
"id": "{EVENT.ID}",
"ip": "{HOST.IP}",
"color":"FF4A934A",
"age":"{EVENT.AGE}",
"recoveryTime":"{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}",
"status":"{EVENT.RECOVERY.STATUS}"
}

-----------------------------------------------------------------------------------------

变更记录 2016-08-01 21:22 增加了对xml源消息的支持,防止json格式的消息中有引号造成消息失败的问题。 2017-01-09 13:08 增加了对消息内 url 字段支持。

2、创建报警媒介(以下是 json 格式,下面还有 xml 格式)

3、添加用户或组管理-》用户-》报警媒介-》添加,注意填写收件人为我们之前设置的运维部

(可参考对接机器人的配置)

4、创建动作,创建触发发送条件

报警信息


{HOSTNAME1}

{TRIGGER.SEVERITY}
{TRIGGER.NAME}
{TRIGGER.KEY1}
{ITEM.VALUE}
{ITEM.LASTVALUE}
{EVENT.ID}
{HOST.IP}
FFE61A1A
这里的url会替换报警媒介的url
{EVENT.AGE}
{EVENT.STATUS}
{EVENT.ACK.STATUS}
{EVENT.ACK.HISTORY}
恢复信息


{HOSTNAME1}

{TRIGGER.SEVERITY}
{TRIGGER.NAME}
{TRIGGER.KEY1}
{ITEM.VALUE}
{ITEM.LASTVALUE}
{EVENT.ID}
{HOST.IP}
FF4A934A
这里的url会替换报警媒介的url
{EVENT.AGE}
{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
{EVENT.RECOVERY.STATUS}

----------------------------------------------------------------------------------------

三:zabbix 2.4 配置

同样如果是zabbix 2.4版的,无法直接在web端输入golong脚本参数,我们可以类似机器人的方式写一个shell 传参,在告警媒介调用这个shell。

#!/bin/bash

agentid=7947xxxxxx

corpid=dingd6757axxxxxxxxx

corpsecret=xxxxxxxxxx

to=manager56xxxxxxx

/zabbix/share/zabbix/alertscripts/golang-zabbix-alter-to-dingding.exe -agentid=$agentid -corpid=$corpid -corpsecret=$corpsecret -to=$to -msg="$5"

您还可以创建多个报警媒介、动作中创建多个步骤,来实现消息分级。

例如:

  1. 1-10条消息仅发送给运维,11条开始也要发送给运维主管。

  2. 某类的消息发给运维的同时,还要发给DBA。




0