Zabbix配置钉钉告警

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

今天我们就来整理一下zabbix结合钉钉机器人的报警配置。

1. 首先是钉钉客户端配置。

2. 建立一个钉钉群组。

3. 添加一个机器人。

image

注意,这里要复制下来这个wenhook值,等会要用到的。

4. zabbix服务器端配置。

5. Zabbix 配置文件中查找”Alert”查看告警脚本存放路径。

1
2
[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
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]# vim token.sh

#!/bin/bash
to=$1
subject=$2
text=$3
curl 'xxxxxxxxx' \ #此处的xxxxx就是刚刚复制存留的api接口地址。
-H 'Content-Type: application/json' \
-d '
{"msgtype": "text",
"text": {
"content": "'"$text"'"
},
"at":{
"atMobiles":[
"'"$1"'"
],
"isAtAll":false
}
}'

8. 配置执行文件权限与归属

1
2
[root@localhost alertscripts]# chown zabbix.zabbix token.sh
[root@localhost alertscripts]# chmod +x token.sh

切换至 zabbix 用户测试脚本是否执行成功。

1
bash  token.sh 11 22 33

如果钉钉已经有了提示消息,说明配置成功。

9. 设置前端创建脚本报警媒介

再添加以下 3 个参数,分别对应脚本需要的 3 个参数:收件人地址、主题、详细内容。

1
2
3
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

image

10. 创建动作

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

image

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”添加选项,否则等于没写

image

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 完成动作增加。

image

11. 添加报警媒介

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

image

更新。

image

12. 配置提示

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

image

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

image

现在再将网卡链接,看等会儿会是怎样的报警。

这样,一个非常给力好用的zabbix结合钉钉的报警就配置完成了。


Zabbix配置钉钉告警
https://johnnysxy.github.io/2023/05/17/Zabbix配置钉钉告警/
作者
Johnny Song
发布于
2023年5月17日
许可协议