monitorando redes com o nagios
DESCRIPTION
NagiosTRANSCRIPT
Monitorando Redes com o Nagios
Autor: Leonardo Henrique Machado
13/9/2004 Leonardo Henrique Machado 2
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 3
Conteúdo1. Visão geral2. Instalação3. Configuração básica4. Plugins5. Estados de clientes e serviços6. Agendamento de checagens7. Notificações8. Períodos9. Tratamento de eventos10. Comandos externos11. Nrpe/nsca12. Dependências13. Paradas agendadas
14. Demonstração
15. Perguntas5 minutos5 minutos
40 minutos
13/9/2004 Leonardo Henrique Machado 4
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 5
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 6
Estrutura de Diretórios
1. bin/ � núcleo do programa Nagios2. etc/ � configurações3. sbin/ � CGIs4. share/ � Arquivos HTML e documentação5. var/ � logs e comandos externos
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
13/9/2004 Leonardo Henrique Machado 13
Iniciando o Nagios
• Teste: Usando a opção –v• Inicie o programa: /etc/init.d/nagios start
13/9/2004 Leonardo Henrique Machado 14
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 15
Achando a causa do problema
Gravidade maior
13/9/2004 Leonardo Henrique Machado 16
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 17
A Teoria dos PluginsEx.: check_disk
Ex.: check_dns
13/9/2004 Leonardo Henrique Machado 18
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 19
Estado das máquinas
OK DOWN UNREACHABLE
13/9/2004 Leonardo Henrique Machado 20
Estado dos serviços
OK
UNKNOWN
WARING
CRITICAL
13/9/2004 Leonardo Henrique Machado 21
Agendamentos de checagens
• nagios.cfg
�Inter_check_delay_method�Service_interleave_factor�Max_concurrent_checks�Service_reaper_frequency
13/9/2004 Leonardo Henrique Machado 22
Agendamentos de checagens
• Na definição de serviço
�Normal_check_interval�Retry_check_interval�Check_period
13/9/2004 Leonardo Henrique Machado 23
Próximos tópicos1. Visão geral2. Instalação3. Configuração básica4. Plugins5. Estados de clientes e serviços6. Agendamento de checagens7. Notificações8. Períodos9. Tratamento de eventos10. Comandos externos11. Nrpe/nsca12. Dependências13. Paradas agendadas14. Demonstração15. Perguntas
13/9/2004 Leonardo Henrique Machado 24
Notificações
• Quando notificar?
�Entradas em estado crítico�Tempo de re-notificação alcançado
13/9/2004 Leonardo Henrique Machado 25
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 26
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 27
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 28
Escalonando notificaçõesdefine serviceescalation{host_name bankonlineservice_description bbfirst_notification 3last_notification 5notification_interval 90contact_groups estagiarios
}
define serviceescalation{host_name bankonlineservice_description bbfirst_notification 6last_notification 0notification_interval 60contact_groups estagiarios,chefes
}
13/9/2004 Leonardo Henrique Machado 29
Definição de períodos
• Variáveis que necessitam de períodos de tempo:
check_periodnotification_periodservice_notification_periodnotification_periodhost_notification_period
13/9/2004 Leonardo Henrique Machado 30
Definição de períodos
define timeperiod{timeperiod_name secretariaalias Horário da Secretariamonday 08:00-12:00,13:00-17:00tuesday 08:00-12:00,13:00-17:00wednesday 08:00-12:00,13:00-17:00thursday 08:00-12:00,13:00-17:00friday 08:00-12:00,13:00-17:00
}
13/9/2004 Leonardo Henrique Machado 31
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 32
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 33
NR
PE
13/9/2004 Leonardo Henrique Machado 34
NSC
A
13/9/2004 Leonardo Henrique Machado 35
O resultado é recente?
• freshness_threshold � força checagens ativas de serviços passivos.
define service{host_name backup-serveractive_checks_enabled 0passive_checks_enabled 1check_freshness 1freshness_threshold 93600check_command no-backup-report …outras opções...
}
13/9/2004 Leonardo Henrique Machado 36
Monitoramento de clusters
• check_cluster• Comando:
check_host_cluster!2!4!/etc/nagios/cluster.cfg • Cluster.cfg
» host1host2host3host4host5host6
Dependências: serviços e clientes
dependecias.cfg
Agendamento de paradas
Web: fixa e flexível
Demostração do Nagios
Monitorando 36 telecentros
13/9/2004 Leonardo Henrique Machado 40
Conclusão
• Vantagens– Escalável– Eficiente– Gratuito– Esquema de notificação flexível– Permite criar suas próprias checagens– Interface Web (independe do SO)