依葫芦画瓢,模仿监控硬盘使用比,练习了一下监控内存使用。
内存项目的话不像硬盘有很多挂载点,内存只有一个,所以应该不用for循环,只用了if判断。
关于sta数组的话也没有进行for循环,自己定义的值,大家看看有没有问题。
客户机上操作,脚本如下:
[root@localhost plugins]# cat check_mem.sh
#!/bin/bash
i=0
m=`free -m|grep "buffers/cache:"|awk '{print $4}'`
if [ $m -lt 100 ]
then
echo -n "free memory is WARNING $m"
sta[$i]=1
elif [ $m -lt 50 ]
then
echo -n "free memory is CRITIACL $m"
sta[$i]=2
else
echo -n "free memory is OK $m"
sta[$i]=0
fi
n=0
if [ "${sta[$i]}" -gt $n ]
then
n=${sta[$i]}
fi
exit $n
客户机上操作,加入自定义的mem.sh脚本;
vi /etc/nagios/nrpe.cfg
command[check_mem]=/usr/lib/nagios/plugins/check_mem.sh
保存退出后,重启nrpe服务。
服务端进行测试,有结果出来;
# /usr/lib/nagios/plugins/check_nrpe -H 192.168.11.100 -c check_mem
free memory is OK 472
服务端配置文件,加入:
vi /etc/nagios/conf.d/192.168.11.100.cfg
define service{
use generic-service,srv-pnp
host_name 192.168.11.100
service_description check_memory
check_command check_nrpe!check_mem
max_check_attempts 5
normal_check_interval 1
}
重启nagios服务后,在web网页可以看到service;
内存项目的话不像硬盘有很多挂载点,内存只有一个,所以应该不用for循环,只用了if判断。
关于sta数组的话也没有进行for循环,自己定义的值,大家看看有没有问题。
客户机上操作,脚本如下:
[root@localhost plugins]# cat check_mem.sh
#!/bin/bash
i=0
m=`free -m|grep "buffers/cache:"|awk '{print $4}'`
if [ $m -lt 100 ]
then
echo -n "free memory is WARNING $m"
sta[$i]=1
elif [ $m -lt 50 ]
then
echo -n "free memory is CRITIACL $m"
sta[$i]=2
else
echo -n "free memory is OK $m"
sta[$i]=0
fi
n=0
if [ "${sta[$i]}" -gt $n ]
then
n=${sta[$i]}
fi
exit $n
客户机上操作,加入自定义的mem.sh脚本;
vi /etc/nagios/nrpe.cfg
command[check_mem]=/usr/lib/nagios/plugins/check_mem.sh
保存退出后,重启nrpe服务。
服务端进行测试,有结果出来;
# /usr/lib/nagios/plugins/check_nrpe -H 192.168.11.100 -c check_mem
free memory is OK 472
服务端配置文件,加入:
vi /etc/nagios/conf.d/192.168.11.100.cfg
define service{
use generic-service,srv-pnp
host_name 192.168.11.100
service_description check_memory
check_command check_nrpe!check_mem
max_check_attempts 5
normal_check_interval 1
}
重启nagios服务后,在web网页可以看到service;
编辑回复