Назад | Перейти на главную страницу

Icinga (nagios) игнорирование принудительных проверок

У меня странная проблема: Icinga (nagios) не запускается check_nt который я установил на сервере Debian.

Что я делаю, так это то, что я планирую принудительную проверку обоих 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 невозможно найти или что-то еще ...?

Я нашел ошибку.

Это было сочетание двух вещей:

  • 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 выполнила настоящую проверку, чтобы я мог диагностировать ошибку.