nagios监控内存



一  nrpe.cfg 中添加

command[check_mem]=/usr/local/icinga/libexec/check_mem.sh -w 80 -c 90


 说明:内存实际使用量超过80%警告;超过90%严重警告


二  添加检查脚本

check_mem.sh
# $2 = 80
warn=$2
# $4 = 90
critical=$4

#free -m
#--------------------------------------------------------------------------
#             total       used       free     shared    buffers     cached
#Mem:          3832       2191       1640          0        154       1542
#-/+ buffers/cache:        493       3338
#Swap:         3967          0       3967

#第二行 第二列
total=`free -m | sed -n '2p' | awk '{print $2}'`
#第二行 第三列
used=`free -m| sed -n '2p' | awk '{print $3}'`
#第三行 第三列
buff=`free -m | sed -n '3p' | awk '{print $3}'`
#第二行 第四列
free=`free -m| sed -n '2p' | awk '{print $4}'`

let "c=$buff*100/$total"
if [[ $c -lt $warn ]]
then
    echo "buff/total($c%) < $warn% [free:$free MB: used:$used MB: buff:$buff MB: total:$total MB]|free:$free;;;; used:$used;;;; total:$total;;;;"
    exit 0
elif [[ $c -lt $critical ]]
then
    echo "buff/total($c%) < $warn% [free:$free MB: used:$used MB: buff:$buff MB: total:$total MB]|free:$free;;;; used:$used;;;; total:$total;;;;"
    exit 1
else
    echo "buff/total($c%) < $warn% [free:$free MB: used:$used MB: buff:$buff MB: total:$total MB]|free:$free;;;; used:$used;;;; total:$total;;;;"
    exit 2
fi

解释:

1. free用来查看内存的使用情况

  • total 内存总数: 3072
  • used 已经使用的内存数: 2459
  • free 空闲的内存数: 612
  • shared 当前已经废弃不用,总是0
  • buffers: Buffer Cache内存数: 13220
  • cached: Page Cache内存数: 2720160

关系:total = used + free

Linux中实际的内存使用是第三行buffers/cache中的used,所以这里以这个实际使用除总内存作为报警的依据。

2. sed -n '2p'指的是查找第二行


三 重启nrpe

/etc/init.d/nrpe restart


四 nagios增加监控项

1  vim /usr/local/nagios/etc/objects/commands.cfg
define command{
        command_name    check_mem
        command_line    $USER1$/check_mem -u -w $ARG1$ -c $ARG2$
        }

2  vi xxx.xxx.xxx.xxx.cfg
define service{
       use                             xxxxxx-service
       host_name                       xxx.xxx.xxx.xxx
       service_description             Memory
       check_command                   check_nrpe!check_mem
       contact_groups                  xxxxx
        }


五 未解决的问题

1   目前不能出图

参考:http://blog.csdn.net/ronmy/article/details/68941096?ticket=ST-133921-wjVarkforBe2bTQwhNhz-passport.csdn.net

展开阅读全文

没有更多推荐了,返回首页