zabbix使用shell脚本采集数据的两种方法

    目标:监控mysql当前打开的连接数(Threads_connected)。
    环境:
    Zabbix 4.0.29
    zabbix server:192.168.149.149
    zabbix agent:192.168.149.150

方法1. 通过zabbix-agent执行shell脚本

    简单概括就是需要自定义键值对,通过zabbix-agent抓取shell脚本的返回值,然后传递给zabbix-server。
    步骤:

  1. 在agent侧编写脚本monitor_mysql.sh,内容为:
#!/bin/bash
export MYSQL_PWD=123456
/usr/bin/mysql -h 192.168.149.150 -uzabbix -e "show status like '%Threads_connected%';"|grep 'Threads_connected'|awk '{print $2}'

    MYSQL_PWD为数据库密码,我将脚本放在了 /tmp 目录下。

  1. 修改用户参数。因为我已经在zabbix_agentd.conf配置文件中配置了:
Include=/etc/zabbix/zabbix_agentd.d/*.conf

    所以在该目录下的userparameter_mysql.conf中添加(如果没有userparameter_mysql.conf,直接新建即可):

UserParameter=mysql.Threads_connected,sh /tmp/monitor_mysql.sh

    这是一个键值对,key为mysql.Threads_connected,value值为脚本返回值,就是mysql当前打开的连接数。

  1. 在server侧使用zabbix-get测试。可能遇到以下问题:
# ./zabbix_get -s 192.168.149.150 -k "mysql.Threads_connected"
zabbix_get [9357]: Check access restrictions in Zabbix agent configuration

    需要修改zabbix_agentd.conf的server选项,为了省事,我设置成了Server=0.0.0.0/0。

# ./zabbix_get -s 192.168.149.150 -k "mysql.Threads_connected"
sh: /root/test/monitor_mysql.sh: 权限不够

    检查一下权限,我把脚本从 /root/test 目录挪到 /tmp 目录就好了。

  1. 配置item。因为返回值为数字,所以选Numeric。
    在这里插入图片描述
  2. 查询最新数据。
    在这里插入图片描述
方法2. 通过zabbix-server执行shell脚本

    简单概括就是通过zabbix-server的External checks功能执行脚本并记录返回值。优点是灵活,客户端无需任何配置,不需要zabbix-agent;缺点是过多使用会严重降低zabbix系统性能。
    步骤:

  1. 查询zabbix_server.conf,有配置如下:
# ExternalScripts=${datadir}/zabbix/externalscripts

    因为实验中zabbix-server安装目录为 /usr/local/zabbix,所以外部脚本的默认路径为 /usr/local/zabbix/share/zabbix/externalscripts。将monitor_mysql.sh放在该目录下。

  1. 在命令行测试。
# sh /usr/local/zabbix/share/zabbix/externalscripts/monitor_mysql.sh 
1

    没有问题,进入下一步图形界面配置。

  1. 图形界面配置。
    在这里插入图片描述
        Type为External check,Key为脚本名称,如果脚本有参数,就写到中括号里,类似 check_oracle.sh["-h","{HOST.CONN}"] 。

  2. 查询最新数据。
    在这里插入图片描述

参考文档

[1]Zabbix SIA.EXTERNAL CHECKS[EB/OL].https://www.zabbix.com/documentation/current/manual/config/items/itemtypes/external,2020-01-01.
[2]sfzhang.Zabbix+Shell脚本监控线上服务[EB/OL].https://blog.51cto.com/sfzhang88/999523,2012-09-20.

猜你喜欢

转载自blog.csdn.net/zsx0728/article/details/114527987