標籤:nagios xen memery
cat check_xen_mem.sh#!/bin/shfunction usage(){ msg="$0 : use to check xenserver memery usage for nagios" echo "****************************************************" echo -e "\033[1;94m${msg}\033[0m" echo -e "Usage:" echo -e " $0 [-w warning -c critical]" echo -e " $0 -w 80 -c 90 " echo "****************************************************"}if [ $# -eq 0 ];then warning=0.85 critical=0.95elif [ "$1" = "-w" ];then warning=`echo $2` shift shift if [ "$1" != "-c" ];then usage exit 1 fi critical=`echo $2` shift shiftelseusage exit 1fiSTATE_OK=0STATE_WARNING=1STATE_CRITICAL=2STATE_UNKNOWN=3uuid_list=`xe host-list | grep uuid | awk ‘{print $5}‘`i=1for uuid in $uuid_listdoeach_mem_total[$i]=`xe host-param-get param-name=memory-total uuid=$uuid`each_mem_free[$i]=`xe host-param-get param-name=memory-free uuid=$uuid`let i=i+1donemem_total=`echo ${each_mem_total[@]} | awk ‘{for(i=0;i<NF;i++) total+=$i; print total/1024/1024/1024}‘`mem_free=`echo ${each_mem_free[@]} | awk ‘{for(i=0;i<NF;i++) free+=$i;print free/1024/1024/1024}‘`#mem_usage=$(((mem_total-mem_free)/mem_total))mem_usage=`awk -v a=$mem_total -v b=$mem_free ‘BEGIN{printf "%.2f",(a-b)/a }‘`host_num=${#each_mem_total[@]}performance="$host_num host; usage: $mem_usage; free: $mem_free | mem_usage=$mem_usage;$warning;$critical;0;100;mem_free=$mem_free;;;;;"function cmp_data(){if [ $1 \< $2 ];thenecho "OK $performance"exit_code=$STATE_OKelif [ $1 \> $3 ];thenecho "CRITICAL $performance"exit_code=$STATE_CRITICALelseecho "WARNING $performance"exit_code=$STATE_WARNINGfi}cmp_data $mem_usage $warning $criticalexit $exit_code
本文出自 “月童” 部落格,謝絕轉載!
nagios 監控xenserver memery