Você está na página 1de 41

Monitorando Redes com o

Nagios
Autor: Leonardo Henrique Machado
Apresentação
• Recém formado em Ciência da Computação
• Estágio na administração da Rede do DCC/UFMG
(implantação do Nagios)
• Monitoramento de 36 telecentros em 36 cidades no norte
de Minas Gerais
• Professor na semana de capacitação de funcionário público
realizada em abril/2004 em Brasília

13/9/2004 Leonardo Henrique Machado 2


Conteúdo
1. Visão geral
2. Instalação
3. Configuração básica
4. Plugins
5. Estados de clientes e serviços
6. Agendamento de checagens
40 minutos 7. Notificações
8. Períodos
9. Tratamento de eventos
10. Comandos externos
11. Nrpe/nsca
12. Dependências
13. Paradas agendadas
5 minutos 14. Demonstração
5 minutos 15. Perguntas

13/9/2004 Leonardo Henrique Machado 3


Visão Geral
• Monitoramento de serviços (SMTP, POP3, HTTP,
NNTP, PING, etc)
• Monitoramento de recursos (carga, disco, etc)
• Flexível: uso de plugins
• Checagem paralela de serviços
• Notificação de contatos (pager, email, icq, etc)
• Tratamento de eventos
• Interface Web
13/9/2004 Leonardo Henrique Machado 4
Instalação
• Download, ./configure, make install
• Disponível em .rpm e .deb
• Download e instalação de plugins
• Configurar servidor web (ex.: apache)
• Configurar o programa

13/9/2004 Leonardo Henrique Machado 5


Estrutura de Diretórios
1. bin/ núcleo do programa Nagios
2. etc/ configurações
3. sbin/ CGIs
4. share/ Arquivos HTML e documentação
5. var/ logs e comandos externos

13/9/2004 Leonardo Henrique Machado 6


Configuração

Apache
Configuração

Arquivo principal – nagios.cfg


Configuração

Arquivo de CGIs – cgi.cfg


Configuração

Definição de máquinas e grupos de


máquinas – maquinas.cfg
Configuração

Definição dos serviços – servicos.cfg


Configuração

Criação de contatos e grupos de


contatos – contatos.cfg
Iniciando o Nagios
• Teste: Usando a opção –v
• Inicie o programa: /etc/init.d/nagios start

13/9/2004 Leonardo Henrique Machado 13


Teoria do Funcionamento
• Serviço não-OK verifique o cliente
• Cliente não-OK não verifique mais
serviços nele

13/9/2004 Leonardo Henrique Machado 14


Achando a causa do problema
Gravidade maior

13/9/2004 Leonardo Henrique Machado 15


A Teoria dos Plugins
• Vários plugins disponíveis
• Facilidade em criar novos plugins
– Regra: é possível verificar o serviço através de
linha de comando? Então é possível fazer um
plugin!
• Ex.: checar uso de OpenOffice

13/9/2004 Leonardo Henrique Machado 16


A Teoria dos Plugins
Ex.: check_disk

Ex.: check_dns

13/9/2004 Leonardo Henrique Machado 17


Tipos de estado – Soft/Hard
• max_check_attemps não excedido soft
– Não há notificações
– Tratamento de eventos acionados
– Logs opcionais
• max_check_attemps excedido hard
– Envio de notificações

13/9/2004 Leonardo Henrique Machado 18


Estado das máquinas

OK DOWN UNREACHABLE

13/9/2004 Leonardo Henrique Machado 19


Estado dos serviços
OK

UNKNOWN

WARING

CRITICAL

13/9/2004 Leonardo Henrique Machado 20


Agendamentos de checagens
• nagios.cfg

Inter_check_delay_method
Service_interleave_factor
Max_concurrent_checks
Service_reaper_frequency

13/9/2004 Leonardo Henrique Machado 21


Agendamentos de checagens
• Na definição de serviço

Normal_check_interval
Retry_check_interval
Check_period

13/9/2004 Leonardo Henrique Machado 22


