背景
公司为了推广使用自己开发的聊天工具,将zabbix报警平台告警推送到聊天工具系统消息中
环境
OS:Unbuntu 18.04
ZabbixServer:zabbix 4.0.3
告警脚本:shell
原理
用POST的方式将报警信息等参数通过接口传给相应的报警接收人
告警脚本
root@zabbix-HP-Z440-Workstation:/usr/lib/zabbix/alertscripts# cat Juhui.sh
#!/bin/bash
revision=juhui
t=`echo -e "$2"` ##报警第二个参数,对应报警主题
m=`echo -e "$3" |awk -F " " '{print $0}'` #报警第三个参数,对应报警信息
message="$t"@@@"$m"
purl=http://msg-push.ipebg.efoxconn.com:8080/plugins/notification_service/push_notification
curl -d "empNos=报警接收人&resource=$revision&msgContent=$message" $purl
#empNos 收件人
#msgContent 发送信息(包括主题和内容)
将shell脚本放置在/usr/lib/zabbix/alertscripts/目录下,这个目录是zabbix的docker已经建好的,我们直接把shell脚本放进去并增加可执行权限即可,系统自动调用。
zabbix配置
1.创建报警媒介
名称:可以随意命名
类型:脚本
脚本名称:Juhui.sh(必须是alertscripts下告警脚本的名称)
脚本参数:
{ALERT.SENDTO} Zabbix用户中维护的发送人联系方式,下文“用户”收件人
{ALERT.SUBJECT} 默认标题,我把它做成短信标题来使用
{ALERT.MESSAGE} 报警的内容,由“动作”的配置决定
选项可以设置告警发送次数及时间间隔,即一次告警发送失败后,再次发送的告警时间
2.创建用户
创建用户
配置报警媒介
类型:1中创建的类型
收件人:信息收件人,本项目是通过脚本写死,没有用,可随便写
当启用时:自己定义
3.配置动作
默认标题:1中的默认标题 {ALERT.SUBJECT}
消息内容:自定义
告警主機:{HOST.NAME}
監控項目:{ITEM.NAME}
當前狀態:{TRIGGER.STATUS}
告警時間:{EVENT.DATE} {EVENT.TIME}
默认标题:1中的默认标题 {ALERT.SUBJECT}
消息内容:自定义
告警主機:{HOST.NAME}
監控項目:{ITEM.NAME}
當前狀態:{TRIGGER.STATUS}
告警時間:{EVENT.DATE} {EVENT.TIME}
恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持續時間{EVENT.AGE}
至此,所有配置均已完成,确认收到告警信息即可