zabbix自定义脚本监控 创建自定义监控模板

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界面中,可以查看每个监控项的历史数据和当前状态。如果触发器被触发,则可以在事件列表中查看相关的警报信息。
  • 43
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
下面是将自定义监控MySQL的Python脚本配置在Zabbix的ALScripts中的步骤: 1. 在Zabbix服务器上创建一个目录,用于存储自定义脚本。例如:/usr/local/zabbix/scripts。 2. 在该目录下创建一个Python脚本,例如:mysql_monitor.py。在脚本中编写监控MySQL的代码,并确保脚本能够正常运行。例如: ```python #!/usr/bin/env python # -*- coding: utf-8 -*- import MySQLdb # MySQL连接信息 mysql_host = 'localhost' mysql_port = 3306 mysql_user = 'root' mysql_password = 'password' mysql_db = 'mysql' # 连接MySQL conn = MySQLdb.connect( host=mysql_host, port=mysql_port, user=mysql_user, passwd=mysql_password, db=mysql_db, charset='utf8' ) # 执行SQL查询 cursor = conn.cursor() cursor.execute('show global status like "Threads_connected"') result = cursor.fetchone() threads_connected = result[1] # 输出结果 print threads_connected ``` 3. 为脚本添加可执行权限。例如: ```bash chmod +x /usr/local/zabbix/scripts/mysql_monitor.py ``` 4. 在Zabbix服务器上创建一个新的命令,用于执行Python脚本。在Zabbix Web界面中,转到“Administration”>“General”>“Commands”,然后单击“Create command”按钮。在“Create command”页面中,输入以下信息: - Name:命令的名称,例如:MySQL Monitor。 - Type:命令的类型,选择“Custom script”。 - Command:命令的内容,例如:/usr/local/zabbix/scripts/mysql_monitor.py。 单击“Add”按钮以创建命令。 5. 在Zabbix服务器上创建一个新的自动发现规则,用于发现MySQL实例,并将其关联到刚刚创建的命令。在Zabbix Web界面中,转到“Configuration”>“Discovery”,然后单击“Create discovery rule”按钮。在“Create discovery rule”页面中,输入以下信息: - Name:规则的名称,例如:MySQL Discovery。 - Type:规则的类型,选择“Zabbix agent”。 - Key:规则的键,例如:mysql.discovery。 - Update interval:更新间隔,例如:60s。 - Command:命令的名称,例如:MySQL Monitor。 单击“Add”按钮以创建规则。 6. 在Zabbix服务器上创建一个新的模板,用于监控MySQL实例。在Zabbix Web界面中,转到“Configuration”>“Templates”,然后单击“Create template”按钮。在“Create template”页面中,输入以下信息: - Name:模板的名称,例如:MySQL Template。 单击“Add”按钮以创建模板。 7. 在新创建模板中添加自动发现规则。在“MySQL Template”页面中,单击“Discovery”选项卡,然后单击“Add”按钮。在“Add discovery”页面中,输入以下信息: - Name:规则的名称,例如:MySQL Discovery。 - Type:规则的类型,选择“Zabbix agent”。 - Key:规则的键,例如:mysql.discovery。 - Update interval:更新间隔,例如:60s。 - Command:命令的名称,例如:MySQL Monitor。 单击“Add”按钮以将规则添加到模板中。 8. 在模板中添加新的监控项。在“MySQL Template”页面中,单击“Items”选项卡,然后单击“Create item”按钮。在“Create item”页面中,输入以下信息: - Name:监控项的名称,例如:MySQL Threads Connected。 - Type:监控项的类型,选择“Zabbix agent”。 - Key:监控项的键,例如:mysql.threads_connected。 - Type of information:信息类型,例如:Numeric (unsigned)。 - Update interval:更新间隔,例如:60s。 - Application:应用,例如:MySQL。 单击“Add”按钮以创建监控项。 9. 在模板中添加新的触发器。在“MySQL Template”页面中,单击“Triggers”选项卡,然后单击“Create trigger”按钮。在“Create trigger”页面中,输入以下信息: - Name:触发器的名称,例如:MySQL Threads Connected is too high。 - Expression:触发器的表达式,例如:{MySQL Template:mysql.threads_connected.last()}>100。 单击“Add”按钮以创建触发器。 10. 将模板关联到MySQL主机。在“MySQL Template”页面中,单击“Linked hosts”选项卡,然后单击“Link new hosts”按钮。选择要关联的MySQL主机,将其添加到“Selected hosts”列表中,然后单击“Link”按钮。 11. 等待Zabbix服务器执行自动发现操作,并监视MySQL实例的状态。 通过上述步骤,您可以将自定义监控MySQL的Python脚本配置在Zabbix的ALScripts中,并在Zabbix中监视MySQL实例的状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菜鸟白小白

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

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

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

打赏作者

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

抵扣说明:

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

余额充值