zabbix监控告警通知配置
zabbix告警通知是zabbix触发告警时候执行脚本,通过传参获取报警具体信息,再由脚本调用相关接口给用户组及用户发送通知的过程
zabbix服务端有脚本的存放路径,默认路径为 /usr/lib/zabbix/alertscripts,以下脚本内容仅供参考
#!/bin/bash export LANG=en_US.UTF-8 #PHONE=$(echo $1 |sed 's/,/",\n"/g') Subject=`echo -e "$3" |awk 'NR==3 {print $0}'` #定义主题,页面配置的第二个参数可直接写$2,一下是根据公司要求,所以变动了一下 MESSAGE=$3 #页面配置的第三个参数,主要是报警内容 echo $1 $2 $3 >>/tmp/sms.log curl -H "xxxxxxxxxx" \ -H "xxxxxxxxxxxxxx" \ -XPOST 消息转发的接口地址 -d """ { \"applicationId\":\"xxxxxxxxxxx\", \"topic\":\"devops\", \"expireTime\":1000, \"dev\":false, \"msgType\":true, \"notify\":true \"messageBody\":\"{'alertBody':'"devops-prod"','alertTitle':'$Subject','data':'$MESSAGE'}\" } echo $? >/tmp/sendsms.log
curl中定义的内容是由消息平台提供给和决定的
接下来是web页面配置:
1)创建报警媒介类型
定义的脚本参数就是出发报警时候执行脚本要传进去的参数,$1,$2,$3 分别对用手机号等信息,主题,具体内容(动作的操作中定义获取)
2)配置用户报警媒介
3)创建报警触发动作
配置消息内容,发送的用户群组及用户等
更新保存退出,测试出发报警是否成功
附:消息内容定义
1 生产环境zabbix告警!!!\n告警主机:{HOST.IP}\n告警信息:{TRIGGER.NAME}\n告警项目:{TRIGGER.KEY1}\n问题详情:{ITEM.NAME}:{ITEM.VALUE}\n告警时间:{EVENT.DATE} {EVENT.TIME}\n告警等级:{TRIGGER.SEVERITY}\n当前状态:{TRIGGER.STATUS} : {ITEM.VALUE}\n事件ID:{EVENT.ID} 2 3 4 生产环境zabbix告警恢复\n恢复主机:{HOST.IP}\n恢复信息:{TRIGGER.NAME}\n恢复详情:{ITEM.NAME}:{ITEM.VALUE}\n恢复时间:{EVENT.DATE} {EVENT.RECOVERY.TIME}\n恢复等级:{TRIGGER.SEVERITY}\n时间ID:{EVENT.ID}
最终结果如下: