天天看點

zabbix 自定義discovery

自定義discovery

1.通過腳本擷取系統資料

2.把資料處理成joson格式的,自動監控的項目資訊

3.擷取自動監控的項目的資料

3.修改 agentd.conf的配置檔案

UserParameter=process.discovery,/usr/local/zabbix/scripts/check_process.sh   //自動檢測的項目,即定義key值

UserParameter=process.resource[*],/usr/local/zabbix/scripts/process_monitor.sh $1 $2    //擷取資料

4.測試

zabbix_get -s 192.168.36.130 -k process.discovery  //必須為jison格式

zabbix_get -s 192.168.36.130 -k process.resource[tsg,mem]

5.在zabbix中配置自動發現

discovery---create discovery(key process.discovery)---item(key process.resource[{{#TABLENAME}},cpu])

check_process.sh 主要擷取監控的項目名稱

#!/bin/bash

pro_name=`ps -e -o 'comm,pcpu,rsz' | awk '{print $1}' | sort -u | awk -F".exe" '{print $1}'`

COUNT=`echo "$pro_name" |wc -l`

INDEX=0

echo {'"data"':[

    echo "$pro_name" | while read LINE;

        do

                echo -n '{"{#HOMEDNAME}":"'$LINE'"}'

                INDEX=`expr $INDEX + 1`

                if [ $INDEX -lt $COUNT ]; then

                    echo ","

                fi

        done

    echo ]}

process_monitor.sh 根據項目名稱擷取檢測的資料

process=$1

name=$2

case $2 in

mem)

echo "`ps -e -o 'comm,pcpu,rsz' | awk '{a[$1]+=$3}END{for(key in a) print key,a[key]/1024}' | grep "$1\>" | awk '{print $2}'`"

;;

cpu)

echo "`ps -e -o 'comm,pcpu,rsz' | awk '{a[$1]+=$2}END{for(key in a) print key,a[key]}' | grep "$1\>" | awk '{print $2}'`"

*)

echo "Error input:"

esac

exit 0

在process_monitor.sh腳本中擷取mem時,通過處理得到的是M,在配置zabbix時需要如下處理

zabbix 自定義discovery

繼續閱讀