zabbix自定义脚本,创建自定义监控模板,可实现自动创建监控项,自动创建告警项,非常实用。
1.编写自定义脚本
-
使用任何文本编辑器编写自定义脚本,该脚本应该能够输出需要监控的数据。例如,如果要检查数据备份是否成功,备份文件命名规则若带当天日期,可以根据文件名称上的日期来检查备份文件是否存在
- 脚本存放路径(agent端):/etc/zabbix/script/File_backup.sh
- 脚本生成的数据文件(agent端):/etc/zabbix/script/File_backup.txt
- 脚本案例为检查当天备份是否成功,如果修改脚本请注意保留脚本生成的数据文件的格式
#!/bin/bash
logs=/etc/zabbix/script
txt=File_backup.txt
#检查文件以及大小
ls -lRh /dbbak |grep "^-"|grep $(date -d '-1 day ' +%Y-%m-%d) | awk '{print $(NF),$5}'|cut -d'.' -f2-|awk '{print $1":"$2}' > ${logs}/$txt
chown -R zabbix:zabbix ${logs}/$txt
ssharray=(`cat ${logs}/${txt}|awk -F[:] '{print $1}' 2>/dev/null`)
length2=${#ssharray[@]}
printf "{\n"
printf '\t'"\"data\":["
for ((i=0;i<$length2;i++))
do
printf '\n\t\t{'
printf "\"{#SSHIP}\":\"${ssharray[$i]}\"}"
if [ $i -lt $[$length2-1] ];then
printf ','
fi
done
printf "\n\t]\n"
printf "}\n"
2.创建自定义监控项配置文件
-
/etc/zabbix/zabbix_agentd.d 是 Zabbix 客户端配置文件的默认目录。在这个目录中,你可以放置自定义的监控项配置文件,这些文件定义了如何从特定的设备或服务收集数据,并发送到 Zabbix 服务器。这样,你就可以根据自己的需求定制监控内容。
- zabbix agent自定义脚本默认配置文件目录(agent端):/etc/zabbix/zabbix_agentd.d/File_backup.conf
- 如果需要修改请保留原格式
vi /etc/zabbix/zabbix_agentd.d/File_backup.conf #必须.conf后缀,名称可自定义
UserParameter=custom.File.backup.discovery,/etc/zabbix/script/File_backup.sh
UserParameter=custom.File.backup.num[*], cat /etc/zabbix/script/File_backup.txt | egrep $1 | head -1 | awk -F[:] '{print $$2}'
3.测试自定义脚本:
- 第一步:测试脚本的正确性。可以在终端或命令行中直接运行脚本,检查其输出结果文件(/etc/zabbix/script/File_backup.txt)是否符合预期。
- 第二步:登录server端,使用zabbix_get命令验证连通性(如果未安装zabbix_get,请先安装),如果正常返回结果,则成功。
zabbix_get -s 192.168.0.1 -p 10050 -k custom.File.backup.discovery
#192.168.0.1 为agnet的ip
#10050为agent的端口,如果有防火墙需提前开放此端口
#custom.File.backup.discovery为在agent定义的自定义监控项的键值
4.创建自定义监控模板
- 登录zabbix web页面创建自定义监控模板,名称和群组均可自定义
4.1 设置应用集
- 在监控模板中设置应用集,名称自行命名
4.2 创建自动发现规则
- 根据agent端自定义的键值进行配置
- 名称:
custom.File.backup.discovery
可以和键值一样,也可以自行命名 - 键值:
custom.File.backup.discovery
需要和agent端配置/etc/zabbix/zabbix_agentd.d/File_backup.conf中定义的保持一致
- 名称:
4.3 自动发现规则-创建监控项原型
- 根据agent端定义的建议进行配置
- 名称:
{#SSHIP} 备份文件大小
- 键值:
custom.File.backup.num[{#SSHIP}]
- 名称:
4.4 自动发现规则—创建触发器原型
- 根据需要监控的数据,创建相应的触发器。触发器用于定义当监控项的值达到某个条件时所采取的操作,例如发送警报或执行某个操作。
- 名称:
{HOST.NAME} {#SSHIP} 未监测到此备份文件!
可以根据自身需要修改 - 严重性:自定义
- 表达式:
{Template APP For Linux File Backup Check:custom.File.backup.num[{#SSHIP}].nodata(3600)}=1
1h内未检测到备份数据,则触发告警,可以根据自身需要修改
- 名称:
5. 查看监控结果
- 在Zabbix的web界面中,可以查看每个监控项的历史数据和当前状态。如果触发器被触发,则可以在事件列表中查看相关的警报信息。