Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso de Especialização em Redes e Segurança de Sistemas Pontifícia Universidade Católica do Paraná Curitiba, novembro de 2010 Resumo Este artigo relata a monitoração dos equipamentos da empresa Radio e Televisão Iguaçu, que atualmente possui quatro filiais (Foz do Iguaçu, Londrina, Maringa e Apucarana) e que ainda não possuía nenhum controle na gestão de falhas, causando um enorme transtorno em ocorrência de falhas exigindo um grande tempo em manutenção. A intenção com essa ferramenta e evitar ao máximo as falhas decorrentes nas maquinas da empresa e suas filiais.
1 Introdução A empresa atualmente conta com quatro unidades prontas localizadas nos municípios de Curitiba, Foz do Iguaçu, Londrina e Maringa e uma unidade em seu estado final de construção localizada em Apucarana, todas as unidades no estado do Paraná, tendo em vista que todas as unidades não podem parar, se viu a necessidade de implementar um gerenciador de falhas para evitar possíveis paradas. Problemas como servidores, impressoras e maquinas paradas na empresa geram prejuízo financeiro visamos evitar ao máximo as falhas e quando estas ocorrem solucionar o problema mais rápido possível sendo responsabilidade do departamento de TI ou de parceiros que fornece ou mantém o serviço. Irei monitorar os servidores de internet quando ficar Down avisando assim nosso parceiro para devidas providencia, impressoras quando não estiverem em comunicação e com falta de tonner, maquinas da nossa rede verificando falta de espaço em disco, aquecimento, falta de comunicação, uso de memória, etc. Neste artigo encontraremos na seção 2 quais foram os softwares utilizados, na seção 3 podemos verificar a instalação do nagios, na seção 4 verificaremos a forma de instalação do client para computadores Windows, na seção 5 como foi feita a configuração do nagios para funcionar a monitoração, na seção 6 será mostrado o acesso ao servidor nagios de qualquer maquina da rede Windows e na seção 7 um breve resumo das vantagens e desvantagens do Windows. 2 Implementação 2.1 Escolha do Software de Virtualização Foi escolhido o software VirtualBox[1] que é uma solução profissional que está disponível gratuitamente como software de código aberto sob os termos da GNU General Public License (GPL). Ele permite a instalação e utilização de um sistema operativo dentro de outro, assim como seus respectivos softwares, como dois ou mais computadores independentes, mas compartilhando fisicamente o mesmo hardware. 2.2 Escolha do Sistema Operacional Por ser um sistema de fácil instalação para usuários com pouco conhecimento em Linux escolhi o sistema Ubuntu[2] 9.04 em ambiente virtual VirtualBox para ser o servidor de monitoramento. 2.3 Software de Monitoramento Evitando gerar custos para empresa escolhi software open sources Nagios[3] versão 3.2.1 pois sua implementação não é muito trabalhosa e por se tratar de uma popular aplicação de monitoração de rede de código aberto distribuída sob a licença GPL. Ele pode monitorar tanto hosts quanto serviços, alertando-o quando ocorrerem problemas e também quando os problemas forem resolvidos. Nagios é uma ferramenta de monitoramento e gerência de rede distribuída sob a licença GPL para monitorar e exibir alertas quando é detectado erros em computadores ou equipamentos de rede e serviços de rede em sistemas UNIX/Linux e Windows (necessário
a instalação do plugin NSClient++), foi escrito e é atualmente mantido por Ethan Galstad e comunidade de desenvolvedores e utiliza duas formas de gerenciamento. Com agente (programa que coleta dados de um objeto e envia para o gerente processar). Figura 1 Nagios gerenciamento com agente. [9] Sem agente, onde os hosts estão acessíveis remotamente 3 Instalações do Nagios[4] Figura 2 Nagios gerenciamento sem agente. [9] O processo de instalação do Nagios em sistemas Ubuntu consiste em alguns passos porem simples, como mostrados nos comandos abaixo. 3.1 Baixar Pacotes Nagios wget c http://ufpr.dl.sourceforge.net/sourceforge/nagios/nagios 3.2.3.tar.gz[5] Plugins wget c http://ufpr.dl.sourceforge.net/sourceforge/nagiosplug/nagios plugins 1.4.15.tar.gz[6] 3.2 Instalar as dependências sudo apt-get install build-essential
sudo apt-get install libgd2-xpm-dev sudo apt-get install apache2 sudo apt-get install php5-common php5 libapache2-mod-php5 Após instalar as dependências vamos fazer uma alteração no arquivo de configuração do apache com o comando: sudo gedit /etc/apache2/apache2.conf E acrescentaremos a seguinte linha: DirectoryIndex index.html index.php index.cgi Logo após vamos dar restart no apache com o comando: sudo /etc/init.d/apache2 restart 3.3 Criar usuários para Nagios sudo useradd -m nagios sudo groupadd nagios sudo passwd nagios sudo usermod G nagios nagios sudo mkdir /usr/local/nagios sudo chown -R nagios.nagios /usr/local/nagios sudo groupadd nagcmd sudo usermod -a -G nagcmd nagios sudo usermod -a -G nagcmd www-data 3.4 Instalar Nagios Após descompactar os arquivos baixados iremos entrar em sua posta descompactada e instalar o nagios com seguintes comandos: sudo./configure with-command-group=nagcmd sudo make all sudo make install sudo make install-init sudo make install-config sudo make install-commandmode sudo make install-webconf Agora vamos criar uma senha para o nagios: sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin Agora vamos adicionar o diretorio nagios no apache acrescentando as linhas abaixo no apache.conf. sudo gedit /etc/apache2/apache.conf ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
Options ExecCGI AllowOverride None Order allow,deny Allow from all AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users Require valid-user Alias /nagios /usr/local/nagios/share Options None AllowOverride None Order allow,deny Allow from all AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users Require valid-user Depois restart no apache: sudo /etc/init.d/apache2 restart 3.5 Instalar Plugins Após descompactar os arquivos baixados iremos entrar em sua posta descompactada e instalar o nagios com seguintes comandos: sudo./configure with-nagios-user=nagios with-nagiosgroup=nagios sudo make sudo make install 3.6 Modificando as permições da pasta do Nagios sudo chown -R nagios nagios /usr/local/nagios/var/rw sudo chmod u+rwx /usr/local/nagios/var/rw sudo chmod g+rwx /usr/local/nagios/var/rw sudo chmod g+s /usr/local/nagios/var/rw 3.7 Adicionando o Nagios para ser executado durante o Boot sudo ln -s /etc/init.d/nagios /etc/rcs.d/s99nagios 3.8 Finalizando a Instalação e restartando o Apache2 e o Nagios sudo /etc/init.d/apache2 restart sudo /etc/init.d/nagios restart 3.9 Acessar Nagios na maquina local http://localhost/nagios
Figura 3 Nagios login na maquina Local Figura 4 Nagios logado na maquina local
4 Instalação do Client nas maquinas Windows[7] O processo de instalação do Cliente em sistemas Windows é muito simples com veremos nas telas a seguir. 4.1 Baixar Client NSClient++-0.3.8 Existe client para 32 e 64bits para o windows no meu caso baixei a versão para 32bits do site: http://sourceforge.net/projects/nscplus/files/ Após efetuar o download devemos excutar o arquivo: NSClient++-0.3.8-Win32.msi Figura 5 Executar Client Figura 6 Instalando Client Figura 7 Accept e Next Figura 8 Apertar Next
Figura 9 Nova configuração e Next Figura 10 IP servidor, senha selecionar todas e Next Figura 11 Apertar em instalar Figura 12 Start Service e Finish Apos a instalação na maquina windows deverá ficar rodando um serviço igual a tela abaixo: Figura 13 Serviço rodando no Windows
5 Configurar o Nagios [8] e [9] Após a instalação do nagios e instalação do client nas máquinas Windows vamos configurar o nagios para que consiga monitorar as maquinas. 5.1 Editando o Arquivo commands.cfg Vamos editar o arquivo commands.cfg para estabelecer comunicação com o client instalado nas máquinas windows. Abrir o arquivo commands.cfg e alterar a seguinte linha: define command{ command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ } Para: define command{ command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s SENHA DEFINIDA NA INSTALÇÃO DO CLIENT -v $ARG1$ $ARG2$ } 5.2 Editando o Arquivo nagios.cfg Descomentar a linha onde está localizado o servidor windows: # Definitions for monitoring a Windows machine cfg_file=/usr/local/nagios/etc/objects/windows.cfg E a linha refente as impressoras: # Definitions for monitoring a Windows machine cfg_file=/usr/local/nagios/etc/objects/printer.cfg 5.3 Editando o Arquivo windows.cfg Agora com as outras configurações já prontas vamos acrescentar as maquinas que serão monitoradas. 5.4 Definindo Hosts Em HOST DEFINITIONS: define host{ use windows-server host_name anderson alias anderson address 192.168.20.7
} define host{ use windows-server host_name ezequiel-pc alias ezequiel-pc address 192.168.20.5 } 5.5 Definindo Grupos Em HOST GROUP DEFINITIONS define hostgroup{ hostgroup_name windows-servers alias windows-servers members anderson,ezequiel-pc } 5.6 Definindo Serviços Em SERVICE DEFINITIONS basta apenas acrescentar quais maquinas serão monitoradas por aquele serviço na linha host_name. define service{ use generic-service host_name anderson,ezequiel-pc service_description NSClient++ Version check_command check_nt!clientversion } 5.7 Editando o Arquivo contacts.cfg Agora vamos definir quem receberá e-mail em caso de acontecer algum problema com alguma máquina. define contact{ contact_name use alias email } anderson generic-contact Anderson Rodrigo Antunes antunes@redemassa.com.br Depois criamos um grupo de contatos caso tenha definido mais de um contato será enviado e-mail para esse grupo. define contactgroup{ contactgroup_name alias members administradores Nagios Administrators anderson
} Pronto feito essas configurações agora podemos testar o nagios com o seguinte comando: /usr/local/nagios/bin/nagios v /usr/local/nagios/etc/nagios.cfg A resposta deverá ser: Total warnings: 0 Total Errors: 0 Things look okay 6 Utilizando nagios de qualquer maquina de sua rede. Com todas as configurações prontas e não apresentando nenhum erro, reiniciaremos o serviço nagios com o comando: /etc/init.d/nagios restart Depois de um restart no servidor podemos ir em qualquer maquina da rede e acessar via browser através do <ip do servidor>/nagios Figura 14 Acessando nagios de uma maquina qualquer
Lembrando que o usuário é nagiosadmin e a senha que eu escolhi no inicio da configuração. Agora podemos entrar no servidor nagios de qualquer maquina da rede e verificar as maquinas que estão definidas para serem monitoradas. Figura 15 Tela do nagios acessado por uma maquina da rede
Figura 16 Tela Serviços monitorados nagios
Figura 17 Tela Serviços monitorados nagios O intuito na monitoração é justamente verificar erros como, por exemplo, no servcameras da figura 17 que está com os dois discos cheios, ficar enviando o teste de ping para todos as maquinas, verificar uso de CPU, quantidade de memória, etc... 7 Avaliação do Nagios [10] O Nagios é capaz de gerenciar a rede através da análise do estado e comportamento dos dispositivos gerenciados com algumas vantagens e desvantagens que destacamos abaixo. Vantagens Ser gratuito. Flexível, permite a instalação de plugins ou a criação de comandos personalizados conforme a necessidade de monitorar determinados hosts, equipamentos ou serviços. Escalável. Eficiente. Suporte a monitoração remota através de túneis encriptados SSH ou SSL. Notificações através de e-mail, mensagens instantâneas através de SMS, Messenger, PopUP e sons. Capacidade de definir a rede hierarquicamente definindo equipamentos "pai", permitindo distinção dos equipamentos que estão indisponíveis daqueles que estão inalcançáveis. Interface de monitoramento Web.
Desvantagens A complexidade na configuração, pois é feita apenas através da edição dos arquivos textos. Não possuir uma interface WEB para configuração dos hosts, grupos, contatos, notificações e serviços. A cada nova mudança na configuração é necessário reiniciar o serviço do nagios através do comando nagios reload.
Conclusão Apesar de ser um processo um pouco trabalhoso a sua implementação a ferramenta de monitoramento Nagios se mostrou de uma utilidade muito grande no dia-a-dia, pois a ferramenta auxilia na gestão de falhas além de documentar de forma gráfica a rede, servidores, equipamentos, serviços e fornecer alertas e relatórios das mais variadas formas. Por não existir nada similar anteriormente na empresa relacionado a gerencia de falhas a implementação foi de grande ajuda reduzindo a demanda de manutenção até a presente data em aproximadamente trinta por cento, tendo em vista que o departamento de TI hoje está apenas com três funcionários foi de grande ajuda a implementação.
Pesquisa Bibliografia [1] - http://pt.wikipedia.org/wiki/virtualbox. Acessado em Outubro de 2010. [2] - http://pt.wikipedia.org/wiki/ubuntu. Acessado em Outubro de 2010. [3] - http://pt.wikipedia.org/wiki/nagios. Acessa em Outubro de 2010. [4] - http://www.unixmen.com/linux-tutorials/945-install-nagios-ubuntu-9x-and-10x. Acessado em Outubro de 2010. [5] - http://ufpr.dl.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz. Acessado em Outubro de 2010. [6] - http://ufpr.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz. Acessado em Outubro de 2010. [7] - http://sourceforge.net/projects/nscplus/files/. Acessado em Outubro de 2010. [8] - http://www.sartori.eti.br/?p=70. Acessado em Outubro de 2010. [9] - http://www.youtube.com/watch?v=j0juttl1dqk&feature=related. Acessado em Outubro de 2010. [10] - http://nagios.sourceforge.net/docs/nagios-3.pdf. Acessado em Novembro de 2010. [11] - Revista Linux Magazine Edição numero71. Leitura feita em Outubro de 2010.