Configurando o Nágios – Básico

Vamos neste post mostrar a configuração de um servidor Nágios.

Nagios é uma popular aplicação de monitoração de rede de código aberto distribuída sob a licença GPL. Ele pode monitorar tanto hosts quanto serviços, alertando-o quando ocorrerem problemas e também quando os problemas forem resolvidos.

O Nagios foi originalmente criado sob o nome de Netsaint, foi escrito e é atualmente mantido por Ethan Galstad, junto com um exército de desenvolvedores que ativamente mantém plugins oficiais e não-oficiais.

Nagios primeiramente foi escrito para o sistema operacional Linux, mas pode rodar em outros Unixes também. (fonte Wikipedia).

Partindo direto para as configurações:

Foi criado uma pasta para conter os nossos arquivos cfg´s e definido em /etc/nagios/nagios.cfg.

cfg_dir=/etc/nagios/meus/

Arquivos contidos na pasta:

  1. commands.cfg – comandos que serão usados para controlar os serviços.
  2. contacts.cfg – usuários que serão avisados dos problemas.
  3. contactgroup.cfg – grupos de contatos, facilita ao comunicar falhas.
  4. hosts.cfg – servidores, impressoras, switchs que serão monitorados.
  5. hostgroup.cfg – agrupamento de hosts, assim como o contactgroup.
  6. services.cfg – serviços que serão monitorados, exemplo: PING.
  7. hostextinfo.cfg – informações adicionais como coordenadas para serem mostradas no mapa, imagem para definição do serviço/servidor monitorado.

Sempre que alterar algum arquivo
primeiro teste as novas configurações:

# nagios -v /etc/nagios/nagios.cfg

Depois(se estiver tudo certo) atualize as regras:

# service nagios reload

Vamos agora conferir o que cada arquivo contém.

  1. commands.cfg
  2. define command {
            command_name    check_oracle ;nome do comando, quando for usá-lo será usado este nome
            command_line    $USER1$/check_oracle --tns $HOSTADDRESS$ $ARG1$ ;caminho do plugin e o parámetros que serão aceitos
    }
  3. contacts.cfg
  4. define contact {
            use                     generic-contact ;template que já possui algumas características
    
            contact_name            luiz
            alias                   Luiz Taborda Bukowski
            service_notification_period     24x7 ; esses períodos são configurados em /etc/nagios/objects/timeperiods.cfg
            host_notification_period        24x7
            service_notification_commands   notify-service-by-email ;notificações em /etc/nagios/objects/commands.cfg
            service_notification_options    w,u,c,r
            host_notification_commands      notify-host-by-email
            host_notification_options       d,u,r
            email                   email@meudominio.com.br
    }

    service_notification_options
    w = WARNING
    u = UNKNOWN
    c = CRITICAL
    r = RECOVER (OK)
    f = when the service starts and stops flapping
    n = NONE – nenhuma notificação

    host_notification_options
    d = DOWN
    u = UNREACHABLE
    r = RECOVER (UP)
    f = when the host starts and stops flapping
    s = SEND notifications when host or service scheduled downtime starts and ends.
    n = NONE – nenhuma notificação

  5. contactgroup.cfg
  6. define contactgroup {
            contactgroup_name       http-admin
            alias                   Administradores de Web Server
            members                 luiz ;membros do grupo definidos em contacts.cfg
    }
  7. hosts.cfg
  8. define host {
            use             generic-host
    
            host_name       firewall
            alias           Firewall
            address         192.168.1.1
            check_command   check-host-alive
            max_check_attempts      5
            contact_groups          fire-admin ;grupo definido em contactgroup.cfg
    }
    define host {
            use             generic-host ; template
    
            host_name       webserver
            alias           Web Server #1
            address         192.168.1.2
            check_command   check-host-alive
            max_check_attempts      5
            notification_interval   1
            notification_period     24x7
            notification_options    d,u,r ; down, unreachable, recover(UP)
            contact_groups          http-admin
            parents                 firewall ;no mapa o webserver estará ligado no firewall
    }
  9. hostgroup.cfg
  10. define hostgroup {
            hostgroup_name          http-server
            alias                   Web Servers
            members                 webserver
    }
  11. services.cfg
  12. define service {
            use                     generic-service
    
            host_name               webserver ; nome do servidor
            service_description     PING ; descrição
            is_volatile             0
            check_period            24x7
            max_check_attempts      5
            normal_check_interval   1
            retry_check_interval    1
            contact_groups          http-admin ; grupo de contatos à ser notificado
            notification_interval   2
            notification_period     24x7
            notification_options    c,r
            check_command           check_ping!100.0,20%!500.0,60% ; nesse caso WARNING é quando tiver 20% de perca em 100 pacotes; CRITICAL 60% de perca em 500 pacotes
    }
  13. hostextinfo.cfg
  14. define hostextinfo {
            name            linux-template ;isso é um template
    
            icon_image      linux.png
            icon_image_alt  Linux Server
            vrml_image      linux.png
            statusmap_image linux.gd2
            register        0
    }
    define hostextinfo {
            use             linux-template ; usa o template definido
            host_name       mclaren
            2d_coords       100,250 ; não necessário
            3d_coords       100.0,50.0,75.0 ; não necessário
    }

