Professional Documents
Culture Documents
FERRAMENTAS DE MONITORIZAO
V. 1.0
URT, DUD
Fevereiro 2012
Ferramentas de monitorizao v1
Contedo
Introduo ..................................................................................................................................... 3
Uma pequena apresentao do conceito de monitorizao ..................................................... 3
Nagios............................................................................................................................................ 4
Como se configura? ................................................................................................................... 4
Cacti............................................................................................................................................... 7
Como se configura? ................................................................................................................... 7
ZenOSS ........................................................................................................................................ 10
Como se configura? ................................................................................................................. 11
Zabbix .......................................................................................................................................... 14
Como se configura? ................................................................................................................. 15
Munin .......................................................................................................................................... 17
Como se configura? ................................................................................................................. 18
Tabela comparativa das funcionalidades suportadas pelas ferramentas de monitorizao
apresentadas ............................................................................................................................... 21
Resumo comparativo .................................................................................................................. 22
Introduo
A monitorizao de redes e servidores tornou-se uma parte essencial da gesto de infra-
estruturas e sistemas crticos de IT. A monitorizao permite que o administrador seja alertado
no caso de algum problema ou indisponibilidade, mas tambm pode ajudar bastante a ter uma
perspectiva geral da infra-estrutura gerida. No entanto, o crescimento acentuado do nmero
de aplicaes associadas utilizao das redes de computadores torna mais difcil, a cada dia
que passa, a tarefa de monitorizao desse ambiente.
Existem muitas variveis que podem ser monitorizadas. Entre elas encontram-se, obviamente,
parmetros bsicos como a ocupao do disco, da memria, utilizao do CPU ou alertas de
disponibilidade. Mas, para alm destes exemplos, existem muitos outros conjuntos de
variveis que podem ser observadas e controladas, desde os servios interrompidos ou
iniciados em determinada mquina a quaisquer eventos que possam ser identificados nos logs
de servidores. Nestes casos, ainda possvel configurar alertas diferentes para cada um dos
tipos de eventos definidos (erros, avisos, etc).
Por outro lado, existem essencialmente dois tipos de software de monitorizao disponvel
os baseados em agentes e os sem-agente. Um agente um software que pode ser instalado
em qualquer equipamento que necessite de ser monitorizado, normalmente um servidor, e
que envia toda a informao til para um equipamento central. J os sistemas sem-agente
so capazes de monitorizar o equipamento sem necessidade de instalar qualquer tipo de
software. Existem vantagens e desvantagens para cada um dos mtodos, e no se pode dizer
em absoluto que um prefervel ao outro, pois so duas abordagens diferentes ao mesmo
problema: como monitorizar uma rede de computadores.
Nagios
O Nagios considerado uma das mais populares, se no a mais popular, ferramenta em cdigo
aberto de monitorizao de redes de computadores.
O Nagios permite monitorizar servios de rede (SMTP, POP3, http, NNTP, ICMP, SNMP, FTP,
SSH) e recursos de mquinas (utilizao do processador, ocupao do disco, logs de sistema,
etc), entre outros. A monitorizao remota feita atravs de tneis encriptados SSH e SSL.
O Nagios usa uma filosofia de plugins que torna fcil a criao de verificaes de servio, mais
conhecidas por checks, baseadas nas necessidades e especificidades de cada utilizador, onde
se incluem as ferramentas de desenvolvimento da preferncia dele (Bash, C, Perl, Python, etc).
Como se configura?
Aps instalar o Nagios no servidor escolhido para fazer a monitorizao, necessrio criar ou
editar os ficheiros de configurao para que ele comece a monitorizar qualquer coisa. O
ficheiro principal de configurao o nagios.cfg (usualmente, em
/usr/local/nagios/etc/nagios.cfg) e nele podemos encontrar muitas directivas que afectam a
forma como o Nagios vai operar. um ficheiro que ser lido tanto pelo processo do Nagios
como pelos CGIs. Algumas das variveis mais importantes que podemos modificar neste
ficheiro so: qual a directoria e o ficheiro de configurao de objectos, qual o ficheiro de
configurao de recursos, o ficheiro de estado, o ficheiro de log, de quanto em quanto tempo
se actualiza o ficheiro de estado, quais os privilgios do utilizador que o processo Nagios usa
para correr, entre outros.
De seguida, ser necessrio editar o ficheiro de configurao de objectos. aqui que definimos
que equipamentos queremos monitorizar e como pretendemos faz-lo, sendo que objectos
apenas um nome genrico para descrever o conjunto de definies necessrias
monitorizao da rede. Os objectos a definir incluem: services, hosts, host groups, contacts,
contact groups, commands, time periods, service escalations, service dependencies, host
escalations, host dependencies e host group escalations.
define host{
use tpl-windows-servers ;Inherit values template
host_name windowshost ; name of the server
alias My First Windows Server ; another name
address 10.0.0.2 ; IP address of the server
}
Exemplo da definio de um host
define service{
use generic-service
host_name windowshost
service_description CPU Load
check_command check_nrpe!alias_cpu
}
Exemplo da definio de um servio
Existem 2 mtodos para definir a informao dos objectos: o velho mtodo e o mtodo por
modelos. A escolha entre um e outro depende, essencialmente, da forma como foi compilado
o programa principal e os CGIs, no entanto, recomendamos o mtodo por modelos uma vez
que, para alm de mais flexvel e fcil de compreender, permite a utilizao de modelos para
definir mltiplos equipamentos ou servios de forma mais rpida e simples.
define host{
name tpl-windows-servers ; Name of this
template
use generic-host ; Inherit default
values
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period 24x7
notification_interval 30
notification_options d,r
contact_groups admins
register 0 ; DONT REGISTER THIS - ITS A
TEMPLATE
}
Exemplo de um modelo
O ficheiro de configurao de CGI onde se define, como o nome indica, o funcionamento dos
CGIs. Tal como no caso do ficheiro principal de configurao, tambm gerada uma amostra
de ficheiro de configurao de CGIs aquando da instalao inicial.
Por ltimo, importante referir ainda a aplicao NRPE (Nagios Remote Plugin Executor) que
permite fazer verificaes a servios que no so directamente acessveis pela mquina central
de monitorizao. Essas verificaes so realizadas por outros equipamentos e os resultados
enviados para a mquina central como se fosse ela prpria a fazer as verificaes. Uma
vantagem importante desta soluo que, em conjunto com algum cdigo, torna possvel
monitorizar praticamente qualquer coisa, desde o estado do RAID ao tamanho da mailqueue,
passando pela consistncia de bases de dados MySQL ou do conjunto de regras de uma
firewall.
Cacti
O Cacti uma ferramenta de tratamento e apresentao de dados, mais do que uma
ferramenta de monitorizao propriamente dita. Foi concebida como um frontend do
RRDTool, que o verdadeiro responsvel por armazenar os dados colectados nas mquinas ou
pontos de rede atravs de SNMP ou scripts, limitando-se o Cacti a gerar os grficos resultantes
dessa informao.
O interface com o utilizador est desenvolvido em PHP e pode utilizar dois backends :
cmd.php, mais adequado a pequenas instalaes, ou o spine (antigamente conhecido por
cactid), um controlador baseado em C que pode acomodar milhares de dispositivos.
O Cacti pode monitorizar qualquer tipo de mquina ou ponto de rede atravs de executveis
ou scripts. Actualmente, permite, inclusive, configurar a prpria colecta dos dados,
disponibilizando algumas configuraes de monitorizao que no necessitam de configurao
manual do RRDTool.
Como se configura?
De seguida, fazemos login, mudamos a pasword por defeito e, para comear a monitorizao
basta indicar ao Cacti quais os equipamentos que pretendemos monitorizar. O interface Web
do Cacti prtico e intuitivo, e este processo de identificao dos elementos de rede acaba
por tornar-se bastante simples, pois o Cacti inclui modelos para uma extensa lista de
equipamentos mais comuns, tais como servidores Linux, routers Cisco, servidores Netware e
at estaes de trabalho Windows2000/XP. Caso o equipamento em questo no se encontre
nessa lista, possvel criar o dispositivo genrico, especificar os parmetros que se pretende
monitorizar e gravar esse modelo para utilizaes futuras.
Mas toda esta informao que o Cacti recolhe s se torna interessante se for apresentada de
forma correcta. Em instalaes mais pequenas, possvel lidar e avaliar os grficos gerados
rapidamente, mas se estivermos a monitorizar centenas de parmetros, essa tarefa torna-se
praticamente impossvel. Para ajudar na compreenso e descodificao dos dados, o Cacti
permite organizar os grficos de vrias maneiras, como rvores de grficos ou coleccionando
todos os grficos de um dos tipos por baixo de um grfico-mor, s para citar alguns exemplos.
H uma infinidade de formas de organizar os grficos, tudo depende das necessidades do
administrador de rede.
Tambm possvel alimentar o Cacti com dados de outras fontes que no o SNMP. Basta
indicar-lhe o caminho do script (qualquer linguagem que corra da linha de comando Linux
serve) e ele recolhe a informao num cron e popula as bases de dados. Esto disponveis
mais de 20 scripts j desenvolvidos por outros utilizadores que vo desde recolher dados de
filas Sendmail at armazenar estatsticas do Apache.
ZenOSS
O ZenOSS uma plataforma de gesto de servios, mquinas e pontos de rede baseada no
servidor aplicacional Zope e que permite ao administrador de rede monitorizar a
disponibilidade, inventrio, configurao, performance e eventos da sua rede de dados.
Existem duas verses, o ZenOSS Core que livre, ou seja em cdigo aberto e sem custos de
licenciamento, e o ZenOSS Enterprise que tem maior capacidade de monitorizao mas
tambm maiores custos. O ZenOSS Core fornece as seguintes possibilidades de monitorizao:
Como se configura?
O processo de instalao do ZenOSS relativamente fcil e a documentao oficial
abundante e de boa qualidade. Depois de instalar as dependncias, basta descarregar o
ficheiro comprimido do ZenOSS e correr o script de instalao que vm com ele. O interface
Web corre na porta 8080.
Um utilizador casual consegue descobrir equipamentos e mquinas clicando aqui e ali, mas
sem uma noo de como funciona o ZenOSS um administrador de rede facilmente fica
frustrado. Basicamente, tudo est, ou pode ser, organizado em Classes. Existem outros
componentes organizativos, como Sistemas, Localizaes e Grupos, mas fundamentalmente os
equipamentos acabam enquadrados numa Classe. Esta classificao muito importante pois
nela que assentam as principais vantagens da utilizao do ZenOSS.
Como adicionar elementos manualmente pode ser um pouco trabalhoso, o ZenOSS tambm
capaz de descoberta automtica de Layer 3, ou seja, capaz de encontrar informao IP, como
tabelas de roteamento por exemplo, e enumerar as mquinas encontradas automaticamente.
Fazer esta descoberta automtica numa sub-rede pode no ser, no entanto, um processo
directo ou rpido e implica sempre que, mais tarde, se perca algum tempo a adicionar os
dispositivos encontrados s respectivas Classes.
Quando queremos adicionar equipamentos de rede, o processo ainda se torna mais simples:
basta fornecer ao ZenOSS as nossas strings de comunidade SNMP e ele descobre
automaticamente a topologia de Layer 3 e desenha um mapa interactivo da rede de dados.
Neste mapa, se colocarmos o rato sobre um qualquer equipamento podemos ver
imediatamente grficos de utilizao de largura de banda, por exemplo, ou listas de interfaces
e as suas descries. Para aproveitar todas as funcionalidades do ZenOSS, no entanto, ser
ainda necessrio, como no caso das mquinas, atribuir manualmente uma Classe a cada um
dos equipamentos descobertos.
Por fim, a configurao da alarmstica toda ela feita em ambiente grfico, o que uma
vantagem, mas ainda assim resulta numa das partes mais complexas e difceis de configurar no
ZenOSS.
Zabbix
O Zabbix uma soluo de cdigo aberto para monitorizao distribuda de pontos de rede e
monitoriza numerosos parmetros de rede, bem como a sade e integridade de servidores.
Usa um sistema de notificaes flexvel, que permite ao utilizador configurar alertas para
praticamente todo o tipo de eventos. O Zabbix tambm oferece uma ptima visualizao dos
dados e um excelente sistema de relatrios, o que o torna especialmente til no planeamento
da capacidade de uma rede de dados.
Dashboard do Zabbix
Como se configura?
Para instalar o Zabbix necessrio fazer duas coisas: instalar o servidor e instalar o agente.
Tanto para o servidor como para o agente, deve-se descarregar o ficheiro comprimido, criar o
utilizador, e o respectivo grupo, que vai correr o Zabbix, descomprimir os ficheiros e recursos,
criar a base de dados e popul-la e, finalmente, configurar, compilar e correr o instalador do
Zabbix e o do agente. De seguida, necessrio ainda preparar o resto do sistema, adicionando
as permisses e a definio das portas que o Zabbix vai utilizar para comunicar com o agente.
frontends/php/include/db.inc.php
$DB_TYPE ="MYSQL";
$DB_SERVER ="localhost";
$DB_DATABASE ="zabbix";
$DB_USER ="root";
$DB_PWD ="secret";
mkdir /home/zabbix/public_html
cp -R frontends/php/* /home/zabbix/public_html/
vi /etc/apache/httpd.conf
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
/etc/init.d/apache restart
Munin
O Munin uma ferramenta de monitorizao de recursos de rede que ajuda a analisar
tendncias e problemas do tipo o que que aconteceu para reduzir drasticamente a minha
performance de rede?.
Foi desenhado para ser extremamente Plug and Play e, por isso, uma instalao por
defeito capaz de gerar bastantes grficos com muito pouco trabalho por parte do
administrador da rede.
Tal como o Cacti, o Munin utiliza o RRDTool para apresentar os dados recolhidos em forma de
grfico atravs de um interface Web. Utiliza uma arquitectura cliente/servidor em que o
servidor requisita aos elementos monitorizados (clientes), em intervalos de tempo regulares, a
informao pretendida.
O Munin torna bastante simples detectar qual foi o problema quando existe uma degradao
da performance de rede e aferir com muita clareza qual a real utilizao de recursos mais
escassos.
Como se configura?
O Munin foi desenhado para ser uma ferramenta simples de usar, por isso no surpresa que
a instalao e configurao sejam tambm bastante simples.
[localhost.localdomain]
address 127.0.0.1
use_node_name yes
Existe ainda uma directoria plugins/ onde cada ficheiro uma ligao simblica para um plugin
real colocado em /usr/share/munin/plugins. Se um determinado plugin estiver presente na
directoria porque os parmetros que especifica vo ser verificados e sero gerados grficos
com a informao recolhida. importante no esquecer que depois de adicionar os plugins
necessrio ainda configurar no munin-node.conf os privilgios do utilizador e respectivo grupo
que o vai correr. Para verificar se a instalao do plugin foi bem sucedida, a maioria dos plugins
podem ser corridos na linha de comandos com o parmetro autoconf.
O Munin cria um cron atravs do ficheiro /etc/cron.d/munin que vai correr o /usr/bin/munin-
cron. Ao correr este ficheiro estamos na realidade a contactar cada um dos clientes, a recolher
a informao e a criar os grficos em /var/www/html que podem depois ser acedidos em
http://exemplo.de.maquina.com/munin.
Distributed
Name IP SLA Reports Logical Grouping Trending Trend Prediction Auto Discovery Agent SNMP Syslog Plugins Triggers / Alerts WebApp Inventory Data Storage Method License Maps Access Control IPv6
Monitoring
Cacti Sim Sim Sim Sim Via plugin No Sim Sim Sim Sim Controlo Total Sim Sim RRDtool, MySQL GPL Via Plugin Sim Sim
Nagios Via plugin Sim Sim No Via plugin Suportado Via plugin Via plugin Sim Sim Controlo Total Sim Via plugin Flat file, SQL GPL Sim Sim Sim
Zabbix Sim Sim Sim Sim Sim Suportado Sim Sim Sim Sim Controlo Total Sim Sim Oracle, MySQL, PostgreSQL,IBM DB2, SQLite GPL Sim Sim Sim
Verso livre
Zenoss Sim Sim Sim Sim Sim No Sim Sim Sim Sim Controlo Total Sim Sim ZODB, MySQL, RRDtool Sim Sim No
e comercial
Munin No No Sim Sem informaes No Sim Sim No Sim Parcial Visualizao Sem informaes Sem informaes RRDtool GPL Sem informaes Sem informaes Sim
Resumo comparativo
O Nagios a mais popular das aplicaes apresentadas o que, visto estarmos a falar de
aplicaes de cdigo aberto, implica que possui o maior nmero de plugins, tem mais
suporte tcnico e menos bugs;
O Nagios a mais antiga das aplicaes apresentadas. No foi, portanto, desenhada
para ser de fcil utilizao e configurao, nem tem algumas das opes e capacidades
que as ferramentas mais recentes j oferecem, como a possibilidade de prever
tendncias na rede por exemplo;
O Nagios no tem boa escalabilidade;
O Cacti ptimo como ferramenta de estatsticas e visualizao de tendncias de
uma rede de dados, produzindo grficos muito bonitos e completamente
costumizveis;
O ZenOSS no tem suporte para IPv6;
O Zabbix, apesar da melhoria que representa o seu ambiente grfico, de
configurao bastante complexa pelo que implica algum tempo de explorao e
habituao para se conseguir tirar partido de todas as suas capacidades;
O ZenOSS tem a possibilidade de descoberta automtica dos elementos de rede;
A grande vantagem do Cacti so as diferentes formas de apresentao da informao
que permitem tirar concluses muito interessantes acerca do funcionamento da rede;
O Nagios muito flexvel, sendo possvel integrar nele algumas das outras ferramentas
apresentadas;
O Cacti tem uma ptima definio de permisses. possvel criar um utilizador que
apenas tenha acesso a visualizar um determinado grfico numa determinada rvore;
O ZenOSS tem integrao com o Google Maps, o que permite uma melhor
visualizao de estado em redes geograficamente muito dispersas;
A verso cdigo aberto bastante limitada quando comparada com a verso
comercial;
O Zabbix produz grficos em real-time (os valores so recolhidos cada 30 segundos),
pelo que fcil apercebermo-nos de um eventual erro de configurao da
monitorizao;
O Zabbix guarda a informao recolhida numa base de dados. Assim, os perodos
durante os quais esta guardada so configurveis e tudo o que necessrio fazer
backup da base de dados;
O Zabbix tem ptima performance devido ao sistema de recolha de informao
atravs de um agente. O servidor apenas necessita de uma boa performance I/O e de
bastante memria para lidar com a base de dados;
O Zabbix difcil de configurar e depurar. necessria alguma pacincia para
apreender os conceitos em que se baseia, o interface Web tem inmeras opes, e o
programa nem sempre fornece informao acerca do estado dos seus processos;
O Munin muito simples de configurar e instalar, e a instalao por defeito produz
muitos grficos quase sem trabalho nenhum;
O Munin produz informao que torna mais simples detectar o que mudou na
eventualidade de um problema de rede;
O Munin foi desenhado com a simplicidade em vista, pelo que no muito poderoso.
Tem uma arquitectura de Plug-and-Play que permite que se instalem plugins com
bastante facilidade, mas que perde para outras ferramentas em termos de
configurabilidade.