zabbix使用脚本自定义监控项

1. 在zabbix_agent的配置文件中配置自定义key和脚本位置

vim /etc/zabbix/zabbix_agentd.conf
 UserParameter=mq_check_log,/etc/zabbix/zabbix_agentd.d/mqlog.sh


mq_check_log:是这个自定义参数的名称。在Zabbix的监控项(item)配置中,你可以通过引用这个名称来调用这个脚本。

/etc/zabbix/zabbix_agentd.d/mqlog.sh:指定自定义脚本位置

2. 书写自定义脚本(我这边是自己收集的日志,只有错误消息才有时间戳,所以我过滤时间戳就行,过滤到时间戳后和当前时间对比,小于30分钟就告警(1),大于三十分钟就恢复(0))

#!/bin/bash

# 日志文件路径
LOGFILE="/home/likun/entrade-transwarp/MQ/log"


# 使用grep和awk等工具提取最新的告警时间戳
# 时间戳格式为 '%Y-%m-%d %H:%M:%S'
LATEST_ALERT_TIMESTAMP=$(cat /home/sysadm/entrade-transwarp/MQ/log/* |tac|grep -Eo '\b[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}\b' |head -n 1)

# 检查是否成功找到时间戳
if [ -z "$LATEST_ALERT_TIMESTAMP" ]; then
    echo "0"  # 如果没有找到时间戳,则返回0(不告警)
    exit 0
fi

# 获取当前时间戳
NOW=$(date '+%s')
# 将找到的告警时间戳转换为秒
LATEST_ALERT_SEC=$(date -d "$LATEST_ALERT_TIMESTAMP" '+%s')

# 计算时间差(秒)
DIFF=$((NOW - LATEST_ALERT_SEC))

# 如果时间差小于或等于1800秒(30分钟),则返回1(告警)
# 否则返回0(不告警)
if [ $DIFF -le 1800 ]; then
    echo "1"
else
    echo "0"
fi

3. 在zabbix_server端验证新建的监控项

[root@localhost bin]# pwd
/usr/local/zabbix/bin
[root@localhost bin]# ./zabbix_get -s 192.168.224.88 -k mq_check_log
0



abbix_get命令	
-s	客户端ip地址
-p	客户端端口号(默认是10050)
-k	指定键值

4. 在zabbix网页端配置自定义监控项

配置-模版-创建模版

点击监控项-创建监控项

 

点击触发器 - 创建触发器

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微风◝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值