nagios只能监控服务器1分钟,5分钟和15分钟的情况。但我们无法通过nagios了解当发生状况那一瞬间我们的服务器运行了哪些服务。这无法帮助我们找出导致出问题的原因。因为需要记录发生状况一瞬间的服务。
创新互联主营积石山保安族东乡族网站建设的网络公司,主营网站建设方案,手机APP定制开发,积石山保安族东乡族h5小程序设计搭建,积石山保安族东乡族网站营销推广欢迎积石山保安族东乡族等地区企业咨询
1. 编辑主机文件linhost.cfg
define service{
use generic-service
host_name linhost
service_description Load_Average_RES
check_command check_nrpe!check_load
event_handler processes_snapshot_RES!linhost
contact_groups admins
}
define service{
use generic-service
host_name linhost
service_description Load_Average_CPU
check_command check_nrpe!check_load
event_handler processes_snapshot_CPU!linhost
contact_groups admins
}
2. 编辑命令文件command.cfg
define command{
command_name processes_snapshot_RES
command_line $USER1$/eventhandlers/processes_snapshot_RES.sh $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ $HOSTADDRESS$
}
define command{
command_name processes_snapshot_CPU
command_line $USER1$/eventhandlers/processes_snapshot_CPU.sh $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ $HOSTADDRESS$
}
3. 编辑脚本processes_snapshot_CPU.sh和processes_snapshot_RES.sh
processes_snapshot_CPU.sh
#!/bin/bash
case "$1" in
OK)
;;
WARNING)
/usr/local/nagios/libexec/check_nrpe -H $4 -c processes_snapshot_CPU
;;
UNKNOWN)
;;
CRITICAL)
/usr/local/nagios/libexec/check_nrpe -H $4 -c processes_snapshot_CPU
;;
esac
exit 0
processes_snapshot_RES.sh
#!/bin/bash
case "$1" in
OK)
;;
WARNING)
/usr/local/nagios/libexec/check_nrpe -H $4 -c processes_snapshot_RES
;;
UNKNOWN)
;;
CRITICAL)
/usr/local/nagios/libexec/check_nrpe -H $4 -c processes_snapshot_RES
;;
esac
exit 0
4. 编辑被监控端的配置文件nrpe.cfg
command[processes_snapshot_RES]=top -cSbn 1 | tail -n +8 | sort -rn -k6 | head -n 20 > /tmp/proc_snap_RES_`date +%y%m%d-%H:%H:%S`.txt
command[processes_snapshot_CPU]=top -cSbn 1 | tail -n +8 | sort -rn -k9 | head -n 20 > /tmp/proc_snap_CPU_`date +%y%m%d-%H:%H:%S`.txt
5. 在被监控端创建目录
#cd /usr/local/nagios
#mkdir log
#chmod 777 log
#chown nagios:nagios log
6. nagios具有缓存功能,我们需要关掉nagios的缓存功能。编辑nagios主配置文件nagios.cfg。
cached_host_check_horizon=0
cached_service_check_horizon=0
到此就配置好了,当我们的服务器负载过高时,就会在被监控服务器的/usr/local/nagios/log目录下生成文件记录那一瞬间运成的服务。