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]
Download

Monitorando Redes com o Nagios - POP