Nagios - host herda de múltiplos templates?

2

É possível ter um host no Nagios usando vários modelos?

Estou tentando monitorar alguns servidores MSSQL. Alguns deles são servidores únicos autônomos com uma única instância, e outros estão usando o MSCS para formar clusters de HA de dois nós.

As coisas que eu quero monitorar em um determinado servidor são diferentes das coisas que eu quero monitorar para uma determinada instância do SQL. por exemplo. Eu quero usar um modelo windows-server para me dizer coisas genéricas sobre janelas para um determinado servidor. Da mesma forma, eu gostaria de usar um modelo SQL específico chamado sql-instance para monitorar coisas específicas de SQL, como usuários conectados, solicitações em lote, etc.

Para meus clusters de 2 nós, isso é bastante fácil - eu tenho três definições de host: um windows-server para cada nó específico e um sql-instance apontando para o nome do DNS do cluster.

Para instâncias únicas, eu gostaria de poder ter um único host, que usa os modelos windows-server e sql-instance juntos, porque os dois devem apontar para o mesmo nome de host. No entanto, qualquer tentativa de fazer:

define host {
    use windows-server, sql-instance
}

ou

define host {
    use windows-server
    use sql-instance
}

resulta em nagios pegando apenas um dos modelos e ignorando o outro.

Então, como posso fazer várias heranças de modelos no Nagios?

    
por growse 20.06.2011 / 11:54

7 respostas

2

Eu resolvi isso usando uma solução alternativa. Em vez de ter um determinado host herdado de vários modelos, anexei meus serviços a vários grupos de host e coloquei cada host em mais de um host:

define host {
    use             generic-host
    hostgroups      sql-servers,sql-instances
 }
    
por 20.06.2011 / 14:11
1

Que tal ter um modelo herdado do outro? É assim que faço nos meus nagios. Você pode colocar use windows-server na definição de modelo de servidor sql-instance e, em seguida, qualquer coisa que use a definição de instância sql também herdará a definição de servidor de janelas. Nesse caso, você também pode querer renomear sql-instance para win-sql-instance.

    
por 20.06.2011 / 14:16
0

Até agora, lembre-se de que você precisará redeclarar o host de definição {} sempre que tiver um novo host.

Algo assim:

define host{
   use             windows-server
   host_name       lan
   alias           lan
   address         WWW.XXX.YYY.ZZZ
}

define host{
   use             sql-instance
   host_name       lan
   alias           lan
   address         WWW.XXX.YYY.ZZZ
}

Espero que isso ajude você.

ps: Eu posso entrar no meu arquivo de configuração nagios se você quiser.

    
por 20.06.2011 / 12:16
0

Eu tentei isso no meu ambiente de Icinga e ele funciona para Icinga:

define host {
                host_name                             Testhost
                address                               192.168.220.1
                check_command                         check-host-alive
                notification_interval                 15
                notification_options                  d,u,r
                max_check_attempts                    3
                active_checks_enabled                 1
                passive_checks_enabled                0
                notifications_enabled                 1
                check_period                          24x7
                notification_period                   24x7
                contact_groups                        admins
                parents                               Email Prim,Source
                use                                   Default_timeperiod_interval_1,Default_timeperiod_interval_10
}

Não tenho certeza sobre o Nagios, mas não deve ser muito diferente.

    
por 20.06.2011 / 12:48
0

em meus arquivos nagios cfg todas as referências que possuem múltiplas entradas para "use template template1, template2" não possuem espaços entre o primeiro template a vírgula e o segundo template. Eu adicionei um espaço antes do segundo modelo e nagios reclamou:

Error: Template ' template_name' specified in host definition could not be not found (config file '/usr/local/nagios/etc/objects/hosts.cfg'
    
por 21.06.2011 / 04:50
0

Defina sql-instance como um modelo de host que, por sua vez, usa o windows-server como modelo.

define host{
        name                    windows-server  ; The name of this host template
        use                     generic-host    ; Inherit default values from the generic-host template
        check_period            24x7            ; By default, Windows servers are monitored round the clock
        check_interval          5               ; Actively check the server every 5 minutes
        max_check_attempts      10              ; Check each server 10 times (max)
        check_command           check-host-alive        ; Default command to check if servers are "alive"
        notification_period     24x7            ; Send notification out at any time - day or night
        notification_interval   30              ; Resend notifications every 30 minutes
        notification_options    d,r             ; Only send notifications for specific host states
        contact_groups          admins          ; Notifications get sent to the admins by default
        hostgroups              windows-servers ; Host groups that Windows servers should be a member of
        register                0               ; DONT REGISTER THIS - ITS JUST A TEMPLATE
        }

define host{
        name                    sql-instance    ; The name of this host template
        use                     windows-server  ; Inherit default values from the 
        register                0
        }

Em seguida, na sua definição de host real, apenas use sql-instance e defina register 1 .

    
por 21.06.2011 / 05:02
0

A partir do 3.x, o Nagios suporta a sintaxe do seu primeiro exemplo pronto para uso:

define host {
  use windows-server,sql-instance
}

Consulte a seção "Precedência com várias origens de herança" no link e na "Herança de objetos" em o changelog .

(Eu adicionaria isso como um comentário à resposta aceita, mas não tem a reputação necessária para fazê-lo)

    
por 08.05.2013 / 21:35