Próximos tópicos
1. Visão geral
2. Instalação
3. Configuração básica
4. Plugins
5. Estados de clientes e serviços
6. Agendamento de checagens
7. Notificações
8. Períodos
9. Tratamento de eventos
10. Comandos externos
11. Nrpe/nsca
12. Dependências
13. Paradas agendadas
14. Demonstração
15. Perguntas
13/9/2004 Leonardo Henrique Machado 23
Notificações
• Quando notificar?

Entradas em estado crítico


Tempo de re-notificação alcançado

13/9/2004 Leonardo Henrique Machado 24


Quem é notificado?
• Contact_groups em definição de serviços
• Ser contato de um serviço garante a
visualização do cliente/serviço na interface
web (autenticação via CGI)

13/9/2004 Leonardo Henrique Machado 25


Filtros de Notificação
• Enable_notifications nagios.cfg
• Downtime? não notifique
• Flapping? não notifique
• Serviço
– Notification_period
– Notification_interval
• Contatos
– host_notification_options [d,u,r,n]
– service_notification_options [w,u,c,r,n]

13/9/2004 Leonardo Henrique Machado 26


Comandos de Notificação
• Você cria seu próprio método de notificação
– Mail
– Sms
– Pager
– Icq
– Popup
– Sons …

13/9/2004 Leonardo Henrique Machado 27


Escalonando notificações
define serviceescalation{
host_name bankonline
service_description bb
first_notification 3
last_notification 5
notification_interval 90
contact_groups estagiarios
}

define serviceescalation{
host_name bankonline
service_description bb
first_notification 6
last_notification 0
notification_interval 60
contact_groups estagiarios,chefes
}

13/9/2004 Leonardo Henrique Machado 28


Definição de períodos
• Variáveis que necessitam de períodos de
tempo:

check_period
notification_period
service_notification_period
notification_period
host_notification_period

13/9/2004 Leonardo Henrique Machado 29


Definição de períodos
define timeperiod{
timeperiod_name secretaria
alias Horário da Secretaria
monday 08:00-12:00,13:00-17:00
tuesday 08:00-12:00,13:00-17:00
wednesday 08:00-12:00,13:00-17:00
thursday 08:00-12:00,13:00-17:00
friday 08:00-12:00,13:00-17:00
}

13/9/2004 Leonardo Henrique Machado 30


Tratamento de Eventos
• Execução de scripts quando se entra em:
– soft, hard ou recovery
• Exemplo de uso: se o http parar de
responder o nagios reinicia o servidor e
envia uma notificação.

13/9/2004 Leonardo Henrique Machado 31


Comandos Externos
• Escritos no arquivo var/rw/nagios.cmd
• Controlado pelas variáveis:
– check_external_commands
– command_check_interval
• Usado em checagens passivas: plugin envia
resultado sem que o Nagios tenha pedido.
• Todos os comandos de interface web são
enviados ao nagios.cmd
13/9/2004 Leonardo Henrique Machado 32
NRPE

13/9/2004 Leonardo Henrique Machado 33


NSCA

13/9/2004 Leonardo Henrique Machado 34


O resultado é recente?
• freshness_threshold força checagens ativas de
serviços passivos.

define service{
host_name backup-server
active_checks_enabled 0
passive_checks_enabled 1
check_freshness 1
freshness_threshold 93600
check_command no-backup-report
…outras opções...
}
13/9/2004 Leonardo Henrique Machado 35
Monitoramento de clusters
• check_cluster
• Comando:
check_host_cluster!2!4!/etc/nagios/cluster.cfg
• Cluster.cfg
» host1
host2
host3
host4
host5
host6

13/9/2004 Leonardo Henrique Machado 36


Dependências: serviços e clientes

dependecias.cfg
Agendamento de paradas

Web: fixa e flexível


Demostração do Nagios

Monitorando 36 telecentros
Conclusão
• Vantagens
– Escalável
– Eficiente
– Gratuito
– Esquema de notificação flexível
– Permite criar suas próprias checagens
– Interface Web (independe do SO)

13/9/2004 Leonardo Henrique Machado 40


Muito Obrigado!

Perguntas?

Leonardo Henrique Machado - leo@ufmg.br