一、概述

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

二、 钉钉机器人创建

在钉钉内发起群聊或创建群组

创建钉钉机器人

zabbix3.4告警姿势之钉钉告警
添加自定义机器人,记录webhook值
zabbix3.4告警姿势之钉钉告警

三、zabbix配置

3.1下载编写好的程序文件到zabbix的/usr/lib/zabbix/alertscripts目录

下载url:下载页面
解压更改名称为dingding.sh并且chmod +x dingding.sh && chown zabbix.zabbix dingding.sh
创建/tmp/dingding.log 并更改属主为zabbix

3.2报警媒介类型

zabbix3.4告警姿势之钉钉告警
zabbix3.4告警姿势之钉钉告警

-webhook:为钉钉机器人的webhook
-msg:为zabbix定义的告警message
-url:为zabbix的调用url
-log:为记录日志,对应与zabbix server的日志文件

3.3 配置动作

配置---动作,添加钉钉告警动作
zabbix3.4告警姿势之钉钉告警
定义名称
zabbix3.4告警姿势之钉钉告警
定义动作操作
zabbix3.4告警姿势之钉钉告警
zabbix3.4告警姿势之钉钉告警
告警默认信息内容如下:

<?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>点击可以连接到的url</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>点击可以连接到的url</url>
  <age>{EVENT.AGE}</age>
  <recoveryTime>{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}</recoveryTime>
  <status>{EVENT.RECOVERY.STATUS}</status>
</root>

3.4 配置用户告警媒介

zabbix3.4告警姿势之钉钉告警
zabbix3.4告警姿势之钉钉告警
由于钉钉告警在告警消息参数里面已经指定钉钉机器人的webhook,在收件人可以随便填写

3.5 测试

zabbix3.4告警姿势之钉钉告警

3.6 查看日志

zabbix3.4告警姿势之钉钉告警