Eu tenho um problema estranho: Icinga (nagios) não roda check_nt
que eu configurei em uma caixa debian.
O que eu faço é agendar uma verificação forçada de NSClient_version
e PING
. Se eu olhar no arquivo de log, posso ver que ambos os comandos estão agendados para execução:
[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
Após ter ativado a depuração, recebo isso:
[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).
Eu examinei a configuração várias vezes e não consegui encontrar nenhum erro, e a Icinga relata que a configuração está correta ao executar icinga -v <icinga.cfg>
.
Existe alguém que possa identificar o que estou fazendo errado?
A configuração é:
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'
}
Parece que há uma verificação de serviço presa em algum lugar no sistema que impede que a Icinga execute uma nova?!?
Eu substituí o comando check_nt
que deve ser executado com um script pequeno que apenas toca um arquivo local em /tmp
para ver se está sendo executado. Este não é o caso.
Editar
Eu usei a interface web antiga do nagios para agendar uma nova verificação e (finalmente) entendi:
Processing: 'SERVICE ALERT: sqlnota03.db
b.dk; NSClient_version; $ SERVICESTATE $; $ SERVICESTATETYPE $; $ SERVICEATTEMPT $;
mand definido para o serviço NSClient_version não existe
Agora eu não tenho certeza do que a mensagem significa - que o executável check_nt
não pode ser encontrado ou algo mais ...?