Esta dica documenta a correção do problema "
wrong -l argument" na instalação padrão do
Nagios 3 via apt no Debian
GNU/Linux.
Então vamos lá!
Configure seu Nagios normalmente seguindo o manual de instalação, presumindo que as máquinas Windows já estão corretamente configuradas com o NSClient e o Nagios já está conseguindo fazer a leitura de UPTIME, MEMUSE, CLIENTVERSION e CPULOAD, que garantem o funcionamento correto do plugin check_nt.
Se você seguiu o manual de instalação provavelmente vai se deparar com o seguinte erro ao tentar fazer a leitura de USEDDISKSPACE:
"wrong -l argument"
Não cheguei a testar se esse erro ocorre em versões compiladas a partir do fonte para saber se é uma particularidade Debian, mas a partir desse ponto esqueça o manual oficial, siga com as seguintes modificações.
Mude para a pasta de configuração do arquivo nt.cfg:
# cd /etc/nagios-plugins/config
# vi nt.cfg
Você deverá encontrar isso ou algo parecido:
define command {
command_name check_nt
command_line /usr/lib/nagios/plugins/check_nt -H '$HOSTADDRESS$' -v '$ARG1$' '$ARG2$'
}
Vou incluir alguns parâmetros úteis na command_line e manter a estrutura original:
define command {
command_name check_nt
command_line /usr/lib/nagios/plugins/check_nt -H '$HOSTADDRESS$' -p '12489' -s SENHANSCLIENT -v '$ARG1$' '$ARG2$'
}
Onde:
- -p 12489 / Porta de conexão
- -s SENHA / Definir senha para consultas remotas (precisa ser configurado no nsclient)
E vou adicionar uma nova linha, porque com essa configuração padrão a consulta torna-se impossível, tendo em vista um erro de formatação de parâmetros no comando, mesmo que utilizando manualmente via shell funcione com os parâmetros dados pelo manual:
define command {
command_name check_nt_disk
command_line /usr/lib/nagios/plugins/check_nt -H '$HOSTADDRESS$' -p '12489' -s SENHANSCLIENT -v 'USEDDISKSPACE' -l '$ARG2$' -w '$ARG3$' -c '$ARG4$'
}
Agora uma pequena modificação no services.cfg que já existe e também está errada:
# cd /etc/nagios3/conf.d
# vi services.cfg
Provavelmente está assim:
ERRADO:
define service {
hostgroup_name windows-servers
service_description Disk Usage
check_command check_nt!USEDDISKSPACE!-l C -w 80 -c 90
use generic-service
notification_interval 0
}
Essa forma está errada porque de acordo com a configuração dada pela instalação padrão só existem dois argumentos, "-v '$ARG1$' '$ARG2$'", e são necessários mais argumentos para o funcionamento correto, logo a necessidade de criação de uma configuração que funcione separadamente:
CERTO:
define service {
hostgroup_name windows-servers
service_description Disk Usage
check_command check_nt_disk!USEDDISKSPACE!C!80!90
use generic-service
notification_interval 0
}
Observe como a linha de comando também está errada:
(ERRADA) check_command check_nt!USEDDISKSPACE!-l C(aqui $ARG1$) -w 80(aqui seria $ARG2$) -c 90($ARG3$ que não foi definida na linha padrão de check_nt)
(CERTA) check_command check_nt_disk!USEDDISKSPACE!C!80!90(Primeira ! é definição de parâmetro, depois vem argumento disco local C, outra ! e mais
um $ARG$ depois outra ! e mais um $ARG$)
Como podem ver a linha fica bem diferente. Pode reiniciar o Nagios e testar.
Está feito!
Nenhum coment�rio foi encontrado.