4etfeww 发表于 2014-9-18 08:41:26

nagios的实时监控

nagios只能监控服务器1分钟,5分钟和15分钟的情况。但我们无法通过nagios了解当发生状况那一瞬间我们的服务器运行了哪些服务。这无法帮助我们找出导致出问题的原因。因为需要记录发生状况一瞬间的服务。
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=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=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目录下生成文件记录那一瞬间运成的服务。

页: [1]
查看完整版本: nagios的实时监控