Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo...

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

Transcript of Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo...

Page 1: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

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.

Page 2: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

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

Page 3: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

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

Figura 2 – Nagios – gerenciamento sem agente. [9]

3 Instalações do Nagios[4]

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

Page 4: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

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

Page 5: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

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-nagios-group=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

Page 6: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

Figura 3 – Nagios login na maquina Local

Figura 4 – Nagios logado na maquina local

Page 7: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

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

Page 8: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

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

Page 9: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

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

Page 10: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

} 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 anderson use generic-contact alias Anderson Rodrigo Antunes email [email protected] } Depois criamos um grupo de contatos caso tenha definido mais de um contato será enviado e-mail para esse grupo. define contactgroup{ contactgroup_name administradores alias Nagios Administrators members anderson

Page 11: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

} 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

Page 12: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

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

Page 13: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

Figura 16 – Tela Serviços monitorados nagios

Page 14: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

Figura 17 – Tela Serviços monitorados nagios

O intuito na monitoração é justamente verificar erros como, por exemplo, no serv-cameras 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.

Page 15: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

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.

Page 16: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

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.

Page 17: Nagios Trabalhando em Maquina Virtual - Programa de Pós ...jamhour/RSS/TCCRSS09A/Anderson Rodrigo Antunes... · Nagios Trabalhando em Maquina Virtual Anderson Rodrigo Antunes Curso

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.