Instalei o Nagios em um desktop Ubuntu (servidor Nagios) e quero monitorar uma instância do servidor Ubuntu (cliente monitorado). Eu posso conectar via SSH entre as duas máquinas e o SSH não está bloqueado. Os serviços padrão nagios, como PING, e check_users funcionam, mas check_ssh permanece em um estado UNKNOWN desde o início. As informações de estado exibem "Uso:", que é um indicador de que os parâmetros estão errados.
Eu posso executar a verificação manualmente, no servidor nagios (Ubuntu Desktop)
/usr/local/nagios/libexec/check_ssh -H 192.168.0.2
SSH OK - OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3 (protocol 2.0) | time=0,012856s;;;0,000000;10,000000
e também no host (Ubuntu Server)
/usr/lib/nagios/plugins/check_ssh 192.168.0.2
SSH OK - OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3 (protocol 2.0) | time=0.011613s;;;0.000000;10.000000
Esta é a configuração do host:
define host {
use linux-server
host_name backup
alias Backup Server
address 192.168.0.2
register 1
}
A configuração do host é padrão:
define service {
host_name backup
service_description Check SSH
check_command check_ssh
max_check_attempts 2
check_interval 2
retry_interval 2
check_period 24x7
check_freshness 1
contact_groups admins
notification_interval 2
notification_period 24x7
notifications_enabled 1
register 1
}
Eu também tentei adicionar o IP do host manualmente:
define service {
host_name backup
service_description Check SSH
check_command check_ssh!192.168.0.2
max_check_attempts 2
check_interval 2
retry_interval 2
check_period 24x7
check_freshness 1
contact_groups admins
notification_interval 2
notification_period 24x7
notifications_enabled 1
register 1
}
O que estou perdendo aqui?
O que eu também tentei com base nas dicas
Com base no comentário de Dan, consegui descobrir que o serviço realmente tenta enviar os parâmetros nessa configuração:
ssh_check $ARG1$ '$HOSTADDRESS$'
A verificação da configuração disponível do ssh_check no meu sistema de backup mostra essas possibilidades, no entanto, o comando padrão ssh_check não funcionou mesmo assim.
cat /etc/nagios-plugins/config/ssh.cfg
# 'check_ssh' command definition
define command{
command_name check_ssh
command_line /usr/lib/nagios/plugins/check_ssh '$HOSTADDRESS$'
}
# 'check_ssh_port' command definition
define command{
command_name check_ssh_port
command_line /usr/lib/nagios/plugins/check_ssh -p '$ARG1$' '$HOSTADDRESS$'
}
####
# use these checks, if you want to test IPv4 connectivity on IPv6 enabled systems
####
# 'check_ssh_4' command definition
define command{
command_name check_ssh_4
command_line /usr/lib/nagios/plugins/check_ssh -4 '$HOSTADDRESS$'
}
# 'check_ssh_port_4' command definition
define command{
command_name check_ssh_port_4
command_line /usr/lib/nagios/plugins/check_ssh -4 -p '$ARG1$' '$HOSTADDRESS$'
}
Eu também tentei enviar o endereço IP do servidor de backup como ambos os parâmetros, mas não tive êxito.
define service {
host_name backup
service_description Check SSH
check_command check_ssh!192.168.0.2!192.168.0.2
max_check_attempts 2
check_interval 2
retry_interval 2
check_period 24x7
check_freshness 1
contact_groups admins
notification_interval 2
notification_period 24x7
notifications_enabled 1
register 1
}
Solução
Eu não consegui descobrir como endereçar os comandos de serviço definidos na configuração do plugin nagios do cliente (/etc/nagios-plugins/config/ssh.cfg). Quando defini, por exemplo, ssh_check_4, meu servidor nagios reclamou de um serviço indefinido. Acabei configurando um novo comando de serviço:
define service {
host_name backup
service_description Check SSH
check_command check_ssh_fix
max_check_attempts 2
check_interval 2
retry_interval 2
check_period 24x7
check_freshness 1
contact_groups admins
notification_interval 2
notification_period 24x7
notifications_enabled 1
register 1
}
define command{
command_name check_ssh_fix
command_line /usr/lib/nagios/plugins/check_ssh '$HOSTADDRESS$'
}
Obrigado!