自动 NRPE 检查会产生警告,但手动执行时可以正常工作

自动 NRPE 检查会产生警告,但手动执行时可以正常工作

我正在使用 Nagios 监控多个主机。当我使用在监控主机上执行的“常规”检查时,这很有效(例如,check_http)。然而,我在执行基于 NRPE 的检查时遇到了麻烦,这些检查是通过受监控主机上的 NRPE 服务执行的。

我已经在受监控主机的 NRPE 配置中声明了我的自定义命令,例如

command[check_memory]=/usr/lib/nagios/plugins/check_memory -w 20% -c 10% -u G

然后我在监控主机上的 Nagios 配置中创建了相应的 Nagios 命令:

define command {
    command_name my_check_nrpe
    command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTALIAS$' -c '$ARG1$'
}

define service {
  use                   my-service
  service_description   Free memory
  check_command         my_check_nrpe!check_memory
  check_interval        15
}

nagios当我使用用户(服务在其下运行)在监控主机上手动运行这些检查时,这些检查工作正常nagios

nagios@monitor:~$ /usr/lib/nagios/plugins/check_nrpe -H 'my.target.host' -c 'check_memory'
MEMORY OK - 0G free | free=956080128b;419844915.2:;209922457.6:

然而,我不断收到 Nagios 发来的有关该服务的电子邮件警告:

***** Nagios  *****

Notification Type: PROBLEM

Service: Free memory
Host: my.target.host
Address: XXX.XXX.XXX.XXX
State: WARNING

Date/Time: $

Additional Info:

$

我还没有得到有关警告的更多详细信息。监控主机上的 Nagios 日志仅显示已发送警告:

[1500623961] SERVICE NOTIFICATION: my-mailbox;my.target.host;Free memory;WARNING;notify-by-email;(null)
[1500627561] SERVICE NOTIFICATION: my-mailbox;my.target.host;Free memory;WARNING;notify-by-email;(null)

我还激活了 Nagios 的最大调试输出:

debug_level=-1
debug_verbosity=2

但是,/var/lib/nagios3/nagios.debug不包含任何有趣的内容:

[1500630464.420189] [064.1] [pid=21171] Making callbacks (type 9)...
[1500630464.420243] [064.1] [pid=21171] Making callbacks (type 9)...
[1500630464.420308] [064.1] [pid=21171] Making callbacks (type 9)...
[1500630464.420389] [064.1] [pid=21171] Making callbacks (type 9)...
[1500630464.421086] [064.1] [pid=21171] Making callbacks (type 7)...
[1500630464.421767] [064.1] [pid=21174] Making callbacks (type 9)...

类似地,我已经在受监控主机上启用了 NRPE 服务的调试输出(debug=1),但 NRPE 日志只告诉我我的check_memory命令已成功添加。

我正在运行 NRPE 3.0.1-3 和 Nagios 3.5.1。

我该如何解决这个问题或者收集有关该问题的更多信息?

答案1

事实证明,监控服务器上有一个重复的 Nagios 进程正在运行,该进程不受重新启动服务的影响,因此继续使用旧的、有缺陷的配置版本。虽然我们无法重现我们最终得到两个 Nagios 进程的原因,但杀死重复的进程解决了这个问题。

相关内容