Icinga (nagios) 忽略强制检查

Icinga (nagios) 忽略强制检查

check_nt我遇到了一个奇怪的问题:我在 Debian 机器上设置的Icinga(nagios)无法运行。

我所做的是安排对NSClient_version和进行强制检查PING。如果我查看日志文件,我可以看到这两个命令都计划运行:

[1372774536] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;sqlnota03.dbb.dk;NSClient_version;1372781738
[1372774536] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;sqlnota03.dbb.dk;PING;1372781738

打开调试后,我得到了以下信息:

[1372774536.502948] [016.2] [pid=3840] Found another service check event for service 'NSClient_version' on host 'sqlnota03.dbb.dk' @ Tue Jul  2 17:47:21 2013
[1372774536.502973] [016.2] [pid=3840] Keeping original service check event (ignoring the new one).

我已多次检查过配置,没有发现任何错误,并且 Icinga 在运行时报告配置正常icinga -v <icinga.cfg>

有谁能发现我做错什么吗?

配置如下:

define host {
    use        windows-server
    host_name  <the host>
    address    192.168.1.61
    hostgroups mssql, termsrv, windows, nsclient_version
}

define service {
    use generic-service
    hostgroup_name nsclient_version
    service_description NSClient_version
    servicegroups nsclient_version
    check_command check_nt!CLIENTVERSION
}

# 'check_nt' command definition
define command {
    command_name    check_nt
    command_line    check_nt command_line /usr/lib/nagios/plugins/check_nt -p12489 -s <snip> -H '$HOSTADDRESS$' -v '$ARG1$' '$ARG2' '$ARG3'
}

似乎系统中的某处有一个服务检查卡住了,导致 Icinga 无法运行新的服务检查?!?

我已经check_nt用一个小脚本替换了应该运行的命令,该脚本只需接触本地文件即可/tmp查看它是否正在运行。但事实并非如此。

编辑

我使用旧的 nagios 网络界面来安排新的检查并(最终)得到了以下结果:

Processing: 'SERVICE ALERT: sqlnota03.db

b.dk;NSClient_version;$SERVICESTATE$;$SERVICESTATETYPE$;$SERVICEATTEMPT$;为服务 NSClient_version 定义的命令不存在

现在我不确定该消息是什么意思——check_nt找不到可执行文件还是其他什么……?

答案1

我发现了错误。

这是两件事的结合:

  • Icinga-web 没有正确安排检查。出于某种原因,它只是忽略了检查命令(我稍后会研究这个问题)。
  • 一旦我安排了检查,很明显command_line参数的路径是错误的。

所以我改变了这个:

command_line    check_nt command_line /usr/lib/nagios/plugins/check_nt -p12489 -s <snip> -H '$HOSTADDRESS$' -v '$ARG1$' '$ARG2' '$ARG3'

对此:

command_line /usr/lib/nagios/plugins/check_nt -p12489 -s <snip> -H '$HOSTADDRESS$' -v '$ARG1$' '$ARG2' '$ARG3'

我很惊讶让 Icinga 运行实际检查以便我能够诊断错误需要花费这么多时间。

相关内容