zabbix 自定义脚本告警

本文介绍如何将Zabbix告警信息通过自定义shell脚本推送至公司自研聊天工具,实现告警通知的即时通讯。具体步骤包括配置Ubuntu18.04环境下的Zabbix4.0.3,编写并放置告警脚本于指定目录,以及在Zabbix中创建报警媒介、用户和动作,确保告警信息准确推送。

背景

公司为了推广使用自己开发的聊天工具,将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}

至此,所有配置均已完成,确认收到告警信息即可

Zabbix 是一款开源的企业级监控软件。在 Zabbix 中,可以设置各种告警方式,其中包括钉钉告警。本文将介绍如何编写钉钉的 Shell 告警脚本。 首先,我们需要在钉钉中创建一个机器人。在钉钉群中,点击右上角的设置按钮,选择机器人管理,然后点击创建机器人。选择自定义机器人,设置机器人名称和头像,然后复制 Webhook 地址。 接下来,我们需要编写 Shell 脚本。可以使用任何编辑器,比如 vim,nano 或者 gedit。以下是一个简单的 Shell 脚本示例: ```bash #!/bin/bash # 钉钉机器人 webhook 地址 url="https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXX" # 消息内容 message="$1" # 发送 POST 请求 curl -H "Content-Type: application/json" -X POST -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"$message\"}}" $url ``` 在脚本中,首先设置了钉钉机器人的 Webhook 地址。然后获取了消息内容,该内容作为脚本的第一个参数传入。最后,使用 curl 命令发送 POST 请求,将消息内容作为 JSON 格式发送给钉钉机器人。 现在,将脚本保存为 dingding.sh,并将其放置在 Zabbix 的 alertscripts 目录中。该目录通常位于 /usr/lib/zabbix/alertscripts。然后,将脚本的权限设置为可执行: ```bash chmod +x /usr/lib/zabbix/alertscripts/dingding.sh ``` 接下来,在 Zabbix 中创建一个新的媒介类型。在 Zabbix 管理界面中,选择 Administration -> Media types。然后点击 Create media type 按钮。 在弹出窗口中,输入以下信息: - Name: 钉钉告警 - Type: Script - Script name: dingding.sh - Script parameters: {ALERT.MESSAGE} 然后点击 Add 按钮进行保存。 最后,在 Zabbix告警动作中,选择钉钉告警媒介类型,并将钉钉机器人 Webhook 地址作为参数传入。现在,当 Zabbix 监控出现问题时,将会通过钉钉机器人发送告警消息。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值