zoukankan      html  css  js  c++  java
  • zabbix自定义用户key与参数Userparameters监控脚本输出

    定义配置文件

    通过yum安装的zabbix-agent配置文件路径为/etc/zabbix/zabbix_agentd.conf
    大约在这个文件的255行左右,我们可以发现下面的代码:

    Include=/etc/zabbix/zabbix_agentd.d/

    我们自定义的配置,可以放到这个目录。
    我们可以创建一个自定义的文件来定义我们需要的key:
    vim /etc/zabbix/zabbix_agent.d/userparameter_script.conf
    文件里面添加这样的内容:

    # 这个文件监控自定义脚本输出值
    # 格式为UserParameter=<key>,<command>
    UserParameter=script.date,date

    保存之后重启zabbix-agent。

    测试获取自定义key的值

    在zabbix-server上使用zabbix_get工具获取自定义值。

    shell > zabbix_get -s 100.10.1.2 -k script.date
    Fri Apr 24 14:41:18 CST 2015

    获取到了上面例子中执行date的结果,说明配置是成功的。

    创建一个脚本

    首先新建一个script目录来存放我们的脚本,并将这个脚本命名为kucun.sh,我将使用zabbix来监控数据库中的库存表,使用库存数据画图。

    mkdir -p /etc/zabbix/script/
    vim /etc/zabbix/script/kucun.sh

    我们定义脚本,输入一个店铺号来查询这个店铺中商品数量小于n的条数。
    若手动执行查询,查询方式是这样的:

    shell> /etc/zabbix/script/kucun.sh bj001 30
    2

    输出2即表示有2个商品数量小于30。
    下面是脚本的内容:

    #!/bin/bash
    shop_id=$1
    number=$2
    dbhost="100.10.1.2"
    dbuser="monitor"
    dbpasswd="21"
    sql="SELECT count(*) FROM lsp_cus.menu WHERE shop_no = "$shop_id" AND date = UNIX_TIMESTAMP(DATE_FORMAT(NOW(),'%Y-%m-%d')) AND num - sale < "$number""
    mysql -h$dbhost -u$dbuser -p$dbpasswd -Ne "$sql"

    使用脚本查询的结果创建key

    重新编辑

    vim /etc/zabbix/zabbix_agent.d/userparameter_script.conf

    文件修改为:

    # 这个文件监控自定义脚本输出值
    # 格式为UserParameter=<key>,<command>
    UserParameter=script.kucun[*],/etc/zabbix/script/kucun.sh $1 $2

    通过zabbix-server查询

    在zabbix服务器上使用zabbix_get工具查询店铺号001,库存小于30的商品数量。

    shell> zabbix_get -s 100.10.1.2 -k script.kucun[001,30]
    18

    可以看到成功了。

    上面用到方法的一些解释

    UserParameter=key[*],command
    key为唯一值,[*]表示参数。
    command为要执行的命令或脚本,key[*]里面的参数一一对应$1$9,一共9个参数。$0表示脚本命令。返回结果数据最大为512KB
    参数禁止使用下列字符: ‘ ” ` * ? [ ] { } ~ $ ! & ; ( ) <> | # @

    脚本的命令行参数可以通过搜索引擎搜索相关文章。

  • 相关阅读:
    错误1053:服务没有及时响应启动或控制请求
    错误号码2003 Can't connect to MySQL server 'localhost' (0)
    分析slow-log 每小时慢sql情况
    用spring annotation声明的bean,当打包在jar中时,无法被扫描到
    mysql 锁查看
    linux 使用expect
    tomcat启动报错:java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener
    Spring LDAP authenticate method with Pooling
    一步步教你使用Proguard混淆Java源代码
    JAVA获取CLASSPATH路径
  • 原文地址:https://www.cnblogs.com/A121/p/14969042.html
Copyright © 2011-2022 走看看