Você está na página 1de 78

MONITORAMENTO PROFISSIONAL DE SISTEMAS

Instrutor: Eduardo Andrade

O que so os NMS?
Network Management System

Sistemas que integram as informaes necessrias para uma


boa administrao dos recursos da rede.
Monitorizao da rede, seus dispositivos e servios

Gesto de recursos e inventrio

Gesto de alarmes (Fault Management System)

Gesto de atividades (trouble ticket / bug tracker)

Mapas interativos ou estticos

Relatrios de apoio a gesto

Integrao com outros sistemas de medio

FCAPS - Fault, Configuration, Accounting, Performance, Security.

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 Sistema ideal de Gerenciamento


de Redes
... no existe!

Para se ter um sistema eficaz, ser necessrio utilizar


ferramentas de medies auxiliares, realizar
adequaes, somar outros sistemas, e utilizar-se de
muita programao.

Pode-se criar um Framework para unir as ferramentas


necessrias para medies e monitoramento de
infraestruturas especficas.

O Nagios sem dvida, o NMS de cdigo fonte


aberto mais utilizado, apesar de no ser o mais
completo.

Mas voc pode comear a construir seu Framework com


ele.

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

Notificao em casos de falha


email,pager,celular,etc...

de

plugins

Uso de tratadores de eventos para corrigir resolver


automaticamente um problema.
ex.: reiniciar servidor Web caso ele no esteja
respondendo

Monitoramento de redundante e distribudo.


Carga em processador, uso de disco ou memria,
etc...

Interface Web opcional para visualizar todo o processo


de monitoramento.

Custos de licenciamento
WhatUp*: $1.495,00
www.ipswitch.com/Purchase/products/whatsup_professional.html

BigBrother*: $2.500,00 + $100 por cliente


estore.quest.com/QuestStore/bigbrother/store.asp

OpenView (HP): $40.000,00


www.openview.hp.com

Nagios: Cdigo aberto e licena GPL


www.nagios.org
* Professional Edition

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

Estrutura de diretrios do Nagios


./bin

Ncleodoprograma(nagios)

./etc

Arquivosdeconfigurao

./sbin

CGIs

./share
./var

HTMLseDocumentao
LogseComandosExternos

Configurar a Interface Web (Apache)


Edite o httpd.conf
Crie um ScriptAlias para acesso ao diretrio de CGIs
Crie um Alias para acesso aos HTMLs
Reinicie o servidor Web

Aumente a segurana de acesso via Web


Restrinja o acesso por IP
Ative autenticao de utilizadores

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...

Arquivo principal de configurao: nagios.cfg


Arquivo de macros: resource.cfg
Arquivo de CGIs: cgi.cfg
Controle de acesso interface Web
Controle de vises do mapa de rede

Configurao dos objetos: *.cfg


Adio de hosts e servios monitorados
Adio de contatos (utilizadores a serem notificados)
Uso de vrios arquivos (*.cfg) facilita manuteno
Poderamos criar apenas um confuso.cfg contendo todos os
objetos monitorados, todos os contatos, etc!
Optaremos por criar vrios cfgs e diretrios para organizar os
arquivos.

Configurao dos objetos: services.cfg


Definio de todos os servios que
monitorizados em cada computador definido.

sero

Agrupamento dos servios em grupos especficos.


Common Settings
Check Settings
Notification Settings
Event Settings
Special Settings
Flap Control Settings
ServiceGroups

Nagios
Comandos auxiliares: misccommands.cfg
Definio dos comandos auxiliares como notificao

Configurao dos objetos: contatos.cfg


Determinar aqueles que sero notificados em caso de
problemas e agrup-los em grupos especficos.
Restringir a visualizao de computadores na interface Web.

Utilizadores logados s enxergaro computadores para os quais


eles so contatos!

Configurao dos objetos: timeperiods.cfg


Configurao de perodos de tempo

Hora de trabalho

Hora de funcionamento da secretaria

Hora de funcionamento do suporte, etc...

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

Parar o Servidor ou Recarregar configurao


Parando o Nagios
Recarregando arquivos de configurao
Aps alteraes
# /etc/init.d/nagios stop
# /etc/init.d/nagios reload

Viso Ttica (tac.cgi)


Resumo de servios
Resumo de computadores
Resumo de Configuraes (como ativao de notificaes)
Resumo do monitoramento
Sade de sua rede

Service Detail (status.cgi)


Detalhamento de todos os servios monitorados sob sua
responsabilidade

Host Detail (status.cgi)


Detalhamento de todos os computadores monitorados sob
sua responsabilidade.

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.

Hostgroup Grid (status.cgi)


Tabela de grupos detalhando cada computador que lhe
pertence e o servio a ele associado.

Servicegroup Overview (status.cgi)


Mostra servios em tabelas separadas por grupos pr-definidos

Servicegroup Summary (status.cgi)


Resumo do estado dos servios, separados por grupos afins.

Servicegroup Grid (status.cgi)


Tabelas de grupos detalhando cada grupo de servio e os
computadores a eles associados.

Status Map (statusmap.cgi)


Mapa da rede
Montado de acordo com as informaes de computadores
(hosts.cfg)
Possibilita vrios formatos de visualizao (Layout Methods)
Possibilita incluir/excluir mquias ou grupos da visualizao.

D Status Map (statuswrl.cgi)


Mapa da rede em 3D (VRML)
Necessita de plugin no navegador

Service Problems
Mostra apenas servios com problemas

Host Problems
Mostra apenas computadores com problemas

Network Outages (Problemas na Rede)


Mostra os problemas da rede em ordem de relevncia
Ajuda a decidir onde est a causa dos problemas

Caixa de texto Show Host


Permite mostrar rapidamente o status de um cliente

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

Downtime (Paradas Agendadas)


Permite agendar a parada de um servio ou cliente
Permite visualizar/editar/remover todas as paradas agendadas
at o momento

Process Info (Processo do Nagios)


Informaes sobre o processo do Nagios
Permite parar/reiniciar
Permite alterar alguns dados do nagios.cfg como desabilitao
de notificaes
Performance Info (Performance)

Scheduling Queue (Fila de Agendamentos)


Permite visualizar a fila de checagens que sero executadas no
futuro
Permite cancelar um execuo futura
Permite reagendar a execuo de uma checagem

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

Alert Histogram (Histograma de Alertas)


Permite visualizar, atravs de um histograma, os problemas
apresentados por um determinado computador ou servio em
um intervalo de tempo definido.

Alert History (Histrico de Alertas)


Listagem de todos os alertas gerados pelo sistema de
monitorizao naquele dia.

Alert Summary (Resumo de Alertas)


Permite filtrar os alertas por

Computadores e grupos de computadores


Servios e grupos de servios

Permite localizar o computador ou servio que mais gera

alertas

Notifications (Notificaes)
Listagem de todas as notificaes enviadas durante o dia e seus
respectivos destinatrios

Event Log (Log de Eventos)


Visualizao do log de monitoramento com identificadores de
eventos
Informaes
Alertas
Rotacionamento de logs
etc...

View Config (Configuraes)


Permite visualizar a configurao de:

Clientes e grupos de clientes


Servios e grupos de servios
Dependncias
Perodo de tempos
Comandos
Escalonamento de notificaes

Status de Clientes Locais e Remotos da rede


Clientes locais
Nenhum roteador ou firewall entre eles
A opo parent_hosts no entra na definio do computador

Status de Clientes Locais e Remotos da rede


Algoritmo simples de verificao
1) Se um servio no funcionar
Verifique o computador a ele associado (PING)
2) Se o computador estiver funcionando
O problema com o servio. Notifique os responsveis
3) Se o computador no responder ao PING
O problema com o computador. Silencie as notificaes e
alertas dos servios e notifique apenas o responsvel pelo
computador

Status de Clientes Locais e Remotos da rede


Clientes remotos
H roteador ou firewall entre eles. Um ou vrios!
A opo parent_hosts entra na definio do
computador

Status de Clientes Locais e Remotos da rede


Algoritmo avanado de verificao
Se um cliente remoto estiver com problemas
Ande pela arvore de dependncias at chegar ao topo ou at
um dos ns pais responder ao PING
O Nagios descobrir se o problema com a rede (Computador
UNREACHABLE) ou com o servio do computador checado

Status de Clientes Locais e Remotos da rede


O Servidor Nagios procura saber se o servio X est OK
O servio X no responde
O Nagios procura saber e o problema com o computador
O Computador no responde ao PING
O servidor Nagios procura saber se o problema com o roteador
(Pai do computador verificado)
O Roteador no responde

Concluso: O problema com o roteador. Silencie notificaes e


alertas sobre o cliente remoto

Status de Clientes Locais e Remotos da rede


Resumindo...
UNREACHABLE vs. DOWN
O Nagios consegue identificar os casos acima
O Nagios pode notificar e enviar alertas em ambos os
casos, em um dos casos um em nenhum deles

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 =

A Lgica das Notificaes


Quando ocorrem?
Mudana de estado
Definio de clientes e servios
notification_interval excedido # re-notificao
notification_interval = 0 #notifique somente uma vez!
Quem notificado?
Definio de clientes e servios
contact_groups # ex.:
contact_groups = admin, admin_local

A Lgica das Notificaes


Formas de notificaes

Qualquer notificao possvel na linha de comando.

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 =

5 = 0,005 min = 0,3 seg


1000

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

Cuidado: o uso destas opes pode lotar seu


disco!

Tratadores de Eventos
So executados

Em estados soft

Quando se entra no estado hard

Quando se recupera de um problema

Ordem de execuo

Tratador de evento global

Tratador de evento local (definio de cliente e servio)

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

Diretrio do cdigo fonte: contrib/eventhandlers

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

Checagem Indireta de Servios - NRPE


Checagens acessveis remotamente
Tudo que estiver abrindo portas:
Dns, ftp, smtp, http, ssh, etc...
Checagens inacessveis remotamente
Servios locais
Espao em disco, usurio logados, processo ativos,
etc...
Servios atrs de firewall
Soluo:
Usar um agente remoto para colher informaes

Checagens Indiretas de Servios - NRPE


Requisitos
Download e compilao do NRPE
www.nagios.org/download/extras.php
Daemon NRPE no computador remoto
Configurao do inetd ou xinetd
Configurao do arquivo /etc/services
Configurao do nrpe.conf
Ouvindo na porta 5666
Plugin de checagem no computador remoto
check_nrpe no servidor