当前位置:网站首页>A ZABBIX self discovery script (shell Basics)

A ZABBIX self discovery script (shell Basics)

2022-06-26 04:42:00 Half crazy and half bumpy

1. To configure zabbix Related configuration :

#dis

UserParameter=h5discovery.game, bash /data/app/zabbix/agentscript/discovery_Game.sh

#base

UserParameter=h5proc.mem[*], bash /data/app/zabbix/agentscript/H5_discovery_Game.sh mem $1 2>&1

UserParameter=h5proc.cpu[*], bash /data/app/zabbix/agentscript/H5_discovery_Game.sh cpu $1 2>&1

UserParameter=h5proc.state[*], bash /data/app/zabbix/agentscript/H5_discovery_Game.sh state $1 2>&1

Used to monitor cpu, Memory and process status

2. Self discovery script :

[email protected]:-6-$ cat /data/app/zabbix/agentscript/discovery_Game.sh

#!/bin/bash

DIR="/data/server/bin"

t=0

A=()

FLAG=$2

WathFile=`find ${DIR} -type f -name "*Watch*.ini" `

for i in ${WathFile}

do

A[${t}]=`cat ${i}|grep -E "(gamename|enable)"|awk -F\= '{print $NF}'`

B[${t}]=`cat ${i}|grep -i "port"|awk -F\= '{print $2}'`

let t++

done

sub_dis() {

printf "{\n"

printf '\t"data":[\n'

for((j=0;j

do

num=`echo $((${#A[@]}-1))`

if [ $j -ne $num ];then

printf "\t\t{ \n"

printf "\t\t\t\"{#SVRNAME}\":\"${A[$j]}\",\\n"

printf "\t\t\t\"{#SVRPORT}\":\"${B[$j]}\"},\n"

else

printf "\t\t{\n"

printf "\t\t\t\"{#SVRNAME}\":\"${A[$j]}\",\\n"

printf "\t\t\t\"{#SVRPORT}\":\"${B[$j]}\"}]}\n"

fi

done

}

sub_mem() {

PortNum=`echo ${FLAG}|awk -F \, '{print NF}'`

if [ $PortNum -eq 1 ];then

GamePid=`sudo netstat -ntlp|grep ${FLAG}|awk '{printf $7}'|cut -d/ -f1`

num=`ps aux|grep ${GamePid}|grep -v grep |awk '{print $6}'`

else

GamePort=`echo ${FLAG}|awk -F \, '{print $1}'`

GamePid=`sudo netstat -ntlp|grep ${GamePort}|awk '{printf $7}'|cut -d/ -f1`

num=`ps aux|grep ${GamePid}|grep -v grep |awk '{print $6}'`

fi

if [[ -z ${num} ]]

then

echo 0

else

echo ${num}

fi

}

sub_cpu() {

PortNum=`echo ${FLAG}|awk -F \, '{print NF}'`

if [ $PortNum -eq 1 ];then

GamePid=`sudo netstat -ntlp|grep ${FLAG}|awk '{printf $7}'|cut -d/ -f1`

num=`ps aux|grep ${GamePid}|grep -v grep |awk '{print $3}'`

else

GamePort=`echo ${FLAG}|awk -F \, '{print $1}'`

GamePid=`sudo netstat -ntlp|grep ${GamePort}|awk '{printf $7}'|cut -d/ -f1`

num=`ps aux|grep ${GamePid}|grep -v grep |awk '{print $3}'`

fi

if [[ -z ${num} ]]

then

echo 0

else

echo ${num}

fi

}

sub_state() {

PortNum=`echo ${FLAG}|awk -F \, '{print NF}'`

if [ $PortNum -eq 1 ];then

Proc=`sudo netstat -ntlp|grep -v grep |grep ${FLAG}`

else

GamePort=`echo ${FLAG}|awk -F \, '{print $1}'`

Proc=`sudo netstat -ntlp|grep -v grep |grep ${GamePort}`

fi

if [[ -n ${Proc} ]]

then

echo "1"

else

echo "0"

fi

}

case "$1" in

mem)

sub_mem

;;

state)

sub_state

;;

cpu)

sub_cpu

;;

*)

sub_dis

exit 6

esac

原网站

版权声明
本文为[Half crazy and half bumpy]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202180510567759.html