我正在使用 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 进程的原因,但杀死重复的进程解决了这个问题。