No Icinga (Nagios), como configuro hosts com vários IPs?

5

Estou configurando o Icinga (fork do Nagios) e tenho algumas máquinas com várias interfaces. Alguns serviços estão apenas ouvindo em um deles e para checá-los corretamente, eu gostaria de saber se é possível ter múltiplos endereços IP configurados para um único host no Icinga.

Veja um exemplo mínimo:

Servidor Remoto:

  • eth0: 1.2.3.4 (IP público)
  • eth1: 10.1.2.3 (IP privado, túnel seguro)
  • Apache ouvindo 1.2.3.4:80 . (público apenas)
  • OpenSSH ouvindo 10.1.2.3:22 . (apenas rede interna)
  • SMTP postfix ouvindo 0.0.0.0:25 (todas as interfaces)

Icinga Server:

  • eth0: 10.2.3.4 (IP privado, acesso à internet)

Agora, se eu definir um host:

define host {
        use                     generic-host
        host_name               server1
        alias                   server1.gertvandijk.net
        address                 10.1.2.3
        }

Isso não verificará o status HTTP corretamente. E definindo um host adicional:

define host {
        use                     generic-host
        host_name               server1-public
        alias                   server1.gertvandijk.net
        address                 1.2.3.4
        }

irá verificar tudo, mas aparece como dois hosts independentes. Agora, quero "agregar" esses dois hosts para aparecer como um único host, fornecendo uma configuração fácil para verificar os serviços em seus endereços apropriados.

Qual é a solução de economia de linhas de configuração mais elegante para isso? Eu li sobre vários plugins disponíveis para contornar isso, mas não consigo descobrir qual é a maneira atual de resolvê-lo. As soluções remontam a 2003, mas estou executando o Icinga 1.7.1, já com capacidade para a opção address6 , mas que dispara a resolução somente IPv6 no nome do host ...

Idealmente, desejo configurar o Icinga para ser inteligente o suficiente para saber que a instância Postfix em execução em 10.1.2.3:25 é igual a 1.2.3.4:25 e, portanto, não aciona dois alarmes.

Eu acho que isso deve ter sido abordado antes e sysadmins ter configurado agora. Por favor, compartilhe sua solução para isso. Obrigado! :)

    
por gertvdijk 21.09.2012 / 17:10

1 resposta

4

Você pode definir uma variável de objeto personalizado , algo assim:

define host {
        use                     generic-host
        host_name               server1
        alias                   server1.gertvandijk.net
        address                 10.1.2.3
        _wan_address            1.2.3.4
        }

depois, chame-o como $_HOSTWAN_ADDRESS$ macro:

define command{
        command_name    check_wan_http
        command_line    $USER1$/check_http -I $_HOSTWAN_ADDRESS$ $ARG1$
        }

define service{
    use                     generic-service
    hostgroup_name          apache
    service_description     Apache
    check_command           check_wan_http
    process_perf_data       0
    contact_groups          admin
}
    
por 21.09.2012 / 17:40