Este é um tutorial básico e como o Nágios possui muitas possibilidades de configurações resolvi escrever não apenas um, mas vários posts.

Nos próximos dias estarei postando configurações mais específicas. Aguardem…

Vamos agora conferir o que cada arquivo contém.
1) commands.cfg
define command {
command_name    check_oracle ;nome do comando, quando for usá-lo será usado este nome
command_line    $USER1$/check_oracle –tns $HOSTADDRESS$ $ARG1$ ;caminho do plugin e o parámetros que serão aceitos
}

2) contacts.cfg
define contact {
use                     generic-contact ;template que já possui algumas características

contact_name            cadan
alias                   Daniel Cadan
service_notification_period     24×7 ; esses períodos são configurados em /etc/nagios/objects/timeperiods.cfg
host_notification_period        24×7
service_notification_commands   notify-service-by-email ;notificações em /etc/nagios/objects/commands.cfg
service_notification_options    w,u,c,r
host_notification_commands      notify-host-by-email
host_notification_options       d,u,r
email                   danielcadan@morenarosa.com.br
}

service_notification_options
w = WARNING
u = UNKNOWN
c = CRITICAL
r = RECOVER (OK)
f = when the service starts and stops flapping
n = NONE – nenhuma notificação

host_notification_options
d = DOWN
u = UNREACHABLE
r = RECOVER (UP)
f = when the host starts and stops flapping
s = SEND notifications when host or service scheduled downtime starts and ends.
n = NONE – nenhuma notificação

3) contactgroup.cfg
define contactgroup {
contactgroup_name       banco-admin
alias                   Administradores do Banco de Dados
members                 cadan,silvio ;membros do grupo definidos em contacts.cfg
}

4) hosts.cfg
define host {
use             generic-host

host_name       costura
alias           BRMA Server 1
address         costura.grupomorenarosa.intranet
check_command   check-host-alive
max_check_attempts      5
contact_groups          brma-admin ;grupo definido em contactgroup.cfg
}
define host {
use             generic-host ; template

host_name       mclaren
alias           Web Server #1
address         mclaren.grupomorenarosa.intranet
check_command   check-host-alive
max_check_attempts      5
notification_interval   1
notification_period     24×7
notification_options    d,u,r ; down, unreachable, recover(UP)
contact_groups          http-admin
parents                 costura ;no mapa o mclaren estará ligado no costura
}

5) hostgroup.cfg
define hostgroup {
hostgroup_name          http-server
alias                   Web Servers
members                 mclaren
}

6, 7, 8, 9) definição dos serviços monitorados:
define service {
use                     generic-service

host_name               mclaren ; nome do servidor
service_description     PING ; descrição
is_volatile             0
check_period            24×7
max_check_attempts      5
normal_check_interval   1
retry_check_interval    1
contact_groups          http-admin ; grupo de contatos à ser notificado
notification_interval   2
notification_period     24×7
notification_options    c,r
check_command           check_ping!100.0,20%!500.0,60% ; nesse caso WARNING é quando tiver 20% de perca em 100 pacotes; CRITICAL 60% de perca em 500 pacotes
}

10) hostextinfo.cfg
define hostextinfo {
name            linux-template ;isso é um template

icon_image      linux.png
icon_image_alt  Linux Server
vrml_image      linux.png
statusmap_image linux.gd2
register        0
}
define hostextinfo {
use             linux-template ; usa o template definido
host_name       mclaren
2d_coords       100,250 ; não necessário
3d_coords       100.0,50.0,75.0 ; não necessário
}

Blog Widget by LinkWithin
This entry was posted in Java. Bookmark the permalink.

Comments are closed.