Zabbix-使用钉钉发送告警

概述

群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:你可将运维报警提醒通过自定义机器人聚合到钉钉群

钉钉机器人创建

  • 在钉钉内发起群聊或创建群组,机器人管理–>自定义

mark

  • 添加自定义机器人,记录webhook值。

mark

zabbix配置

  • 下载编写好的程序文件到zabbix的/usr/lib/zabbix/alertscripts目录:
    1
    https://www.appgao.com/files/192.html

mark

1
2
3
4
解压更改名称为dingding.sh并且chmod +x dingding.sh && chown zabbix.zabbix dingding.sh
创建/tmp/dingding.log 并更改属主为zabbix
测试程序是否能正常运行:
./dingding.sh -webhook="https://oapi.dingtalk.com/robot/send?access_token=xxxxxxx
  • 创建媒介类型
    mark

  • 设置参数
    mark

    1
    2
    3
    4
    -webhook=https://oapi.dingtalk.com/robot/send?access_token=6e582b91e0f8b2a800b38bb037d4512a8adff9d5b5e8398774e1114492a40c2d
    -msg={ALERT.MESSAGE}
    -url=http://43.x.x.x/zabbix
    -log=/tmp/dingding.log
  • 配置动作
    mark

    • 配置操作和恢复操作,填写发送的用户和发送方式
      mark
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 报警信息:
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<from>{HOSTNAME1}</from>
<time>{EVENT.DATE} {EVENT.TIME}</time>
<level>{TRIGGER.SEVERITY}</level>
<name>{TRIGGER.NAME}</name>
<key>{TRIGGER.KEY1}</key>
<value>{ITEM.VALUE}</value>
<now>{ITEM.LASTVALUE}</now>
<id>{EVENT.ID}</id>
<ip>{HOST.IP}</ip>
<url>http://zabbix.gogen.cn</url>
<age>{EVENT.AGE}</age>
<status>{EVENT.STATUS}</status>
<acknowledgement> {EVENT.ACK.STATUS} </acknowledgement>
<acknowledgementhistory> {EVENT.ACK.HISTORY}</acknowledgementhistory>
</root>

恢复信息:
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<from>{HOSTNAME1}</from>
<time>{EVENT.DATE} {EVENT.TIME}</time>
<level>{TRIGGER.SEVERITY}</level>
<name>{TRIGGER.NAME}</name>
<key>{TRIGGER.KEY1}</key>
<value>{ITEM.VALUE}</value>
<now>{ITEM.LASTVALUE}</now>
<id>{EVENT.ID}</id>
<ip>{HOST.IP}</ip>
<color>FF4A934A</color>
<url>http://zabbix.gogen.cn</url>
<age>{EVENT.AGE}</age>
<recoveryTime>{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}</recoveryTime>
<status>OK</status>
</root>
注意:恢复信息说明:<status>OK</status>默认为OK,这是3.4的zabbix server才这样做,如果你的zabbix server是3.4之前的版本请改为:<status>{EVENT.RECOVERY.STATUS}</status>
  • 设置用户报警媒介
    mark
-------------本文结束感谢您的阅读-------------
原创技术分享,感谢您的支持。