使用Nagios磁盘进行监控 - NRPE - Linux

时间:2014-09-29 15:00:41

标签: linux nagios nrpe

我遇到有关Nagios / NRPE服务的问题如下:

我已完成每个文件的配置,但无法识别NRPE在客户端上发送的nagios响应:

文件:/etc/nagios/nrpe.cfg(客户端)

command[check_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib64/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/mapper/VG_opt-LV_opt
command[check_zombie_procs]=/usr/lib64/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w 150 -c 200

文件:services.cfg(Servidor)

define service{
  use                   generic-service
  host_name             192.168.160.10, 192.168.160.11, 192.168.160.12
  service_description   Disk Space
  notification_options w,u,c,r
  check_command         check_nrpe!check_disk
}

显然,我重新启动了客户端和服务器上的服务,并通过NRPE结果进行了其他协商,因为进程数,CPU和RAM是check_disk的问题。

在本地使用check_disk获得的结果是:

DISK OK - free space: /opt 34024 MB (76% inode=98%);| /opt=10522MB;37544;42237;0;46930

通过网络结果

Disk SpaceUNKNOWN    2014-09-26 09:18:31    0d 15h 52m 53s    4/4    (No output returned from plugin) 

如果我得到结果,从 nagios服务器更加奇怪。

$ ./check_nrpe -H 192.168.160.10 -c check_disk
DISK OK - free space: /opt 33389 MB (74% inode=98%);| /opt=11156MB;37544;42237;0;46930

VíaWeb:

**(No output returned from plugin)**

(No output returned from plugin)
NRPE Plugin for Nagios
Copyright (c) 1999-2008 Ethan Galstad (nagios@nagios.org)
Version: 2.15
Last Modified: 09-06-2013
License: GPL v2 with exemptions (-l for more info)
SSL/TLS Available: Anonymous DH Mode, OpenSSL 0.9.6 or higher required
\nUsage: check_nrpe -H <host> [ -b <bindaddr> ] [-4] [-6] [-n] [-u] [-p <port>] [-t <timeout>] [-c <command>] [-a <arglist...>]
\nOptions:
-h = Print this short help.
-l = Print licensing information.
-n = Do no use SSL
-u = Make socket timeouts return an UNKNOWN state instead of CRITICAL
<host> = The address of the host running the NRPE daemon
<bindaddr> = bind to local address
-4 = user ipv4 only
-6 = user ipv6 only
[port] = The port on which the daemon is running (default=5666)
[timeout] = Number of seconds before connection times out (default=10)
[command] = The name of the command that the remote daemon should run
[arglist] = Optional arguments that should be passed to the command. Multiple
arguments should be separated by a space. If provided, this must be
the last option supplied on the command line.
\nNote:
This plugin requires that you have the NRPE daemon running on the remote host.
You must also have configured the daemon to associate a specific plugin command
with the [command] option you are specifying here. Upon receipt of the
[command] argument, the NRPE daemon will run the appropriate plugin command and
send the plugin output and return code back to *this* plugin. This allows you
to execute plugins on remote hosts and 'fake' the results to make Nagios think
the plugin is being run locally.
\n

1 个答案:

答案 0 :(得分:1)

这可能早就应该了,但我不得不做出回应。

@AlainCollins评论道:

  

..如何定义check_nrpe命令?

define command{
  command_name    check_nrpe
  command_line    /usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$
}

上面是基本的check_nrpe命令。您在这里遇到的问题是您正在尝试从 nrpe.cfg 运行不需要参数的已定义命令。定义命令时,上面的NRPE命令定义中的 $ ARG2 $ 是'-a'获取其值的位置。因此,如果您提供第一个参数'-c'作为命令 check_disk ,则它没有获得$ ARG2 $的值。

要解决此问题,您有两个选择:

1)在命令参数后的磁盘空间 check_command定义中添加占位符“”:

define service{
  use                   generic-service
  host_name             192.168.160.10, 192.168.160.11, 192.168.160.12
  service_description   Disk Space
  notification_options w,u,c,r
  check_command         check_nrpe!check_disk!
}

2)使用 /etc/nagios-plugins/config/check_nrpe.cfg 中提供的“check_nrpe_1arg”命令 - 此命令专为不需要参数的插件而设计,可以像以下一样使用常规check_nrpe:

define command{ 
  command_name check_nrpe_1arg
  command_line /usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}