当我们把zabbix的基础建设构建完成之后,就能够对Linux服务器的一些基本项进行监控了,在web界面也可以看到相关问题的一些报警了,但是这样的报警显然是不够的,我们需要的是那种与实际工作常用工具相结合的报警,这样既容易发现告警,先显得比较高端,再加上一些基础的服务器信息以及告警项,做出对应的处理就非常容易了。
今天我们就来整理一下zabbix结合钉钉机器人的报警配置。
1. 首先是钉钉客户端配置。
2. 建立一个钉钉群组。
3. 添加一个机器人。

注意,这里要复制下来这个wenhook值,等会要用到的。
4. zabbix服务器端配置。
5. Zabbix 配置文件中查找”Alert”查看告警脚本存放路径。
1 2
| [root@localhost ~] AlertScriptsPath=/usr/lib/zabbix/alertscripts (455行,默认的,不用修改)
|
6. 进入配置中路径创建配置文件,并添加监听脚本。
1
| [root@localhost ~]# cd /usr/lib/zabbix/alertscripts/
|
7. 然后添加脚本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| [root@localhost alertscripts]
to=$1 subject=$2 text=$3 curl 'xxxxxxxxx' \ -H 'Content-Type: application/json' \ -d ' {"msgtype": "text", "text": { "content": "'"$text"'" }, "at":{ "atMobiles":[ "'"$1"'" ], "isAtAll":false } }'
|
8. 配置执行文件权限与归属
1 2
| [root@localhost alertscripts] [root@localhost alertscripts]
|
切换至 zabbix 用户测试脚本是否执行成功。
如果钉钉已经有了提示消息,说明配置成功。
9. 设置前端创建脚本
及报警媒介
再添加以下 3 个参数,分别对应脚本需要的 3 个参数:收件人地址、主题、详细内容。
1 2 3
| {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
|

10. 创建动作
1 2 3 4 5 6 7 8
| 配置 --->动作 --->右上角触发器 --->创建动作 --->名称(钉钉) --->新的触发条件(触发器示警度--->大于等于--->警告) --->添加(上边出现了两条--->计算方式选和) --->选择右边操作
|

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
| --->步骤时间--->1000 --->标题(故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!) or: 服务故障告警:{TRIGGER.STATUS}: {TRIGGER.NAME} --->默认信息下边的添加
告警主机:{HOSTNAME1} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件 ID:{EVENT.ID}
or: 服务故障告警:{TRIGGER.STATUS}: {TRIGGER.NAME} 告警主机:{HOST.NAME} 主机IP:{HOST.IP} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息:{TRIGGER.NAME} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}
--->操作添加 --->步骤--->5 表示触发 5 次动作 --->步骤持续时间--->每隔 120 秒触发一次 --->告警发给 admin 用户 --->用”钉钉”媒介发送。 --->点击小”add”添加选项,否则等于没写
|

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
| 点击添加之后 --->右边恢复操作,相当于服务正常之后的操作 --->标题改为--->恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复! or: 服务故障恢复告警:{TRIGGER.STATUS}: {TRIGGER.NAME} --->信息改为--->
告警主机:{HOSTNAME1} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件 ID:{EVENT.ID}
or: 服务故障恢复告警:{TRIGGER.STATUS}: {TRIGGER.NAME} 告警主机:{HOST.NAME} 主机IP: {HOST.IP} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息:{TRIGGER.NAME} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID: {EVENT.ID}
--->点击”新的”添加发送选项 --->添加群组 --->添加用户 Admin --->仅送到--->钉钉 --->点击小”添加”添加选项,否则等于没写 点击小 add 添加选项后再点击大 ADD 完成动作增加。
|

11. 添加报警媒介
1 2 3 4 5 6 7 8
| --->点击右上角用户头像 --->点击报警媒介 --->添加 --->类型--->钉钉 --->收件人--->要@的人的手机号 --->当启用时--->这个设置的是报警的时间设置 --->添加 --->然后直接点击更新
|

更新。

12. 配置提示
1 2 3 4
| --->点击右上角用户头像 --->选择正在发送消息 --->选中前端消息 --->下边的全选中,,更新。
|

测试 直接把监控的nginx服务器网卡断掉,然后等待报警!!!

现在再将网卡链接,看等会儿会是怎样的报警。
这样,一个非常给力好用的zabbix结合钉钉的报警就配置完成了。