zabbix自定義自動發現監控項配置


案例:檢查文件系統掛載狀態

1.1 自動發現文件系統名稱腳本

注意:將輸出結果轉換成JSON格式

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=鍵值[*](腳本參數的調用)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM