Apostila Nagios Eduardo Andrade - 12
Apostila Nagios Eduardo Andrade - 12
Apostila Nagios Eduardo Andrade - 12
O que so os NMS?
Network Management System
Gerenciamento Monitoramento
muito importante manter um Sistema de Gesto de Redes,
que seja to simples quanto apenas monitorar e criar alarmes
para enlaces, hosts e servios, ou to complexo quanto
necessrio.
O que o Nagios:
Aplicativo de Monitoramento de Servios de Rede
SMTP,POP3,HTTP,NNTP,PING,etc...
Monitoramento de Computadores
Carga em processador, uso de disco ou
memria,etc...
Possibilita
personalizados
desenvolvimento
de
plugins
Custos de licenciamento
WhatUp*: $1.495,00
www.ipswitch.com/Purchase/products/whatsup_professional.html
Sobre o Nagios...
Aplicao de cdigo fonte aberto (GPL)
Plataformas: FreeBSD, Linux, Solaris etc.
Monitora Hosts e servios de rede
Notifica em caso de problemas
Fornece uma viso geral do estado dos sistemas da rede
Permite aes rpidas para resoluo de problemas
Fornece relatrios de disponibilidade para SLA's etc.
Originalmente chamava-se NetSaint (netsaint.org)
Nome trocado para Nagios por questes de marca registrada
N.A.G.I.O.S. = Nagios Ain't Gonna Insist On Sainthood
Nagios
Projetado para ser modular (plugins);
Daemon contm a lgica de monitoramento e escalonamento;
CGI's permitem aos utilizadores visualizarem os status via web;
Aplicaes externas cuidam do trabalho de monitoramento de baixo
nvel;
Comandos externos podem ser disparados para tratamento de alertas,
mudanas de estados e informaes de monitoramento;
Possui facilidades para integrao com outras aplicaes.
Instalao Nagios
Preparar o sistema (criar grupo e usurio)
Obtendo e descompactando o programa
Configurao Pr-Instalao
Compilao e Instalao
Instalao Nagios
Preparar o sistema (criar grupo e utilizador)
Obtendo e descompactando o programa
Configurao Pr-Instalao
Compilao e Instalao
Instalao Nagios
Preparar o sistema (criar grupo e utilizador)
Obtendo e descompactando o programa
Configurao Pr-Instalao
Compilao e Instalao
Instalao Nagios
Preparar o sistema (criar grupo e utilizador)
Obtendo e descompactando o programa
Configurao Pr-Instalao
Compilao e Instalao
Ncleodoprograma(nagios)
./etc
Arquivosdeconfigurao
./sbin
CGIs
./share
./var
HTMLseDocumentao
LogseComandosExternos
Configurao do Nagios
Arquivo principal: nagios.cfg
Arquivo de macros: resource.cfg
Configurao de CGIs: cgi.cfg
Configurao de comandos: commands.cfg
Arquivo de configurao de objetos: *.cfg
contatos e grupos de contatos
computadores e grupo de computadores
servio e grupo de servios
dependncias, perodos de tempo, etc...
sero
Nagios
Comandos auxiliares: misccommands.cfg
Definio dos comandos auxiliares como notificao
Hora de trabalho
Verifique as configuraes
Basta rodar o Nagios com o parmetro -v
Resolvido os erros, inicie o Nagios!
# cd /usr/local/nagios
# ./bin/nagios -v etc/nagios.cfg
# /etc/init.d/nagios start
Hostgroup Overview(status.cgi)
Detalhamento de todos os computadores separados por grupos
afins.
Hostgroup Summary(status.cgi)
Resumo do estado dos computadores e seus respectivos
servios, separados por grupos afins.
Service Problems
Mostra apenas servios com problemas
Host Problems
Mostra apenas computadores com problemas
Comments (Comentrios)
Permite ter acesso aos comentrios associados a cada
cliente.
Os comentrios funcionam como um espcie de Blog
associado a cada computador ou servio
til para descrio de problemas
Trends (Tendncias)
Informa o intervalo de durao de cada problema ocorrido em
um perodo de tempo definido
Avalability (Disponibilidade)
Possibilita visualizar qual a porcentagem de tempo que uma
mquina ou servio esteve funcionado em um perodo
especfico
alertas
Notifications (Notificaes)
Listagem de todas as notificaes enviadas durante o dia e seus
respectivos destinatrios
Nagios
A Teoria dos Plugins
O Nagios no possui mecanismo interno de checagens
Faz uso de plugins
O Plugins executa algo e o Nagios toma uma deciso
baseado no resultado recebido
Vantagem:
Voc monitora o que quiser! Basta escrever o plugin
Dica: Se voc consegue checar o servio na linha de comando,
ento voc pode fazer um plugin!
Nagios
Problemas na Rede
(Network Outage outages.cgi)
Ajuda a localizar o causador de todos os problemas
Baseia-se no seguinte racioccio:
Se um cliente est em DOWN ou UNREACHABLE e seu
pai est UP, ento o cliente a causa dos problemas
Nagios
Problemas na Rede
(Network Outage outages.cgi)
Se vrios computadores estiverem causando o
problema na rede, eles so ordenados por serveridade:
Cliente:peso 1
Servio: peso 0.25
4 servios equivale a 1 cliente em grau de serveridade
Os Tipos de Estados
Status do Cliente ou Servio:
Ok, Warning, Up, Down, Unreachable
Estado do Cliente ou Servio
Hard, Soft
max_check_attempts: nmero mximo de checagens antes
de avisar sobre o problema com o cliente/servio
Evita falsos alertas
Os Tipos de Estados
Estado Soft
Checagem resulta em no-OK
max_check_attempts no foi excedido
Ativando log de Estado Soft
nagios.cfg:
log_service_retries = 1
log_host_retries = 1
Tratadores de eventos podem ser executados para
correo do problema antes que se notifique
Notificaes no so enviadas!
Os Tipos de Estados
Estado Hard
Checagem resulta em no-OK
max_check_attempts foi excedido
Servio no-OK e cliente DOWN ou UNREACHABLE
No faria sentido checar o servio novamente se o cliente est
DOWN
Enventos do estado Hard
sempre registrado em log
Tratadores de eventos so executados
Notificaes so enviadas*
Recuperaes de estado hard no notificadas*
*Quando a lgica de notificao permitir
Intervalos de Tempo
Define intervalos de tempo padres a serem usados na
definio de checagens, notificaes, etc. Ex.:
Hora de Trabalho
Hora do Folga
Funcionamento das Mquinas da Secretaria
check_period
Antes da checagem for agendada, esta varivel da definio
de computadores e servios ser consultada.
Intervalos de Tempo
Definio
do Contato
service_notification_period =
host_notification_period =
Definio
do computador ou do servio
notification_period =
Ex:
Email
Pager
Celular (SMS)
PopUp (Windows e Xwindows)
Yahoo, ICQ, MSN
Alertas sonoros
Sintetizador de voz (festival) # Ex.:DNS server is down. :)
Agendamento de Checagens
Diretivas que influem
Arquivo de configurao principal (nagios.cfg)
service_inter_check_delay_method
host_inter_check_delay_method
service_interleave_factor
max_concurrent_checks
service_reaper_frequency
Definio do servio
check_period
normal_check_interval
retry_check_interval3
Agendamento de Checagens
Queremos evitar:
(a) Sobre carga no servidor de monitoramento
(b) Sobre carga no cliente remoto monitorado
(c) Problemas com servios que demoram a retornar o
resultado de suas checagens, atrasando as demais tarefas
Agendamento de Checagens
Sobre carga no servidor de monitoramento
Soluo:
service_inter_check_delay_method
host_inter_check_delay_method
n: no use atrasos entre checagens
d: use atrasos de 1 segundo entre checagens (dumb)
s: use o mtodo inteligente (smart) de atrasos entre checagens
x.xx: use um atraso entre checagens de x.xx segundos
Agendamento de Checagens
Sobre carga no servidor de monitoramento
Clculo smart:
1000 servios
5 minutos pra checar cada um.. Mdia geral 5 minutos.
Atraso =
Concluso
Cheque 3 servios por segundo (ou 1 a cada 0.3 segundos)
Agendamento de Checagens
Sobre carga no cliente remoto monitorado
Soluo: service_interleave_factor
s: use o mtodo inteligente (smart) de intercalao de checagens
x: use um fator de intercalao igual a x
1: no use intercalao na checagens de servios
Clculo smart
Fator = Teto total de servios
total de clientes
Agendamento de Checagens
Definio do servio
check_period
Antes de realizar a checagem agendada, verifica-se esta varivel
Caso no esteja no perodo de checagem, ela re-agendada
para um horrio vlido
normal_check_interval
Freqencia com que as checagens so agendadas
retry_check_interval
Freqencia com que as checagens so agendadas em caso de
deteco de problemas
Tratadores de Eventos
Comandos opcionais executados quando h mudana no estado do
servio. til para:
Tentar resolver um problema antes de notificar
Registrar logs em um banco de dados externo
Enviar comandos para o Nagios (adicionar comentario, etc)
Tipos:
Tratador de evento global de cliente e servios (nagios.cfg)
global_host_event_handler, global_service_event_handler
Tratadores de eventos de clientes e servios
event_handler
Tratadores de Eventos
Debugando
log_host_retries = 1
log_service_retries = 1
log_event_handlers = 1
Tratadores de Eventos
So executados
Em estados soft
Ordem de execuo
Tratadores de Eventos
Permisses
So executados com o usurio do Nagios
Configure o sudo para d-lo as permisses quando necessrio!
Macros mais importantes usadas como argumentos:
servio:
$SERVICESTATE$, $SERVICESTATETYPE$, $SERVICEATTEMPT$
cliente:
$HOSTSTATE$, $HOSTSTATETYPE$, $HOSTATTEMPT$
Tratadores de Eventos
Exemplos
Comandos Externos
Capacidade de receber comandos de aplicativos externos
Forma padro para envio de comandos via interface web
Comandos Externos
Habilitando comandos externos (nagios.cfg)
check_external_commands = 1
command_check_interval = -1
command_file = <directoria do arquivo de comando>
Comandos Externos
Criando o arquivo de comando externo
As escritas no arquivo de comando externo sero feitas
pelo utilizador do nagios (via tratador de eventos) ou
pelo servidor web (www-data).
Comandos Externos
Quando os comandos so verificados?
command_check_interval= -1 verifica sempre que possvel
Imediatamente aps execuo de tratadores de eventos
Comandos Externos
Enviando um Comando para o Nagios
Via Interface Web (Experimente!)
Via Linha de Comando