码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-07-12 17:16:39      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:printf   文件系统   mic   参数   ISE   sed -n   length   自定义   file   

第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 "{\n"

printf ‘\t‘"\"data\":["

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

  do

    printf ‘\n\t\t{‘

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

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

                printf ‘,‘

     fi

  done

printf  "\n\t]\n"

printf "}\n"

 技术图片

 

 

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=键值[*](脚本参数的调用)

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

标签:printf   文件系统   mic   参数   ISE   sed -n   length   自定义   file   

原文地址:https://www.cnblogs.com/A121/p/13288633.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!