给大家带来shell剧本监控Nagios插件步伐占用资本
欢迎大家来到仓酷云论坛!一样平常情形下,我们只必要监控步伐历程在没在就能够了。可是此次遭受了如许的事,公司开辟的步伐,步伐历程还在,可是逝世锁了。招致年夜局限的影响,更要命的是基本不晓得成绩出在那里,仍是其余测试部同事协助发明的,真是丢尽运维的脸了…为制止下次再遭受到如许的情形,剖析了此次历程逝世锁的征象,发明逝世锁会占用100%的cpu,一般情形下只占用10%之内。决意编写nagios插件,用来监控步伐占用的资本,包含cpu,内存等。
1、shell剧本需求剖析:
能设置cpu,mem的阈值,资本占用凌驾阈值就报警。
要能判别这个历程是不是存在,如有一个不存在,则报警。
2、shell剧本实行效果以下:
1、假如输出格局不准确,则输入匡助信息
#shcomponent_resource.sh
Usageparament:
component_resource.sh[--cpu][--mem]
Example:
component_resource.sh--cpu50--mem50
2、若没超越阈值,输入资本占用情形,加入值为0
#shcomponent_resource.sh--cpu50--mem50
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%
#echo$?
0
3、若超越阈值,输入资本占用情形,加入值为2
#shcomponent_resource.sh--cpu5--mem5
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%
#echo$?
2
4、若历程不存在,输入down失落的历程,和一般利用中的历程资本情形,加入值为2
#shcomponent_resource.sh--cpu50--mem50
CurrentVueDaemonVueCenterVueAgentVueCacheVueSERVERisdown.
#echo$?
2
3、Shell剧本代码以下:
#catcomponent_resource.sh
#!/bin/sh
#author:yangrong
#date:2014-05-20
#mail:10286460@qq.com
#pragrom_list=(VueDaemonVueCenterVueAgentVueCacheVueSERVERVUEConnectorMyswitchSlirpvde)
pragrom_list=(VueDaemonVueCenterVueAgentVueCacheVueSERVER)
####猎取cpu阈值和mem阈值#######
case$1in
--cpu)
cpu_crit=$2
;;
--mem)
mem_crit=$2
;;
esac
case$3in
--cpu)
cpu_crit=$4
;;
--mem)
mem_crit=$4
;;
esac
###判别传参数目,假如不为4,则var值为1,var0则一般####
if[[$1==$3]];then
var=1
elif[$#-ne4];then
var=1
else
var=0
fi
###打印毛病提醒信息
if[$var-eq1];then
echo"Usageparament:"
echo"$0[--cpu][--mem]"
echo""
echo"Example:"
echo"$0--cpu50--mem50"
exit
fi
###把不存在的历程放一变量中
num=$((${#pragrom_list[@]}-1))
NotExist=""
fordigitin`seq0$num`
do
a=`ps-ef|grep-vgrep|grep${pragrom_list[$digit]}|wc-l`
if[$a-eq0];then
NotExist="$NotExist${pragrom_list[$digit]}"
unsetpragrom_list[$digit]
fi
done
#echo"pragrom_list=${pragrom_list[@]}"
####对照历程所占资本与阈值巨细
cpu_use_all=""
mem_use_all=""
compare_cpu_temp=0
compare_mem_temp=0
fornin${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"
exit2
###假如cpu对照值为1,则代表有历程占用凌驾阈值,则加入值为2
elif[["$compare_cpu_temp"==1]];then
echo-e"$cpu_use_all;$mem_use_all"
exit2
##假如mem对照值为1,则代表为历程mem占用凌驾阈值,则加入值为2
elif[[$compare_mem_temp==1]];then
echo-e"$cpu_use_all;$mem_use_all"
exit2
##不然则一般输入,并输入所占cpu与内存比例
else
echo-e"$cpu_use_all;$mem_use_all"
exit0
fi
4、后话:
跟着克日编写shell剧本愈来愈多,偶然不免会回改之前所写剧本,常常要看一段工夫才干看懂。
为便利后续的保护,在剧本傍边,每个函数,每段功效,都做备注,便利今后本人或别人来举行保护。
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
给大家带来shell剧本监控Nagios插件步伐占用资本
沙发??? 期间我阅读了不少关于Linux的相关资料,其中也不乏一些有趣的小故事,这既丰富了我的课余生活,也让我加深了对一些术语的理解,比玩游戏强多了。? 其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。 对于英语不是很好的读者红旗 Linux、中标Linux这些中文版本比较适合。现在一些Linux网站有一些Linux版本的免费下载,这里要说的是并不适合Linux初学者。 Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。 用户下达的命令解释给系统去执行,并将系统传回的信息再次解释给用户,估shell也称为命令解释器,有关命令的学习可参考论坛相关文章,精通英文也是学习Linux的关键。 这也正是有别的OS得以存在的原因,每个系统都有其自身的优点。? 清楚了解网络的基础知识,特别是在Linux下应用知识,如接入internet等等。
页:
[1]