Documente Academic
Documente Profesional
Documente Cultură
Aprenda como implementar um completo monitoramento do parque computacional e da rede de sua empresa, de maneira profissional PAULO ROBERTO JUNIOR HTTP://WWW.PAULOJR.INFO Em um ambiente profissional buscamos a excelncia em tudo, cada procedimento, recurso deve ser analisando de forma precisa e correta, cada segundo pode ser precioso, para uma tomada de deciso, rotinas alteradas, todo uma malha de sistemas e servios alterados. Monitorar atualmente uma das principais ferramentas de gerenciamento em uma empresa. Uma empresa com cerca de centenas de servidores e equipamentos de rede, jamais teria controle sem monitorar e estar atrasada na tomada de deciso, aps uma falha.
O Que o Nagios?
Uma poderosa ferramenta para monitoria, utilizada segundo estimativas dos desenvolvedores do projeto, de mais de 250 mil usurios em todo o mundo. O Nagios foi originalmente criado sob o nome de Netsaint, atualmente mantido por Ethan Galstad, junto com um exrcito de desenvolvedores que ativamente mantm plugins oficiais e no-oficiais. Software livre, portanto seu acesso completo ao cdigo fonte, com mais de 10 anos de desenvolvimento no projeto, tornando-se um software maduro e bem estruturado. Com uma comunidade muito ativa, o suporte a problemas e dvidas se torna uma tarefa fcil e progressiva, j que aps cada obstculo uma nova idia surge e por sua vez a soluo. Com esta ferramenta podemos monitorar computadores, servidores, impressoras em rede, servios providos pela empresa, e todos equipamentos que interligam uma rede.
Monitoria compreensiva: Provem monitorar uma infra-estrutura de misso crtica, onde aplicaes, servios, sistemas operacionais, protocolos de rede, e todo equipamento interligado a rede. Visibilidade: Viso centralizada de todo o funcionamento e falhas da infra-estrutura. Alerta: Caso ocorra qualquer falha na infra-estrutura a equipe de T.I seja informada via e-mail e at SMS (Mensagens de Texto) de forma instantnea ou agendada. Correo de Falhas: Permite um servio ou todo um sistema seje reiniciado, quando h uma falha, ou quando so detectados problemas em outros equipamentos Capacidade de Planejamento: Auxilia a equipe no planejamento de qual deciso deve ser tomada de maneira lgica, evitando surpresas desagradveis. Relatrios: Capacidade de gerar relatrios com histricos de falhas e normalizao, notificaes e alertas para uma future anlise.
Arquitetura expansiva: Esta ferramenta funciona tanto em casa, empresas pequenas ou grandes corporaes com centenas de servidores. Expansividade: Com a contribuio de colaboradores do mundo inteiro, novos plugins que so as extenses do nagios surgem a cada dia e de acordo com a necessidade.
Implementao
Primeiramente devemos possuir um computador que ir atuar como nosso servidor nagios. Qualquer configurao bsica que suporte um sistema operacional baseado em linux com kernel 2.4 perfeitamente compatvel para se implementar. O leitor pode escolher a vontade seu sistema operacional baseado em linux, no h restries. Este artigo e todos seus testes, foram realizados com Ubuntu verso 8.10, Red Hat AS verso 4 e Slackware verso 12.0. Efetue a instalao padro do UBUNTU 8.10, bem como configure rede e acesso a internet por este servidor. No ser abordada neste artigo a instalao completa do sistema operacional, que encontrada em outros artigos. Mas mesmo assim caso deseje nos envie um e-mail. 1 Acesse o terminal de sua preferncia, em modo grfico ou modo texto 2 Digite os comandos: [paulo@devmedia] sudo apt-get update ( Atualiza sua lista de repositrios ) [paulo@devmedia] sudo apt-get upgrade (Atualiza os pacotes que achar necessrio ) Obs: o comando sudo no precisa ser usado caso esteja usando o usurio root. 3 Instalao do servidor Apache e recursos extras: [paulo@devmedia] sudo apt-get install build-essential
Figura 1. O commando apt-get install build-essencial conforme mostrado na figura, ela efetua a instalao e seus dependncias de compiladores em linguagem C, C++ bem como um conjunto de bibliotecas no Linux para efetuarmos compilaes e instalaes de softwares futuramente, essencial tanto para o nagios, bem como para qualquer outro software.
[paulo@devmedia] sudo apt-get install apache2 python openssl phpmyadmin php5 Este procedimento realiza a instalao e suas dependncias do servidor web apache com suporte a php5. Ao aparecer a tela de opes, marque a opo apache2, pois este servidor que iremos implementar. [paulo@devmedia] sudo apt-get install php-pear php5-gd php5-xsl curl libcurl3 php5curl 4 Aps o download e instalao, precisamos testar se o apache esta funcional. Abra seu navegador(browser) preferido, e digite no campo de endereo(url): http://localhost - caso esteja abrindo o navegador do seu servidor http://ip_do_servidor onde ip_do_servidor deve ser substitudo pelo IP do servidor. Ex: 192.168.0.10, 192.168.50.190, 10.10.0.1.
Figura 2. Mensagem de retorno informando que nosso servidor web Apache esta funcional.
5 Instalao do nagios via pacote binrio(fonte). No utilizaremos o gerenciador de pacotes APT-GET para efetuar a instalao do nagios, pois o mesmo camufla os passos da instalao, podendo aumentar as chances de erros no momento da implementao do nagios. Caso prefira arriscar, basta usar o comando apt-get install nagios3, que o mesmo gerenciador de pacotes concluir todo o processo de instalao. 5.1 - Acesse o terminal de sua preferncia, em modo grfico ou modo texto 5.2- Adicione os usurios e grupos: [paulo@devmedia] sudo useradd nagios [paulo@devmedia] sudo useradd nagcmd [paulo@devmedia] sudo groupadd nagios [paulo@devmedia] sudo groupadd www-data
[paulo@devmedia] sudo mkdir /usr/local/nagios [paulo@devmedia] sudo usermod -g nagios nagios [paulo@devmedia] sudo usermod -g nagcmd nagios [paulo@devmedia] sudo usermod -g www-data nagcmd 5.3- Efetue o download do nagios, em sua ltima verso estvel, na data em que este artigo publicado, refere-se a 3.20, cujo o link : http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.0.tar.gz Salve o download em /opt/, e descompacte o pacote. [paulorobertojunior@devmedia] sudo tar xvfz nagios-3.2.0.tar.gz [paulorobertojunior@ devmedia] cd nagios-3.2.0 5.4 Configurar ,compilar e instalar o nagios [paulo@devmedia] sudo ./configure --with-command-group=www-data
Figura 3. Esta a tela aps efetuarmos o comando anterior, que configura e prepara o o nagios para ser compilado e instalado.
[paulo@devmedia] sudo make all Este procedimento, efetua a compilao do pacote binrio do nagios, para ser instalado. [paulo@devmedia] sudo make install
Figura 4. Esta a tela aps efetuarmos o comando anterior, que instala o nagios, note que nesta tela informado os prximos passos, para completarmos a instalao do nagios.
[paulo@devmedia] sudo make install-init [paulo@devmedia] sudo make install-config [paulo@devmedia] sudo make install-commandmode
Figura 5. Esta a tela aps efetuarmos o comando anterior, termina de criar e configurar os arquivos de configurao do nagios em sua maioria no formato bsico, de exemplo.
5.5 - Copie todo o contedo da pasta contrib para /usr/local/nagios/libexec [paulo@devmedia] cd /opt/nagios-3.2.0/contrib/ [paulo@devmedia] sudo cp -Rf * /usr/local/nagios/libexec 6 - adicione o nagios no apache [paulo@devmedia] sudo vim /etc/apache2/apache2.conf Obs: Caso no possua o editor de texto VIM, instale usando o comando [paulo@devmedia] sudo apt-get install vim Adicione no final do arquivo de configurao (aps a ltima linha) #####################INICIO- PAINEL NAGIOS###################### ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin <Directory "/usr/local/nagios/sbin"> Options ExecCGI AllowOverride None Order allow,deny Allow from all AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users require valid-user </Directory> Alias /nagios /usr/local/nagios/share <Directory "/usr/local/nagios/share"> Allow from all AuthName "Nagios Access" AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users require valid-user </Directory> ################## ###FIM- PAINEL NAGIOS ########################
Figura 6. Assim que seu arquivo deve ser mostrado, aps edit-lo.
Obs: se voc gosta de deixar sempre seu arquivo de configurao do apache bem enxuto e organizado, vai a dica, de no precisar encher de linhas o apache2.conf, basta criar um arquivo de configurao em pasta separada, pois h uma linha no apache2.conf que interpreta todo e qualquer arquivo de configurao em uma pasta: Exemplo no apache2.conf: # Include generic snippets of statements Include /etc/apache2/conf.d/ 1 Crie um arquivo nagios.conf com todas as linhas que voc iria colocar no apache2.conf. [paulo@devmedia] sudo vim /etc/apache2/conf.d/nagios.conf Pronto, basta reiniciar o servio do apache2, que tudo estar Ok. sudo /etc/init.d/apache2 restart 5.7 Autenticao do nagios [paulo@devmedia] sudo htpasswd New password: Re-type new password: senha_nagios
-c
htpasswd.users
nagiosadmin senha_nagios
Obs: htpasswd.users - o arquivo responsvel por armazenar o usurio e a senha criptografada que ter acesso ao Nagios. 6 - Teste se os arquivos de configuraes esto corretos: sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg Caso receba a confirmao de ok, perfeito, o Nagios esta instalado.
Figura 7. Esta a tela aps efetuarmos o comando anterior, nele verificado se h erros nos arquivos de configurao e em todo o sistema do nagios.
configurao
localizados
em
No poderei mencionar todos os erros possveis, pois eles podem variar, aconselho muita calma e ler linha a linha o arquivo de configurao com erro. Em anos de experincia, o mais comum /usr/local/nagios/etc/objects/localhost.cfg e outros no mesmo diretrio. 7 Teste se o painel do nagios j se encontra funcional, atravs de seu navegador preferido, acesse: http://ip_do_servidor/nagios
Figura 8. Pagina inicial do seu servidor nagios, todo seu acesso, bem como o painel de controle, relatrios, avisos, so encontrados nesta rea.
http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins1.4.14.tar.gz Descompacte o pacote nagios-plugins-1.4.14.tar.gz usando o comando : [paulo@devmedia] sudo tar xvfz nagios-plugins-1.4.14.tar.gz Acesse a pasta nagios-plugins-1.4.14 [paulo@devmedia] cd /opt/nagios-plugins-1.4.14 [paulo@devmedia] sudo ./configure [paulo@devmedia] sudo make all
Figura 9. Efetuando a compilao via fontes dos plugins do nagios, sem eles o nagios no poderia monitorar nada.
[paulo@devmedia] sudo make install 12 - reinicie o nagios em sudo /etc/init.d/nagios restart 13 J podemos testar a funcionalidade do nagios, acessando atravs de seu navegador preferido
Figura 10. Parabns!! Esta tela demonstra que voc j consegue monitorar pelo menos um computador ou servidor. No se esquea de editar e aprender com calma todos os arquivos de configurao do nagios, so poucos mais bem detalhistas.
##################################################################### ##### # HOST DEFINITION ##################################################################### ###### define host{ use linux-server ; Name of host template to use ; This host definition will inherit all variables that are defined ; in (or inherited by) the linux-server host template definition. host_name localhost alias localhost address 192.168.10.11 } # HOST GROUP DEFINITION ##################################################################### #### # Define an optional hostgroup for Linux machines define hostgroup{ hostgroup_name servidores-linux ; The name of the hostgroup alias Servidores Linux ; Long name of the group
members localhost,squid,server2,server3,dbserver,server4,samba,saopaulo,newyork ; Comma separated list of hosts that belong to this group } nela voc define grupos e quem pertence a este grupo, no caso os servidores. 3 Esta ultima seo tambm muito importante, pois determina quais servios iro ser checados para cada servidor. # SERVICE DEFINITIONS ##################################################################### ##### #####->PING<-####### define service{ use local-service ; Name of service template to use host_name localhost service_description PING check_command check_ping!100.0,20%!500.0,60% } Existem dezenas de servios, escolha qual lhe atende e copie e cole, para acrescentar mais funes. No se esquea de alterar o campo host_name, com seu computador a ser monitorado. Detalhe importante: Evite apagar os parmetros e linhas, de preferncia apenas comente-as, pois vai lhe salvar de muitos problemas futuros. Dica: Como posso adicionar mais servidores, ou computadores a serem monitorados neste mesmo arquivo localhost.cfg? Simples, copie e cole logo abaixo do final da sesso HOST DEFINITION, e altere os parmetros desejados, como host_name, alias e adress, conforme o exemplo abaixo: define host{ use linux-server ; Name of host template to use ; This host definition will inherit all variables that are defined ; in (or inherited by) the linux-server host template definition. host_name SERVIDOR2 alias SERVIDOR2-ANDAR address 192.168.50.60 } E assim por diante. No se esquea das outras alteraes, na sesso HOST GROUP, e SERVICE DEFINITIONS, nela o seu novo servidor deve ser informado, conforme o exemplo abaixo: #HOST GROUP # Define an optional hostgroup for Linux machines define hostgroup{ hostgroup_name servidores-linux ; The name of the hostgroup alias Servidores Linux ; Long name of the group members localhost,SERVIDOR2 } # SERVICE DEFINITIONS
#####->PING<-####### define service{ use local-service ; Name of service template to use host_name SERVIDOR2 service_description PING check_command check_ping!100.0,20%!500.0,60% } Aps alterar o arquivo, salve-o, e reinicie o servio do nagios Sudo /etc/init.d/nagios restart
Figura 13. Painel mostrando todos os computadores, servidores que o nagios esta monitorando, nesta imagem vemos que 3 deles esto com status ruim(DOWN), 1 com status perfeito(UP) e 1 com status ainda pendente de monitoria(PENDING).
A estrutura e sintaxe dos outros arquivos de configurao que so usados para monitorar, impressoras de rede, roteadores, e at outros computadores a mesma, de qualquer forma vamos exemplificar cada um deles, passo a passo, ao longo do artigo No necessrio inserir muitos servidores no arquivo localhost.cfg, voc pode criar um arquivo chamado servidores_1andar.cfg e inserir todos seus computadores e/ou servidores. Aps a criao deste arquivo, deve se inserir uma linha informando a existncia deste arquivo em nagios.cfg (/usr/local/nagios/etc/nagios.cfg), lembre-se que neste arquivo de configurao ficam informados onde esto localizados as outras configuraes. Exemplo da linha a ser adicionada: cfg_file=/usr/local/nagios/etc/objects/servidores_1andar.cfg
Uma funo importante do nagios a de aviso de que alguma falha esta ocorrendo, o aviso pode ser por envio de email, para isto, precisamos configurar um arquivo chamado contacts.cfg, nele inserido as pessoas que sero contatadas, email, grupos. Arquivo contacts.cfg Este arquivo de extrema importncia, pois ele define quem ser avisado caso acontea algo com alguma mquina, servidor, impressora e roteadores. # CONTACTS # Just one contact defined by default - the Nagios admin (that's you) # This contact definition inherits a lot of default values from the 'generic-contact' define contact{ contact_name nagiosadmin ; Short name of user use generic-contact ; Inherit default values from genericcontact template (defined above) alias Administrador do Nagios ; Full name of user email email@empresa.gov.br, email2@empresa.com.br ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** } # CONTACT GROUPS Define o nome do grupo bem como seus contatos do grupo. # We only have one contact in this simple configuration file, so there is define contactgroup{ contactgroup_name admins alias Nagios Administrators members nagiosadmin }
# SERVICE DEFINITIONS Define os servios. # Todos esses servios bem como seus plugins, necessitam do software NSClient++, que sera comentado em seguida. define service{ use generic-service host_name winserver service_description NSClient++ Version check_command check_nt!CLIENTVERSION }
NSClient++
preciso instalar um software para habilitar que computadores baseados em windows, sejam monitorados pelo nagios. Pode ser efetuado o download em : http://files.nsclient.org/x-0.3.x/NSClient%2B%2B-0.3.7-Win32.msi O procedimento de instalao idntico a todo programa no windows, bastando ficar atento a alguns detalhes, como ip do servidor nagios, e habilitar os plugins, conforme a imagem abaixo:
Figura 14. Tela de configurao antes de instalar o NSClient++, lembre-se de colocar o ip do seu servidor nagios.
Figura 15. Tela aps efetuar a instalao do NSClient++, marque a opo Start service para que seja iniciado o servio no windows.
Aps efetuada a instalao, podemos testar se o nagios j o reconhece, conforme a imagem abaixo:
Figura 16. Painel do nagios, mais precisamente em foco no servidor Windows que agora esta sendo monitorado pelo nagios, graas ao servio do NSClient++.
Impressoras de rede
H um espao para monitorar impressoras de rede, que fica separado no arquivo de configurao printer.cfg, sua estrutura idntica aos demais, bem fcil. ######Arquivo printer.cfg####### # HOST DEFINITIONS Definio de host, ip, grupo define host{ use generic-printer ; O template usado no nagios host_name Canon iPR Server T1 Ver1.0 ; Nome da impressora alias Canon iPR Server T1 Ver1.0(impressora_colorida) ; O apelido da impressora, que ser mostrado no nagios address 192.168.80.50 ; Ip da impressora hostgroups network-printers ; Nome do grupo de onde ela pertence } # HOST GROUP DEFINITIONS Definio do grupo, nomes. define hostgroup{ hostgroup_name network-printers ; The name of the hostgroup alias Impressoras REDE ; Long name of the group } #SERVICE DEFINITIONS Define os servios a serem checados define service{ use generic-service host_name Canon iPR Server T1 Ver1.0 service_description PING check_command check_ping!3000.0,80%!5000.0,100% normal_check_interval 10 retry_check_interval 1 }
Switches e Roteadores
Em toda rede h sempre a presena de switches e roteadores, afim de interligar as redes e equipamentos. O Nagios tambm pode monitorar o status desses componentes. Arquivo switch.cfg - /usr/local/nagios/etc/objects/switch.cfg # HOST DEFINITIONS Definies de nome, ip, alias, grupo # Define the switch that we'll be monitoring define host{ use generic-switch ; Template host_name roteador_espanha ;Nome do roteador alias Roteador espanha ; Apelido do roteador address 192.168.75.5 ; IP do roteador hostgroups roteadores ; Nome do grupo em que este roteador pertencer } # HOST GROUP DEFINITIONS Definies de grupo, nome. # Create a new hostgroup for switches define hostgroup{ hostgroup_name roteadores ; Nome do grupo alias Roteadores ; Apelido do grupo
} # SERVICE DEFINITIONS Definio de servios define service{ use generic-service ; Template host_name roteador_espanha ;Nome do roteador a ser checado service_description PING ; Descrio do servio check_command check_ping!200.0,20%!600.0,60% ; The command used to monitor the service normal_check_interval 5 ; Check the service every 5 minutes under normal conditions retry_check_interval 1 ; Re-check the service every minute until its final/hard state is determined }
4 passo: edite o arquivo localhost.cfg - /usr/local/nagios/etc/objects/localhost.cfg ## CHECA SMB define service{ use local-service ; host_name smbsrv service_description Checa o status do samba check_command checa_smb notifications_enabled 0 5 passo: verificamos se tudo esta correto. sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 6 passo: Reinicie o servio do nagios
Estudo de casos
Neste estudo de casos, demonstrarei de forma visual, como deve ser implantada a soluo de monitoramento na rede com Nagios. Abaixo esta um diagrama, com todos servidores, impressoras, roteadores, switch e computadores dividida em duas redes distintas.
Figura 17.Diagrama de 2 redes, com seus devidos servidores, estaes de trabalho e roteadores, ainda sem o servidor nagios.
Como podemos monitorar essa infraestrutura? Primeiramente podemos adicionar o Nagios em qualquer um dos servidores, desde que no atrapalhe os servios atuais, ou criaremos um novo servidor nessa malha de servidores.
Figura 17.Agora com o servidor nagios, o mesmo diagrama de 2 redes, com seus devidos servidores, estaes de trabalho e roteadores.
Aps efetuar a instalao do nagios, conforme descrito no artigo, devemos adicionar cada servidor a ser monitorado, com seus respectivos nome, ips e apelidos. Uma dica valiosa , neste cenrio caso ocorra uma falha no link que interliga as duas redes (Roteador Brasil Roteador Portugal), o servidor com nagios, no poder monitorar a rede B, pois informara falha de comunicao, mesmo que os computadores e servidores da rede B estejam em perfeito estado. A soluo implementar um segundo servidor nagios somente para monitorar esta rede. Cabe sempre avaliar o quanto importante monitorar esta segunda rede. Mini-biografia Estudante de cincia da computao, possui certificaes LPIC 1, LPIC 2, MCP, MCSA,NCLA, trabalha como analista de sistemas e suporte no Rio de Janeiro, apaixonado por tecnologia, est sempre pesquisando novas solues e aprimorando as demais, alguns de seus trabalhos encontram-se em http://www.paulojr.info
E-mail: paulorvojr@gmail.com