Faculdade Santo Agostinho Coordenao de Ps-Graduao Curso de Ps-Graduao em Redes de Computadores
lmcduarte@yahoo.com.br
Resumo: Gerenciar redes nos dias de hoje uma tarefa muito complexa, e, devido a esta complexidade, vrias solues so criadas para auxiliar o profissional de gerencia em suas atividades. Levando em considerao que inmeras destas solues so proprietrias, e de como sai caro utilizar e manter as licenas para tais softwares percebe-se o enorme potencial dos softwares livres na rea de gerenciamento, sem deixar a desejar em relao qualidade. Como exemplo disto existe o Nagios, um software para gerncia remota de recursos.
Palavras-Chave: Gerenciamento de redes, software livre, Nagios, padres abertos.
Abstract: Nowadays the Network Management is a hard task, and because of the complexity of this task, a large number of solutions are created to hel the professionals, Considering that most of that solutions are private, and how expensive is to use private softwares, we can see the enormous potenctial of the open source softwares. An example is Nagios, a great service and network monitoring program. Keywords: Network Management, free software, Nagios, open source.
1- Introduo
O trfego de informaes dentro das redes vem crescendo continuamente, principalmente devido ao surgimento de novas aplicaes. Concorrentemente, novas tecnologias e padres proporcionam uma grande proliferao de dispositivos heterogneos conectados rede. E tornou-se um grande desafio manter o controle de um ambiente cada vez mais complexo e heterogneo. A necessidade de gerenciamento de redes vem fazendo com que, cada vez 2 mais, sejam pesquisadas e desenvolvidas novas tcnicas e abordagens para este tipo de problema. Como tudo que evolui o gerenciamento de redes, tambm est evoluindo e muitas coisas que alguns anos atrs eram "verdades" hoje j no so mais. Pontos que eram considerados importantes e de relevncia j no possuem a mesma importncia de antes. Assim, antigos conceitos esto sendo revistos, e novos esto surgindo, levando todos a reavaliar a forma que est sendo feito gerenciamento de redes hoje, e levantando perspectivas para o futuro.
2- Um pouco da historia do gerenciamento
At o incio da dcada de 1980, redes de computadores eram baseadas em arquiteturas e protocolos patenteados, a exemplo de System Network Architecture (SNA) da IBM e DECNET da Digital Equipment Corporation. J no final da dcada de 1980, redes interconectadas baseadas na arquitetura e protocolos TCP/IP estavam em franca ascenso. Porm, do ponto de vista da gerncia de tais redes, a situao ainda favorecia arquiteturas proprietrias, devido inexistncia de solues de gerncia de redes TCP/IP. O crescimento de redes TCP/IP ao longo da dcada de 80 aumentou consideravelmente as dificuldades de gerncia. Devido diversidade de equipamentos das modernas redes de dados, tornou-se necessrio unificar e padronizar as informaes de gerncia e o protocolo da administrao dessas redes. Para atender essa necessidade, dois protocolos principais surgiram: o SNMP (Simple Network Management Protocol) e o CSMIE/CMP (Common Management Information Service Element/Common Management Information). A simplicidade do SNMP facilitou sua incluso em equipamentos de interconexo. No final da dcada de 1990, a soluo SNMP j era to difundida que se estabelecera como padro de gerncia de redes de computadores. Hoje, praticamente todos os equipamentos de interconexo do suporte a SNMP, bem como muitos outros dispositivos (nobreaks, modems etc.), e sistemas de software (servidores Web, sistemas de bancos de dados etc.). SNMP, alm da parte mais importante para o gerente de rede: a informao de gerncia, presente na forma de Management Information Bases (MIBs).
Apenas durante o ano de 1993, foram publicadas 11 RFCs definindo revises para o SNMP e dando incio ao padro SNMPv2, sendo o primeiro, o RFC 1441 [Case et al 1993]. Esta srie de revises trouxe consigo grandes avanos que foram 3 incorporados ao protocolo original. Tais avanos podem ser classificados de acordo com as seguintes categorias:
Estrutura de informao;
Primitivas de comunicao (PDUs);
Comunicao gerente-gerente e gerenciamento hierrquico;
Segurana.
A estrutura de informao de gerenciamento (SMIv2) para o SNMPv2 mais elaborada, e eliminou ambigidades nas definies dos objetos encontrados nas especificaes anteriores.
Apesar do SNMP em si ser relativamente "simples", h um certo trabalho para dar suporte a uma MIB no agente. H ainda mais trabalho para construir o suporte de gerenciamento para utilizar os dados da MIB, e ainda um pouco mais quando se fala em desenvolver o gerenciamento nas vrias plataformas existentes para gerenciamento de redes.
Na eterna batalha de se tentar manter estveis as redes, surgem diversas pesquisas, modelagens e implementaes de solues rebuscadas para a automatizao de processos gerenciais e, obviamente carssimos softwares proprietrios. No entanto, existem alternativas essas solues, que so os softwares livres.
3-O Uso de Software Livre
Software livre" se refere liberdade dos usurios executarem, copiarem, distriburem, estudarem, modificarem e aperfeioarem o software. Mais precisamente, ele se refere a quatro tipos de liberdade, para os usurios do software:
A liberdade de executar o programa, para qualquer propsito (liberdade n. 0)
A liberdade de estudar como o programa funciona, e adapt-lo para as suas necessidades (liberdade no. 1). Acesso ao cdigo-fonte um pr-requisito para esta liberdade. A liberdade de redistribuir cpias de modo que voc possa ajudar ao seu prximo (liberdade no. 2). 4 A liberdade de aperfeioar o programa, e liberar os seus aperfeioamentos, de modo que toda a comunidade se beneficie (liberdade no. 3). Acesso ao cdigo-fonte um pr-requisito para esta liberdade.
Um programa software livre se os usurios tem todas essas liberdades. Portanto, voc deve ser livre para redistribuir cpias, seja com ou sem modificaes, seja de graa ou cobrando uma taxa pela distribuio, para qualquer um em qualquer lugar. Ser livre para fazer essas coisas significa (entre outras coisas) que voc no tem que pedir ou pagar pela permisso. Voc deve tambm ter a liberdade de fazer modificaes e us-las privativamente no seu trabalho ou lazer, sem nem mesmo mencionar que elas existem. Se voc publicar as modificaes, voc no deve ser obrigado a avisar a ningum em particular, ou de nenhum modo em especial.
A liberdade de utilizar um programa significa a liberdade para qualquer tipo de pessoa fsica ou jurdica utilizar o software em qualquer tipo de sistema computacional, para qualquer tipo de trabalho ou atividade, sem que seja necessrio comunicar ao desenvolvedor ou a qualquer outra entidade em especial.
A liberdade de redistribuir cpias deve incluir formas binrias ou executveis do programa, assim como o cdigo-fonte, tanto para as verses originais quanto para as modificadas. Est ok se no for possvel produzir uma forma binria ou executvel (pois algumas linguagens de programao no suportam este recurso), mas deve ser concedida a liberdade de redistribuir essas formas caso seja desenvolvido um meio de cria-las. De modo que a liberdade de fazer modificaes, e de publicar verses aperfeioadas, tenha algum significado, deve-se ter acesso ao cdigo-fonte do programa. Portanto, acesso ao cdigo-fonte uma condio necessria ao software livre.
Para que essas liberdades sejam reais, elas tm que ser irrevogveis desde que voc no faa nada errado; caso o desenvolvedor do software tenha o poder de revogar a licena, mesmo que voc no tenha dado motivo, o software no livre.
Muitas vezes esquecemos os princpios bsicos que determinam a estabilidade de uma rede e nos entregamos s falsas necessidades impostas pela indstria de softwares. Algumas caractersticas se mostram importantes para a 5 manuteno de uma rede de computadores. Podemos citar:
Independnci a de fornecedor
Empresas no duram pra sempre. Algumas solues tornam-se obsoletas e no encontram sustentabilidade por dependerem de um s fornecedor. Aquele apliance que faz a anlise de trfego de sua rede hoje, e que roda um sistema proprietrio numa caixa preta, pode se transformar em lixo no dia em que seu fabricante fechar as portas. interessante obter um hardware que siga padres estabelecidos, e que seja suportado por diferentes sistemas operacionais. Utilizao de padres abertos
Algum montaria sua rede corporativa implementando uma soluo no compatvel com o TCP/IP? Este o caso mais absurdo, mas podemos us-lo para fazer analogia a outras implementaes, a exemplo do SNMP (Simple Network Management Protocol), que um protocolo para gerncia de redes bastante popular, com especificao aberta e em constante evoluo. Mesmo assim alguns fabricantes empurram seus protocolos de gerncia, e algumas pessoas pagam caro (nos dois sentidos) por isso. Alguns fabricantes fazem pior. Empacotam protocolos estabelecidos num rtulo com sua assinatura. Baixo custo de implementao
Montar uma rede no barato. A infraestrutura custa caro, a implantao custa caro e o suporte custa caro. O software pode custar caro tambm, mas essa uma escolha sua. Existem excelentes softwares livres para monitorar e gerenciar recursos de uma rede. Com sua adoo, dois aspectos referentes ao custo so atacados: custo de suporte, que agora descentralizado e custo com licena, que zero. Bons softwares
Bons softwares de gerncia e monitoramento devem prever situaes indesejveis na rede, e quando possvel tomar as aes preventivas pelo administrador. Uma interface clara e a centralizao das informaes so tambm caractersticas importantssimas para a gerncia da rede. A independncia de plataforma essencial. muito difcil encontrar uma rede homognea nos quesitos software e hardware. A que geralmente somos ludibriados com programas que se dizem multi-plataformas. muito raro um 6 software proprietrio atender a esse requisito. Geralmente encontramos uma soluo multi-plataforma porque que roda em Windows{XP,2000,NT,etc.}e no mximo num redhat7.2 ou FreeBSD4.3. Para um bom gerenciamento existem trs preocupaes bsicas que um administrador de redes deve ter: 1- Gerncia de Falhas
Aqui temos as tarefas de (1) Identificar a falha, (2) Isolar a falha e (3) Corrigir a falha. uma das tarefas mais importantes para deixar uma rede com um bom nvel de confiabilidade. tambm uma tarefa complexa, necessita de ferramentas bastante escalveis e de preferncia que automatizem ao mximo o processo, desde a identificao at a correo de uma falha.
2- Gerncia de Desempenho
Muito importante para (1) evitar o mau uso da rede e (2) prover uma capacidade de planejamento. Gerenciar o desempenho dos recursos de uma rede muito importante para identificar quais deles devem ser revisto a propsito de upgrades, ou mesmo de diminuio de custos (largura de banda desnecessria, por exemplo). Essencial tambm para detectar atividades ilcitas na rede, como por exemplo a deteco de utilizao dos recursos durante perodos em que no deveria existir (nas madrugadas, por exemplo).
3 - Configurao Centralizada
A centralizao das informaes, tal como seu correlacionamento uma caracterstica muito importante para a administrao de uma rede. Uma interface simples de se manipular essencial quando se trata de dados complexos e provenientes de variadas localidades. Aps a consolidao da WEB ficou muito mais fcil produzir ambientes de gerncia (NMS) remotos multi-plataforma e amigveis. Criou-se ento uma forte independncia de GUIs proprietrios, possibilitando a gerncia remota em qualquer sistema conectado rede.
Frente a essas preocupaes, o software livre tornou-se nos ltimos anos uma alternativa econmica e financeiramente vivel ao modelo atual de licenciamento de software e a sua poltica abusiva de renovao constante de 7 licena e atualizao de hardware. O software livre passa a ser uma soluo para as milhes de cpias de software piratas que existem espalhados pelo Brasil e pelo mundo. Dentro deste contexto, mostraremos uma ferramenta especificamente, o
NAGIOS, um software livre usado no gerenciamento de redes.
4- Nagios, software livre para gerncia remota de recursos
O NAGIOS um software para gerncia de recursos, um poderoso monitor de rede. Com ele, possvel monitorar e gerenciar os recursos de hosts, tai como sua carga de processamento, utilizao de memria, tempo de resposta, utilizao de banda, etc., atestar o funcionamento adequado dos equipamentos e servios. Tambm possui um ambiente WEB capaz de gerar mapas da rede, relatrios e grficos online e possvel criar grupos de usurios para receber relatrios e alertas do sistema e executar aes sobre os problemas da rede ou hosts monitorados.
Algumas caractersticas do Nagios:
Monitora servios de rede
Monitora recursos de hosts
Define hierarquia da rede
Sistema inteligente de notificaes
Alertas para pagers, email, celular, etc;
Possibilidade de implementao de servidores de monitoramento distribudos e redundantes. Interface WEB capaz de informar sobre status de redes, hosts, servios, logs, notificaes. mapas da rede 2D e 3D Relatrios, integrao com BDs, etc
O requisitos para rodar o Nagios so: uma maquina rodando um sistema operacional Linux (ou qualquer variao UNIX); um compilador C; e provavelmente ter TCP/IP configurado, um servidor web e uma biblioteca GD, atualizada, para a gerao de grficos. 8
4.1- Obtendo e instalando o Nagios
O software est disponvel no site : http://www.nagios.org/download, e antes de comear a usa-lo interessante que seja lida a documentao, para que os conceitos que so utilizados na configurao do sistema fiquem bem claros.
Os passos para instalao do Nagios sero os seguintes:
1- Instalar o Nagios
2- Instalar o Nagios-plugins
3- Configurar o servidor WEB
4- Configurar o Nagios
4.2 Instalao do Nagios
1- Descompacte o arquivo com o cdigo fonte, use o comando:
4-A compilao ser bsica, sem suporte a banco de dados, para isso so necessrios os comandos: ./configure --prefix=/usr/local/nagios --with-nagios-user=nagioswith- nagios-grp=nagios--with-cgiurl=/nagios/cgi-bin--ithhtmurl=/nagios( parmetros para compilao ) make all -s ( criao de binrios )
make install -s ( instalao de binrios )
make install-init -s ( instalao de script de inicializao )
make install-config -s ( instalao de exemplos de configurao no diretrio
/usr/local/nagios/etc )
Aps a instalao sero criados os diretrios abaixo:
/usr/local/nagios
bin/ ( Arquivos binrios do Nagios )
etc/ ( Diretrio de Configurao ) 11
sbin/ ( CGI's )
share/ ( Arquivos HTML )
var/ ( Diretrio de logs )
4.2 Instalao do Nagios-plugins
Descompacte o arquivo com o cdigo fonte, use o comando:
tar xzvpf nagios-plugins-1.3.1.tar.gz
Antes de iniciar a instalao ALTAMENTE recomendvel ler o arquivo REQUIREMENTS para verificar quais os requisitos dos plugins. Para compilar use o seguinte parmetro: ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios
--with-nagios-grp=nagios
Verifique se no est faltando algum componente para os plugins. Caso esteja faltando algum ir aparecer uma mensagem com o link para download e instalao.
make all -s ( criao de binrios )
make install -s ( instalao de binrios )
Aps a instalao ser criado o diretrio abaixo:
- /usr/local/nagios
libexec/ ( Arquivos de Plugins do Nagios )
4.2 Configurando o servidor web
Para acessar o Nagios via web, necessrio adicionar a seguinte configurao no httpd.conf do apache: ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin/
< Directory "/usr/local/nagios/sbin/" > AllowOverride AuthConfig Options ExecCGI Order allow,deny Allow from all < /Directory >
Alias /nagios/ /usr/local/nagios/share/
< Directory "/usr/local/nagios/share" > 12
Options None AllowOverride AuthConfig Order allow,deny Allow from all
< /Directory >
Depois necessrio criar o arquivo com usurio e senha, para isso use o comando abaixo: htpasswd -c /usr/local/nagios/etc/htpasswd.users usuario
chown apache:apache /usr/local/nagios/etc/htpasswd.users (verifique qual o usurio e grupo do apache) 4.2 Confi gurando o Nagi os
No h complexidade alguma nesse processo, porm deve-se estar atento que os arquivos de configurao do Nagios devem estar em sintonia. A primeira boa prtica agora gerar os arquivos-exemplo de configurao do Nagios, entrando no diretrio que contm os fontes (aquele que voc executou o make) e executar o seguinte comando: make install-config
Antes de iniciar a configurao iremos fazer uma cpia dos arquivos originais): cd /usr/local/nagios/etc mkdir original mv *.cfg-sample original
for i in *cfg-sample; do mv $i `echo $i|sed -e s/cfg-sample/cfg/`; done;
Depois iremos copiar somente os arquivos necessrios:
Nele ficam as configuraes de utilizao de arquivos cgi pelo Nagios. Devem ser configurados os parmetros de autorizao de utilizao da 13
interface Web. Altere os campos para o nome do usurio cadastros no arquivo /usr/local/nagios/etc/htpasswd.users e assim tero acesso ao sistema, os parmetros so: authorized_for_system_information=usuario1, usuario2 authorized_for_configuration_information=usuario1, usuario2 authorized_for_system_commands= usuario1, usuario2 authorized_for_all_services=usuario1, usuario2 authorized_for_all_hosts=usuario1, usuario2 authorized_for_all_service_commands=usuario1, usuario2 authorized_for_all_host_commands=usuario1, usuario2
2. CHECKCOMMANDS.CFG
Configurao dos plugins que esto no diretrio
/usr/local/nagios/libexec. Basta adicionar o plugin e seus parmetros.
3. MISCCOMMANDS.CFG
Definio de algums comandos, tais como envio de e-mail, envio de pager, etc ...
4. NAGIOS.CFG
Arquivo com as configuraes principais. O padro bem completo, somente altere os parmetros: check_external_commands=0 -> check_external_commands=1 date_format=us -> date_format=euro
5. RESOURCE.CFG
Configurao de parmetros de recursos. Por padro vem definido qual o caminho dos plugins. Pode ser setadas variveis para serem utilizadas nos arquivos CHECKCOMMANDS.CFG e MISCCOMMANDS.CFG.
6. TIMEPERIODS.CFG
Arquivo com os horrios pr-definidos para checagem de servios e/ou servidores. muito til para avisos para diferentes grupos. 14
Configurando usurios e grupos de usurios
Existem dois arquivos que se referem a essa tpico. So eles:
contactgroups.cfg e contacts.cfg. Abaixo cada um deles explicados. contacts.cfg define contact{ contact_name login alias Nome do Usuario service_notification_period Periodos definidos em TIMEPERIODS.CFG host_notification_period Periodos definidos em TIMEPERIODS.CFG service_notification_options w,u,c,r ( w=warning / u=unknown / c=critical / r=recoveries / n=none)
#Definicao do 'servidor1' define host{ use generic-host address IP do Servidor alias Nome do Servidor check_command Comando a ser efetuado ( funcao do services.cfg)
host_name Host_Name_do_servidor
}
hostgroups.cfg
define hostgroup{ hostgroup_name nome_do_grupo alias Descricao do Grupo contact_groups grupos_que_fazem_parte
members membros_que_fazem_parte
}
Cri ando os arquivos dependencies.cfg e escal ations.cfg
Utilize o comando abaixo para criar os dois arquivos pelo primeira vez.
necessrio para iniciar o Nagios:
touch /usr/local/nagios/etc/dependencies.cfg touch /usr/local/nagios/etc/escalations.cfg Tambm necessrio criar o diretrio abaixo:
mkdir -p /usr/local/nagios/var/rw
chown nagios:nagios -R /usr/local/nagios/var/rw
Iniciando o Nagi os 16
Aps as configuraes necessrio iniciar o Nagios. Utilize o comando abaixo para verificar se est correto os arquivos: /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Se tudo estiver certo, inicie o Nagios com o comando:
Assim ser iniciado como daemon. No esquea que foi criado o arquivo de inicializao no diretrio /etc/rc.d/init.d/nagios.
5- Consideraes Finais
Podemos sentir hoje o grande potencial do software livre nas diversas reas, e no seria diferente na gerncia e segurana de redes/sistemas. A evoluo dos equipamentos empregados e a maior dependncia dos negcios na agilidade e confiabilidade deste meio de comunicao faz com que a rea de gerenciamento cresa e oferea um enorme potencial futuro. Assim como o Nagios, que oferece muitos recursos de monitoramento,existem, e esto surgindo a cada dia, vrias outras solues livres para auxiliar a complexa tarefa de gerenciar uma rede, como o CACT( monitoramento de recursos), o NTOP (analisador de trfego), e vrios outros que esto disponveis para a comunidade que deseja utilizar softwares livres. Toda esta evoluo juntamente com a popularizao dos softwares livres ajuda a auxiliar o profissional de gerencia e aumenta o leque de opes na hora da escolha dos softwares para gerenciamento das redes.
17
Referncia Bibliogrfica
TANEMBAUM, Andrews S.: traduo Vandenberg D. de Souza. Redes de Computadores. 4. ed.. Rio de J aneiro: Elsevier, 2003.
COMER, Douglas E., STEVENS, David L. Interligao em Rede com TCP/IP. 3.ed.. Rio de J aneiro: Campus, 1999.
Monitoramento Inteligente com o Nagios. Disponvel em: <http://www.opencode.com.br/modules.php?name=News&file=article&sid=376>. Acesso em 27 maio 2005.
Simple Network Management Protocol (SNMP). Disponvel em: <http://www.teleco.com.br/tutoriais/tutorialsnmp/pagina_1.asp>Acesso em 25 maio 2005.
Gerenciamento de Redes TCP/IP. Disponvel em: <http://www.rnp.br/newsgen/9712/gerencia.html>Acesso em 24 maio 2005.
Sistemas TTS: Uma abordagem voltada para Sistemas de Gerenciamento de Redes. Disponvel em: <http://www.rnp.br/_arquivo/wrnp2/2003/oscfa04a.pdf> Acesso 23 maio 2005.