Zabbix钉钉告警

一.钉钉客户端配置

1.添加钉钉机器人API

新建钉钉群聊--智能群助手--添加机器人--自定义--机器人名称:Zabbix告警-安全设置--自定义关键词:告警--完成--保存好webhook地址
dingding

2.添加脚本

tee -a /usr/lib/zabbix/alertscripts/dingding.sh <<-'EOF'
#!/bin/bash
to=$1
subject=$2
text=$3
#此处的xxxxx就是刚刚复制存留的api接口地址。
curl 'https://oapi.dingtalk.com/robot/send?access_token=cc1e2c3f3709a300b1c2ce7f5d447bcda2e5229096e70a4c16f114b04c747182' \
-H 'Content-Type: application/json;charset=utf-8' \
-d '
{"msgtype": "text",
"text": {
"content": "'"$text"'"
},
"at":{
"atMobiles":[
"'"$1"'"
],
"isAtAll":false
}
}'
EOF

3.添加权限

chmod +x /usr/lib/zabbix/alertscripts/dingding*

4.测试

/usr/lib/zabbix/alertscripts/dingding.sh 13xxxxxx  1 告警
5.添加告警

管理--报警媒介类型--创建媒介类型--名称:钉钉告警--类型:脚本--脚本名称dingding.sh

参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

配置--动作--Trigger actions--创建动作

名称:钉钉告警
条件A:触发器示警度大于等于信息
条件B: 触发器名称不含网口流量
计算方式:和(同时满足)

操作步骤
主题:zabbix告警
消息:
![screenshot](https://www.thege.cn/gaojing.png)
---
> {TRIGGER.NAME}
---
> ##### 监控项目:<font color=#FF0000 size=25>{ITEM.NAME}</font>
> ##### 告警等级:{TRIGGER.SEVERITY}
> ##### 当前状态:{TRIGGER.STATUS}
> ##### 当前负载:<font color=#FF0000 size=25>{ITEM.LASTVALUE}</font>
> ##### 告警主机:{HOST.NAME} — {HOST.IP}
> ##### 告警时间:{EVENT.DATE} {EVENT.TIME}
> ##### 持续时间:{EVENT.AGE}

恢复操作:
主题:Zabbix恢复
消息:
![screenshot](https://www.thege.cn/huifu.png)
---
> {TRIGGER.NAME}
---
> ##### 监控项目:<font color=#53FF53 size=25>{ITEM.NAME}</font>
> ##### 告警等级:{TRIGGER.SEVERITY}
> ##### 当前状态:{TRIGGER.STATUS}
> ##### 当前负载:<font color=#53FF53 size=25>{ITEM.LASTVALUE}</font>
> ##### 告警主机:{HOST.NAME} — {HOST.IP}
> ##### 告警时间:{EVENT.DATE} {EVENT.TIME}
> ##### 恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
> ##### 持续时间:{EVENT.AGE}

User settings--报警媒介--添加--类型--钉钉告警--收件人

6.多服务公用一个脚本

python脚本

#!/usr/bin/env python3
#encoding: utf-8
import sys
import getopt
import requests
import json
import traceback
try:
    opts,args = getopt.getopt(sys.argv[1:],shortopts='',longopts=['webhook_url=','webhook_title=','alert_message='])
    for opt,value in opts:
         if opt == '--webhook_url':
             webhook_url = value
         elif opt == '--webhook_title':
             webhook_title = value
         elif opt == '--alert_message':
             alert_message = value
    webhook_header = {
             "Content-Type": "application/json",
             "charset": "utf-8"
    }
    webhook_message = {
            "msgtype": "markdown",
            "markdown": {
                "title": webhook_title,
                "text": alert_message
            }
    }
    sendData = json.dumps(webhook_message,indent=1)
    requests.post(url=webhook_url,headers=webhook_header,data=sendData)
except:
    traceback.print_exc(file=open('/var/log/zabbix/dingding.log','w+'))

管理--报警媒介类型--创建媒介类型--名称:钉钉告警--类型:脚本--脚本名称dingding.py

参数:
--webhook_url=https://oapi.dingtalk.com/robot/send?access_token=2fbb42574b385bfeecad48b70eb3711c20933d340ab0c
--webhook_title={ALERT.SUBJECT}
--alert_message={ALERT.MESSAGE}
THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录