菜单

Nagios插件开荒之监察和控制程序占用财富

2019年8月8日 - 皇家赌场系统

貌似情状下,大家只要求监察和控制程序进度在没在就能够了。可是此次面对了那般的事,公司开垦的先后,程序进度还在,不过死锁了。导致大规模的震慑,更不行的是根本不领悟难点出在哪儿,如故别的测验部同事帮助开采的,真是丢尽运转的脸了…

为防止后一次再遭遇到这么的场馆,深入分析了这一次进程死锁的气象,开采死锁会占用百分之百的cpu,平常状态下只占用一成之内。决定编写nagios插件,用来监督程序占用的能源,包含cpu,内部存款和储蓄器等。

连锁阅读

互连网监察和控制器Nagios全计谋
http://www.linuxidc.com/Linux/2013-07/87067.htm

Nagios搭建与安顿详解
http://www.linuxidc.com/Linux/2013-05/84848.htm

Nginx处境下创设Nagios监察和控制平台
http://www.linuxidc.com/Linux/2011-07/38112.htm

在奥迪Q3HEL5.3上布置中央的Nagios系统(使用Nagios-3.1.2)
http://www.linuxidc.com/Linux/2011-07/38129.htm

CentOS
5.5+Nginx+Nagios监察和控制端和被控端安装配备指南
http://www.linuxidc.com/Linux/2011-09/44018.htm

Ubuntu 13.10 Server
安装 Nagios Core 网络监控运用
http://www.linuxidc.com/Linux/2013-11/93047.htm

1、shell脚本须要剖判:

  能安装cpu,mem的阈值,财富占用超越阈值就报告警察方。

  要能判定这些进程是还是不是存在,若有多少个不设有,则报告警察方。

2、shell脚本实行作用如下:

 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

3、Shell脚本代码如下:
[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

4、后话:

 
随着如今编写shell脚本越来越多,有时难免会回改此前所写脚本,平日要看一段时间才具看懂。

 
为便利后续的保养,在剧本个中,每三个函数,每一段功效,都做备注,方便未来本身或别人来开始展览爱抚。

Nagios
的详尽介绍
:请点这里
Nagios
的下载地址
:请点这里

本文永世更新链接地址:http://www.linuxidc.com/Linux/2014-05/102150.htm

图片 1

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图