Configurando diferentes portas SSH para cada host remotley monitorado pelo Nagios

4

Concluí a instalação e configuração do Nagios em três servidores para que a instância no servidor A também forneça relatórios para servidores B & C (via NRPE).

O SSHD está propositalmente escutando uma porta diferente em cada host, então eu editei o arquivo /etc/nagios3/conf.d/services_nagios2.cfg em cada host para testar a porta apropriada. A instância HTTP nativa do Nagios nos servidores B & C confirma que o SSH está em execução, mas o relatório no servidor A está mostrando falhas críticas para o SSH em B & C .

Fiquei com a impressão de que o serviço NRPE foi projetado para executar verificações locais nos hosts remotos, encaminhando os restos de volta para o host de monitoramento que reunia os dados em um relatório para todas as máquinas.

Olhando para a seção Serviços da página da web Configuração (no servidor A ), o Nagios está testando a mesma porta SSH em todos os três servidores em vez de portas diferentes em B & C . Alguém pode explicar por quê?

A única maneira de corrigir isso (até agora) é criar um host diferente group_name e check_command para cada host remoto no arquivo conf.d / services_nagios2.cfg no servidor A .

Este não pode ser o único jeito?

Certamente, o arquivo iria multiplicar de tamanho cada vez que fosse necessária uma configuração de serviço diferente para os servidores monitorados remotamente!

    
por danielcraigie 21.07.2012 / 19:38

1 resposta

5

OK, eu tenho vasculhado a documentação do Nagios3 e respondi a parte de configuração da porta da minha pergunta ...

A resposta está no modelo de herança de objetos que existe nos arquivos de configuração do Nagios. Essencialmente, criei uma variável personalizada em cada definição de host que especifica a porta ssh exclusiva nessa máquina:

define host {
    use              generic-host
    host_name        serverB
    address          10.0.1.3
    _sshport         67382
}

Os hosts são agrupados dentro do arquivo hostgroups_nagios2.cfg:

# A list of your ssh-accessible servers
define hostgroup {
    hostgroup_name  ssh-servers
    alias           SSH servers
    members         localhost,serverB,serverC
}

Este grupo é referenciado dentro do services_nagios2.cfg pelo bloco que verifica o SSH:

# check that ssh services are running
define service {
    hostgroup_name                  ssh-servers
    service_description             SSH
    check_command                   check_ssh_port!$_HOSTSSHPORT
    use                             generic-service
    notification_interval           0 ; set > 0 if you want to be renotified
}

No final do comando check_ssh_port você pode ver que eu adicionei a variável sshport $_HOSTSSHPORT que é herdada de cada host dentro do grupo de hosts ssh-servers enquanto as verificações são executadas.

Agora, ao adicionar novos servidores, só preciso modificar meu arquivo hosts_nagios2.cfg com os detalhes do novo host.

Para habilitar compatibilidade com versões anteriores, também modifiquei meu arquivo generic-host_nagios2.cfg adicionando a linha _sshport 22 para que, se por algum motivo eu precisar monitorar algum sistema executando o SSH na porta padrão, a configuração da porta já seja herdada do modelo de host genérico.

Espero que isso ajude os outros que se encontram na mesma situação. Ainda estou tentando entender por que as verificações remotas não estão usando os arquivos de configuração personalizados nos servidores remotos.

    
por 22.07.2012 / 11:39