原文地址

网上有很多zabbix使用钉钉触发告警信息的攻略, 需要注意的是zabbix3.2不能使用那些攻略进行触发报警.

至于监控内容啥的不在这篇文章里谈及, 我们这里只谈报警部分.

作者这里的环境基本都是centos 7.4 以及zabbix3.2 yum 安装,如果读者用的其他系统, 或安装方式不同, 此文章仅供参考.

搭建好zabbix3.2环境,然后:

  1. 从网上下载一下钉钉的zabbix机器人:

    钉钉-zabbix-robot

解压缩并放在你的任意位置,改名为dingding.sh并放到你的/usr/lib/zabbix/alertscripts(yum安装默认是这个文件夹)下并授予执行权限:

cp golang-zabbix-robot-64 /usr/lib/zabbix/alertscripts/dingding.sh
chmod u+x /usr/lib/zabbix/alertscripts/dingding.sh

2. 随便拉一个钉钉群,或者直接使用部门群, 添加一个自定义机器人:

centos7 yum 安装zabbix设置钉钉机器人报警_第1张图片

centos7 yum 安装zabbix设置钉钉机器人报警_第2张图片

centos7 yum 安装zabbix设置钉钉机器人报警_第3张图片

centos7 yum 安装zabbix设置钉钉机器人报警_第4张图片

注意这里的webhooks, 稍后设置发送消息的来源会用到,点击完成:

centos7 yum 安装zabbix设置钉钉机器人报警_第5张图片

2. 在web主页面点击administration, 然后选择Media type,可以看到你当前的所有报警媒介, 邮件报警除非是自建的邮件服务器建议不要再用了. 受供应商限制太多.

点击右上角的create Media type, 创建一个新的报警媒介:

centos7 yum 安装zabbix设置钉钉机器人报警_第6张图片

输入名称dingding,选择类型为script,输入文件名称为dingding.sh,并添加多个Script parameters,每个参数1个, 然后点击add.


-webhook=<贴入你刚建立好的机器人的webhooks>

-msg={ALERT.MESSAGE}

-url=https://<此处替换为你的zabbix主页>

-log=/tmp/dingding.log

centos7 yum 安装zabbix设置钉钉机器人报警_第7张图片

点击user 为调整admin的media type以接收报警:

centos7 yum 安装zabbix设置钉钉机器人报警_第8张图片

centos7 yum 安装zabbix设置钉钉机器人报警_第9张图片

在Media选项卡点击add添加一个接收报警的媒介:

centos7 yum 安装zabbix设置钉钉机器人报警_第10张图片

因为钉钉使用的是web接口,只需要确认你的发送方式是钉钉就好了,与实际发送的用户名没有任何关系,确认输入无误后点击add

centos7 yum 安装zabbix设置钉钉机器人报警_第11张图片


3.接下来开始创建action, 在主页面上选择configuration里的actions,点击右上角的create action:

centos7 yum 安装zabbix设置钉钉机器人报警_第12张图片

新建的action主页面只要写个名称就好了:

centos7 yum 安装zabbix设置钉钉机器人报警_第13张图片接下来设置operation,在Default message 贴入以下内容,注意在3.4的版本是需要注意格式的,但是在3.2版本必须去掉所有格式

{HOSTNAME1}{TRIGGER.SEVERITY}{TRIGGER.NAME}{TRIGGER.KEY1}{ITEM.VALUE}{ITEM.LASTVALUE}{EVENT.ID}{HOST.IP}点击可以连接到的url{EVENT.AGE}{EVENT.STATUS} {EVENT.ACK.STATUS} {EVENT.ACK.HISTORY}

在operation右侧点击new,添加新的操作:

centos7 yum 安装zabbix设置钉钉机器人报警_第14张图片

在send only to 设置为创建好的media type的名称,也可以偷懒直接设置为all,在Send to User groups 和Send to Users可以设置为发送给组或者某个zabbix用户,完成后点击operation details的add:

centos7 yum 安装zabbix设置钉钉机器人报警_第15张图片

完成后如下, 这个operation可以随时编辑,所以不担心输入错误, 同时可以可以把Operation type修改为执行remote command,以zabbix-agent 发送运维命令实现自动化运维:

centos7 yum 安装zabbix设置钉钉机器人报警_第16张图片

接下来设置系统恢复操作,点击屏幕上方的Recovery operations,贴入default message:

{HOSTNAME1}{TRIGGER.SEVERITY}{TRIGGER.NAME}{TRIGGER.KEY1}{ITEM.VALUE}{ITEM.LASTVALUE}{EVENT.ID}{HOST.IP}FF4A934A点击可以连接到的url{EVENT.AGE}{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}{EVENT.RECOVERY.STATUS}

然后添加一个operation,并点击add:

centos7 yum 安装zabbix设置钉钉机器人报警_第17张图片

完成结果如下:

centos7 yum 安装zabbix设置钉钉机器人报警_第18张图片

点击add.这里需要说明的是由于钉钉用的是机器人接口发送消息, 所以跟个人的邮箱什么的没有任何关系.

报警效果如下,机器人头像是我个人加的,图片随便搜:

centos7 yum 安装zabbix设置钉钉机器人报警_第19张图片