Nagios: não foi possível resolver o nome do host

2

Minha configuração:

hosts.cfg - contém definições para cada host sob monitoramento, por exemplo:

define host{
        use                     linux-server
        host_name               rdss-vpn
        display_name            VPN
        address                 54.***.***.176
        }

hosts_groups.cfg - define grupos:

define hostgroup{
        hostgroup_name   rdss-service-server
        alias            RDSS services
        members          [...],  rdss-vpn
        }

services.cfg :

define service{
        use                             local-service
        hostgroup_name                  rdss-web-server, rdss-service-server
        service_description             Memory usage
        check_command                   check_linux_memory!50!80
        notifications_enabled           1
        }

E check_linux_memory em commands.cfg :

define command{
        command_name    check_linux_memory
        command_line    $USER1$/check_nrpe -H $HOSTNAME$ -c check_linux_memory -a '-f -w $ARG1$ -c $ARG2$'
        }

Aqui está um exemplo de host, em que check_linux_memory funciona:

define host{
        use                     linux-server
        host_name               www.dev.domain.com
        display_name            DEV
        address                 54.***.***.136
        }

É um grupo:

define hostgroup{
        hostgroup_name   rdss-web-server
        alias            RDSS web servers
        members          www.dev.domain.com, www.qa.domain.com, www.staging.domain.com
        }

O problema é com alguns novos hosts adicionados, como rdss-vpn - o Nagios não obtém o IP dos hosts (observe - eu tenho alguns outros servidores (também em grupos) em check_linux_memory - tudo funciona).

Em vez disso, tenho um erro em nagios.log :

[1437473407] SERVICE ALERT: rdss-vpn;Memory usage;WARNING;HARD;4;(No output on stdout) stderr: Could not resolve hostname rdss-vpn: Name or service not known

    
por setevoy 21.07.2015 / 12:26

1 resposta

3

Seu problema é que você escreveu seu comando de verificação para usar $HOSTNAME$ em vez de $HOSTADDRESS$ .

Isso funciona para seus outros hosts, porque eles são nomeados com FQDNs (por exemplo, www.dev.domain.com). Ele não funciona para rdss-vpn porque esse não é um nome de host válido na perspectiva da sua caixa Nagios.

Você deve usar o endereço, não o nome do host, nas verificações. Isso remove o DNS como uma dependência para verificações do Nagios. Se você realmente precisar usar um nome de host em vez do IP, coloque o nome do host como o endereço do host.

Além disso, tradicionalmente, basta passar o cheque para check_nrpe como um ARG, como check_nrpe!check_memory ou check_nrpe!check_memory!50 80 . Mas cabe a você, no final das contas.

    
por 21.07.2015 / 17:56

Tags