您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Nagios如何監控程序占用資源”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Nagios如何監控程序占用資源”這篇文章吧。
能設置cpu,mem的閾值,資源占用超過閾值就報警。
要能判斷這個進程是否存在,若有一個不存在,則報警。
1、如果輸入格式不正確,則輸出幫助信息
[root@center230 libexec]# shcomponent_resource.sh
Usage parament:
component_resource.sh [--cpu] [--mem]
Example:
component_resource.sh --cpu 50 --mem 50
2、若沒超出閾值,輸出資源占用情況,退出值為0
[root@center230 libexec]# shcomponent_resource.sh --cpu 50 --mem 50
VueSERVER_cpu_use=5.6% VueCache_cpu_use=1.9%VueAgent_cpu_use=0.0% VueCenter_cpu_use=0.0% VueDaemon_cpu_use=0.0%;VueSERVER_mem_use=0.2% VueCache_mem_use=7.4% VueAgent_mem_use=0.5% VueCenter_mem_use=0.1%VueDaemon_mem_use=0.0%
[root@center230 libexec]# echo $?
0
3、若超出閾值,輸出資源占用情況,退出值為2
[root@center230 libexec]# shcomponent_resource.sh --cpu 5 --mem 5
VueSERVER_cpu_use=9.4% VueCache_cpu_use=0.0%VueAgent_cpu_use=0.0% VueCenter_cpu_use=0.0% VueDaemon_cpu_use=0.0%;VueSERVER_mem_use=0.2% VueCache_mem_use=7.4% VueAgent_mem_use=0.5%VueCenter_mem_use=0.1% VueDaemon_mem_use=0.0%
[root@center230 libexec]# echo $?
2
4、若進程不存在,輸出down掉的進程,以及正常使用中的進程資源情況,退出值為2
[root@yckj scripts]# sh component_resource.sh--cpu 50 --mem 50
Current VueDaemon VueCenter VueAgent VueCache VueSERVER is down.
[root@yckj scripts]# echo $?
2
[root@center230 libexec]# catcomponent_resource.sh #!/bin/sh #author:yangrong #date:2014-05-20 #mail:10286460@qq.com #pragrom_list=(VueDaemon VueCenter VueAgentVueCache VueSERVER VUEConnector Myswitch Slirpvde) pragrom_list=(VueDaemon VueCenter VueAgentVueCache VueSERVER) ####獲取cpu閾值和mem閾值####### case $1 in --cpu) cpu_crit=$2 ;; --mem) mem_crit=$2 ;; esac case $3 in --cpu) cpu_crit=$4 ;; --mem) mem_crit=$4 ;; esac ###判斷傳參數量,如果不為4,則var值為1,var0則正常#### if [[ $1 == $3 ]];then var=1 elif [ $# -ne 4 ] ;then var=1 else var=0 fi ###打印錯誤提示信息 if [ $var -eq 1 ];then echo "Usage parament:" echo " $0 [--cpu][--mem]" echo "" echo "Example:" echo " $0 --cpu 50 --mem50" exit fi ###把不存在的進程放一變量中 num=$(( ${#pragrom_list[@]}-1 )) NotExist="" for digit in `seq 0 $num` do a=`ps -ef|grep -v grep |grep ${pragrom_list[$digit]}|wc -l` if[ $a -eq 0 ];then NotExist="$NotExist ${pragrom_list[$digit]}" unset pragrom_list[$digit] fi done #echo"pragrom_list=${pragrom_list[@]}" ####對比進程所占資源與閾值大小 cpu_use_all="" mem_use_all="" compare_cpu_temp=0 compare_mem_temp=0 for n in ${pragrom_list[@]} do cpu_use=`top -b -n1|grep $n|awk '{print $9}'` mem_use=`top -b -n1|grep $n|awk '{print $10}'` if[[ $cpu_use == "" ]];then cpu_use=0 fi if[[ $mem_use == "" ]];then mem_use=0 fi compare_cpu=`echo "$cpu_use > $cpu_crit"|bc` compare_mem=`echo "$mem_use > $mem_crit"|bc` if[[ $compare_cpu == 1 ]];then compare_cpu_temp=1 fi if[[ $compare_mem == 1 ]];then compare_mem_temp=1 fi cpu_use_all="${n}_cpu_use=${cpu_use}% ${cpu_use_all}" mem_use_all="${n}_mem_use=${mem_use}% ${mem_use_all}" done ###如果該變量有值,則代表有進程down。則退出值為2 if [[ "$NotExist" != ""]];then echo -e "Current ${NotExist} isdown.$cpu_use_all;$mem_use_all" exit 2 ###如果cpu比較值為1,則代表有進程占用超過閾值,則退出值為2 elif [[ "$compare_cpu_temp" == 1]];then echo -e "$cpu_use_all;$mem_use_all" exit 2 ##如果mem比較值為1,則代表為進程mem占用超過閾值,則退出值為2 elif [[ $compare_mem_temp == 1 ]];then echo -e "$cpu_use_all;$mem_use_all" exit 2 ##否則則正常輸出,并輸出所占cpu與內存比例 else echo -e "$cpu_use_all;$mem_use_all" exit 0 fi
以上是“Nagios如何監控程序占用資源”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。