内容原创,禁止转载!
效果图如下:
自定义警报提示
自定义告警脚本在zabbix_server.conf中配置,默认为: AlertScriptsPath=/usr/lib/zabbix/alertscripts
警报脚本在Zabbix服务器上执行。 这些脚本位于服务器配置文件中定义的目录中AlertScriptsPath.
这是一个示例警报脚本:1
2
3
4
5#!/bin/bash
to=$1
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" "${to}" >>/tmp/mail.log 2>&1
Zabbix-Server 在调用脚本的时候,会传递三个变量参数给脚本作为位置参数:$1, $2, $3。 其中:$1 表示收件人,$2 表示主题,$3 表示内容。
配置
选择 报警媒介类型,创建自定义告警方式,
Type 选择 Script,Script name 指定自定义的告警脚本,
Script parameters 一般设置如下三个:
- {ALERT.SENDTO}
- {ALERT.SUBJECT}
- {ALERT.MESSAGE}
其他配置省略
shell+钉钉机器人脚本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#!/bin/bash
#date:2017-12-14
#by wang.t
#Revision: 1.0
# Email:837479851@qq.com
# Website:idcsec.com
LOGFILE="/tmp/dingding.log"
:>"$LOGFILE"
exec 1>"$LOGFILE"
exec 2>&1
url="http://127.0.0.1/zabbix"
CURL="/usr/bin/curl"
to=$1
subject=`echo $2 | tr '\r\n' '\n'`
body=`echo $3 | tr '\r\n' '\n'`
${CURL} 'https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXX' \
-H 'Content-Type: application/json' \
-d """
{
\"msgtype\": \"markdown\",
\"markdown\": {
\"title\":\"${subject}@18******5\",
\"text\": \"${body}\"
},
\"at\": {
\"atMobiles\": [
\"18*******5\",
],
\"isAtAll\": false
}
}"""
Github:https://github.com/Hwting/script/blob/master/zabbix_dingding.sh
测试测试 zabbix_dingding.sh “” 2 3
动作设置
到配置-》动作-》创建动作(触发器)
zabbix报警消息模板
1 | 标题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障! |
1 | 标题:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复! |