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 40 minutos 5 minutos 5 minutos 13/9/2004 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Visão geral Instalação Configuração básica Plugins Estados de clientes e serviços Agendamento de checagens Notificações Períodos Tratamento de eventos Comandos externos Nrpe/nsca Dependências Paradas agendadas 14. Demonstração 15. Perguntas 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. 2. 3. 4. 5. bin/ etc/ sbin/ share/ var/ 13/9/2004 núcleo do programa Nagios configurações CGIs Arquivos HTML e documentação logs e comandos externos 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 • Cliente não-OK serviços nele 13/9/2004 verifique o cliente não verifique mais 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 13/9/2004 DOWN Leonardo Henrique Machado UNREACHABLE 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. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 13/9/2004 Visão geral Instalação Configuração básica Plugins Estados de clientes e serviços Agendamento de checagens Notificações Períodos Tratamento de eventos Comandos externos Nrpe/nsca Dependências Paradas agendadas Demonstração Perguntas 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 Downtime? Flapping? Serviço nagios.cfg não notifique não notifique – 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 – – – – – – 13/9/2004 Mail Sms Pager Icq Popup Sons … 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 alias monday tuesday wednesday thursday friday } secretaria Horário da Secretaria 08:00-12:00,13:00-17:00 08:00-12:00,13:00-17:00 08:00-12:00,13:00-17:00 08:00-12:00,13:00-17:00 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 serviços passivos. define service{ host_name active_checks_enabled passive_checks_enabled check_freshness freshness_threshold check_command …outras opções... } 13/9/2004 força checagens ativas de backup-server 0 1 1 93600 no-backup-report 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 – – – – – – 13/9/2004 Escalável Eficiente Gratuito Esquema de notificação flexível Permite criar suas próprias checagens Interface Web (independe do SO) Leonardo Henrique Machado 40 Muito Obrigado! Perguntas? Leonardo Henrique Machado - [email protected]