• zabbix自定义自动发现监控项配置


    第1章 例:检查文件系统挂载状态

    1.1 自动发现文件系统名称脚本

    vi Linux_mountfilename_discovery.sh

    portarray=(`mount |grep "^/" |grep -E "ext3|reiserfs|ext4|xfs" |awk '{print $3}'`)

    #portarray=(`netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq`)

    length=${#portarray[@]}

    printf "{ "

    printf ' '""data":["

    for ((i=0;i<$length;i++))

      do

        printf ' {'

        printf ""{#FILENAME}":"${portarray[$i]}"}"

         if [ $i -lt $[$length-1] ];then

                    printf ','

         fi

      done

    printf  " ] "

    printf "} "

     

    1.1.1 执行结果:

     

    1.2 检查挂载状态脚本

    vim Linux_mountfilename_status.sh

    filename=$1

    #判断是否为空

    if [ "$1" == "" ]; then

      echo "1"

    else

    #判断是否执行命令成功

      null1=`df $1 |sed -n 2p |awk '{print $NF}' /dev/null 2>&1;echo $?`

      if [ $null1 -eq 0 ]; then

    #判断挂载的文件系统是否异常

          mount1=`echo $1`

          df1=`df $1 |sed -n 2p |awk '{print $NF}'`

          if [ $mount1 = $df1 ]; then

            echo "0"

          else

            echo "2"

          fi

          else

            echo "1"

          fi

    fi

     

    1.2.1 执行结果:

     

    1.3 配置agent子配置文件

    vim Linux_mount.conf

    UserParameter=linux.mountfilename.discovery,/etc/zabbix/scripts/Linux_mountfilename_discovery.sh

    UserParameter=linux.mountfilename.status[*],/etc/zabbix/scripts/Linux_mountfilename_status.sh $1

     

    1.4 重启agent服务

    1.5 配置自动发现规则

     

    1.6 创建监控项原型

     

    1.7 创建触发器

     

    1.8 注意事项:

    1. 键值:linux.mountfilename.status[{#FILENAME}]{#FILENAME}的调用
    2. UserParameter=键值[*](脚本参数的调用)
  • 相关阅读:
    TestNG测试用例编写和执行
    Myeclipse+TestNG白盒测试环境搭建
    Jmeter创建一个简单的http接口用例
    python 格式化日期
    测试需求分析总结
    mac终端配色
    浅谈游戏中BUFF的设计要点
    图片头代码
    My.Ioc 代码示例——避免循环依赖
    My.Ioc 代码示例——谈一谈如何实现装饰器模式,兼谈如何扩展 My.Ioc
  • 原文地址:https://www.cnblogs.com/A121/p/13288633.html
Copyright © 2020-2023  润新知