当我们把 zabbix 的基础建设构建完成之后,就能够对 Linux 服务器的一些基本项进行监控了,在 web 界面也可以看到相关问题的一些报警了,但是这样的报警显然是不够的,我们需要的是那种与实际工作常用工具相结合的报警,这样既容易发现告警,先显得比较高端,再加上一些基础的服务器信息以及告警项,做出对应的处理就非常容易了。
今天我们就来整理一下 zabbix 结合钉钉机器人的报警配置。
一、首先是钉钉客户端配置
1、建立一个钉钉群组。
2、添加一个机器人。
注意,这里要复制下来这个 wenhook 值和自定义的关键字等会要用到的。(新版本的钉钉)
二、zabbix 服务器端配置
1、进入配置中路径创建配置文件,并添加监听脚本。
/usr/local/docker4zabbix/zabbix_server/alertscripts/dingding.sh
#!/bin/bash to=$1 subject=$2 text=$3 #此处的 xxxxx 就是刚刚复制存留的 api 接口地址。 curl -i -X POST \ 'https://oapi.dingtalk.com/robot/send?access_token=XXX' \ -H 'Content-type':'application/json' \ -d ' { "msgtype": "text", "text": { "content": "'监控报警:''"$text"'" }, "at":{ "atMobiles":[ "'"$1"'" ], "isAtAll":false } }'
三、配置执行文件权限
chmod +x dingding.sh
测试脚本是否执行成功。sh dinhding.sh 11 22 33
四、设置前端创建脚本及报警媒介
再添加以下 3 个参数,分别对应脚本需要的 3 个参数:收件人地址、主题、详细内容。
{ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
五、创建动作

--->步骤时间--->1000 --->标题(故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!) --->默认信息下边的添加 告警主机:{HOSTNAME1} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件 ID:{EVENT.ID} --->操作添加 --->步骤--->5 表示触发 5 次动作 --->步骤持续时间--->每隔 120 秒触发一次 --->告警发给 admin 用户 --->用”钉钉”媒介发送。 --->点击小”add”添加选项,否则等于没写
点击添加之后 --->右边恢复操作,相当于服务正常之后的操作 --->标题改为--->恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复! --->信息改为---> 告警主机:{HOSTNAME1} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件 ID:{EVENT.ID} --->点击”新的”添加发送选项 --->添加群组 --->添加用户 Admin --->仅送到--->钉钉 --->点击小”添加”添加选项,否则等于没写 点击小 add 添加选项后再点击大 ADD 完成动作增加。
六、添加报警媒介
