Pontifícia Universidade Católica do Paraná Curso de Especialização em Redes e Segurança de Sistemas Avaliação da Ferramenta Zabbix Jhonatan Geremias CURITIBA - 2010
Pontifícia Universidade Católica do ParanáCurso de Especialização em Redes e Segurança de Sistemas
Avaliação da Ferramenta Zabbix
Jhonatan Geremias
CURITIBA 2010
Zabbix – Ferramenta de Monitoramento
Adilson Galiano Filho, Jhonatan Geremias
Curso de Especialização em Redes e Segurança de Sistemas
Pontifícia Universidade Católica do Paraná
Curitiba, Abril de 2010
Resumo
O presente artigo tem como objetivo apresentar uma abordagem de uma ferramenta denominada Zabbix, uma ferramenta criada para monitorar o desempenho e a disponibilidade dos ativos de uma rede, seu sistema foi projetado para trabalhar através da coleta das informações de servidores, switches, roteadores, e os demais diferenciados equipamentos encontrados na rede, as informações coletadas na rede são armazenadas em um banco de dados, permitindo uma posterior analise dos dados, por meio das consultas e da geração de alertas é possível identificar, prevenir e solucionar problemas de modo proativo. Este artigo tem por finalidade permitir que o usuário seja capacitado a reproduzir e utilizar o mesmo ambiente em que desenvolvemos nossa analise sobre o Zabbix, habilitando o usuário a instalar, configurar e até mesmo monitorar os ativos da rede.
1. Introdução
Visando alcançar um diagnostico mais preciso da infraestrutura da rede, escolhemos uma ferramenta de monitoramento de rede de nome Zabbix, que se apresentou como uma das soluções mais completas disponíveis do mercado.
Através deste artigo, temos por finalidade transpassar um material que seja uma fonte rica e bem detalhada, e apresente de forma clara e objetiva essa promissora ferramenta que a cada nova versão lançada trás muitas novidades para os administradores de redes. Esperamos ainda que esse material seja de grande valia, e possa servir como guia de consulta para administradores de redes que estejam interessados em adotar o Zabbix como ferramenta de monitoramento em sua rede.
O artigo em questão segue redigido detalhadamente, procuramos cuidadosamente colocálo passo a passo para aqueles que desejarem reproduzir um ambiente similar em sua rede, não tenham muitas dificuldades, esse artigo será apresentado de forma muito similar aos roteiros apresentados em algumas disciplinas no sistema de educacional a distância, PUCPR, Eureka, contendo todas as informações necessárias para aqueles que tenham como objetivo, implantar essa nova tecnologia em suas organizações. Os detalhamentos técnicos formados neste artigo abordam de forma pedagógica, além da técnica, e com o intuito de seguir a linha de apresentação citada preferimos a apresentação de um estudo de caso em específico, elaborado pelo aluno Esley Bonomo ao curso de Pós Graduação em Administração em Redes Linux, da Universidade Federal de Lavras, datado do ano de 2006. Essa preferência é explicada devido às funcionalidades estarem apresentadas em uma excelente didática e semelhante à forma esquemática sendo implantada em nosso ambiente de trabalho profissional atual. Conforme observado em disciplinas desse programa LATU SENSU a ação de monitoramento é necessária, e vem a ser um dos princípios básicos para se obter segurança e disponibilidade em redes modernas administradas.
1.1 O que é o Zabbix?
Conforme podemos observar o Zabbix é uma ferramenta de monitoramento de rede, o que significa que o Zabbix é uma ferramenta que nos permite monitorar a performance e disponibilidade de todos serviços e ativos da rede, ou seja, desde aplicações envolvidas na rede, até os inúmeros equipamentos que são interligados a ela, tais como servidores, hosts, switches, roteadores entre muitos outros.
A principio o Zabbix é um sistema que consegue coletar informações de todos dispositivos que estão interligados na rede, absorvendo as informações por meio de scripts, via agente ou até mesmo através do protocolo SNMP.Esse poderoso sistema de gerência e monitoramento absorve todas as informações requisitadas, e permite que as informações sejam coletadas e armazenadas em um banco de dados como MySQL, PostgreSQL, SQLite ou até mesmo no Oracle.
O Zabbix através de uma interface web bem amigável possibilita que as informações que foram armazenadas anteriormente nas bases de dados, sejam consultadas e analisadas por meio de alertas. Os alertas permitem que os problemas que estejam ocorrendo em nossa rede ou equipamentos sejam identificados, assim sendo possível tomar decisões e efetuar melhorias.
1.2 História
Como vimos o Zabbix é uma excelente ferramenta que permite o monitoramento de toda a infraestrutura de uma rede, um dos grandes responsáveis por essa ferramenta é Alexei Vladishev, que é apresentado como criador e principal desenvolvedor do projeto Zabbix. O projeto e o desenvolvimento do Zabbix se iniciaram 2001, centralizado na cidade de Riga, na Letônia, foi desenvolvido utilizando a linguagem de programação PHP, disponibilizando ao usuário uma interface web com suporte a banco de dados.
O Zabbix é um software que adota a licença Open Source, ou seja, é um software livre que adota a licença publica geral (GPL), sendo considerado como uma das melhores ferramentas de monitoramento na atualidade, muitas das suas funcionalidades que foram herdadas do Nagios e do Cacti a tornaram uma das ferramentas mais poderosa e completas disponíveis.
Curiosamente o nome Zabbix é oriundo de uma pesquisa do autor, através de urls de busca, objetivando encontrar um nome ainda não utilizado e divulgado ne rede mundial de computadores. O nome Zabbix até então não era de significado algum, hoje é sinônimo de gerência organizada, alta performance e disponibilidade aliadas à eficiência de equipamentos e serviços.
2 Estrutura do Zabbix
O Zabbix oferece portabilidade a diversos sistemas operacionais desde Linux, Solaris, HPUX, AIX, FreeBSD, OpenBSD, NetBSD, Mac OS X, Windows, e outros. Disponibilizando agentes aos mais diversos sistemas operacionais, permitindo o monitoramento entre diferentes plataformas.
Entretanto existe uma dependência em relação à estrutura do Zabbix, visto que o mesmo foi projetado com o intuito de ser uma ferramenta Open Source, seu servidor necessariamente deve ser hospedado em uma máquina com o Linux ou Mac OS, visto que não existe um pacote do servidor disponível para as versões do Windows.
Contudo essa dependência não afeta o monitoramento da rede, visto que o sistema está divido em três distintas partes:
Servidor Zabbix Agente Zabbix Interface do Zabbix
Servidor Zabbix: O servidor é responsável pela coleta e o armazenamento dos dados monitorados. Como já vimos o servidor deve ser necessariamente hospedado em uma máquina com o sistema operacional baseado na família do Unix (Linux ou Mac OS);
Agente Zabbix: O agente é responsável por repassar todas as informações que foram coletadas do sistema operacionais em qual está rodando para o servidor. O agente permanece instalado na máquina e rodando como daemon ou serviço, e assim que o servidor solicita alguma requisição o agente processa a requisição e retorna os dados
solicitados, dados tais como: consumo dos recursos de HD, memória, estatística de processador, entre outros;
Interface do Zabbix: A interface é a estrutura que permite que o administrador tenha acesso para interagir e administrar o sistema. A fim de permitir um fácil acesso ao monitoramento dos dados e configurações através do ZABBIX, a interface do Zabbix foi projetada para ser acessada via web, permitindo que o administrador ou usuário acessem através do próprio browser instalado em seu sistema operacional. Para alguns navegadores em específico, o Zabbix disponibiliza até mesmo alguns plugins para facilitar o acesso ao servidor, sendo o caso do Firefox como exemplo.
2.1 Por que utilizar o Zabbix?
A escolha de uma ferramenta de monitoramento está diretamente ligada aos problemas que são apresentados no âmbito a qual está direcionado a empresa, lembrando que independente do setor onde a empresa atue, existe a necessidade de traçar um plano de estratégia de negócio. Para um monitoramento eficaz e preciso é necessário traçar laços em conjunto ao plano de estratégia, onde podemos definir as políticas de segurança da empresa. As políticas de segurança serão responsáveis por estabelecer o nível de segurança que deverá ser adotado pela organização, e ai sim escolher uma ferramenta para monitoramento que seja ideal para empresa. Mas entre tantas ferramentas de monitoramento por utilizar o Zabbix?
Este artigo não tem como intenção definir o Zabbix como a melhor ferramenta de monitoramento disponível, e nem colocar as demais ferramentas em descrédito. O artigo em questão tem a única finalidade de despertar o interesse do administrador da rede, para que o mesmo conheça a ferramenta e entre outras escolha por si só.Para facilitar a escolha da ferramenta, faço referência ao artigo apresentado por Raphael Celuppi, que apresentou na turma anterior deste mesmo curso de especialização um excelente artigo: “Implantação do Zabbix para monitoramento de infraestrutura”. No seguinte tópico em específico “Escolha da Ferramenta” ele apresentou bem um comparativo entre as ferramentas Nagios, Cacti e o Zabbix
“O Zabbix foi comparado a algumas ferramentas Open Source de monitoramento de infraestrutura como o Nagios e o Cacti, cujo quais são excelentes ferramentas mas que não possui uma suíte completa de ferramentas como Zabbix, que possui tanto uma interface de monitoramento e alerta em tempo real excelente como o Nagios e também possui histórico de informações e gráficos iguais ao do CACTI nos trazendo assim o melhor das duas ferramentas mais utilizadas atualmente em uma.”
Segue abaixo as funcionalidades de cada ferramenta, estruturado semelhantemente:
Nagios:
Monitoramento de aplicação, serviços, sistemas operacionais e componentes de infraestrutura;
API para desenvolvimento de sistemas customizados. Cliente proprietário; Suporte ao protocolo SNMP; Visão centralizada de todos os sistemas monitorados;
Informações detalhadas dos componentes monitorados na interface web; Rápida detecção de problemas na infraestrutura; Alertas via email e SMS; Alertas customizáveis, para o envio diretamente a pessoa responsável; Base de conhecimento para problemas com soluções conhecidas; Configurações de eventos para ações préconfiguradas, como reiniciar o serviço
com problema; Planejamento de infraestrutura para o acompanhamento do envelhecimento do
parque tecnológico; Paradas programadas, para o sistema não enviar alertas nesses períodos; Relatórios para o acompanhamento dos SLA’s; Históricos de envio de alertas e notificações; Suporte a plugins de terceiros; Multiusuário web com níveis de acessos.
Cacti:
Número ilimitado de gráficos por host; Envio de alertas via email e script personalizado; Armazenamento configurável de históricos; Rápido resequenciamento dos itens gráficos; Suporte completo ao RRDTOOL; Suporte ao protocolo SNMP; Modelos gráficos préconfigurados; Gerenciamento totalmente web; Multiusuário web com níveis de acessos.
Zabbix:
Gerenciamento centralizado; Acesso centralizado as informações; Numero ilimitado de proxies; Monitoramento em tempo real; Monitoramento de alertas para disponibilidade, integridade, entre outros; Alertas via email, SMS, mensagem instantânea e via script configurado; Log de auditoria; Visualização via abas web e mapas; Execução de comandos remotos; Suporte a serviços de TI hierárquico; Relatórios em tempo real de SLA’s; Facilidade de integração com sistemas de terceiros; Modelos préconfigurados de hosts; Facilidade de compartilhamento de modelos; Sistema de auto busca de dispositivos a serem monitorados; Monitoramento de páginas web;
Suporte a qualquer plataforma; Suporte ao protocolo SNMP; Agente próprio de alta performance; Rápida curva de aprendizagem; Multiusuário web com níveis de acessos flexíveis.
Foram especificadas apenas as funcionalidades do Nagios e do Cacti, pois muitas das funcionalidades que o Zabbix possui hoje foram herdadas dessas outras duas ferramentas, lembrando que ainda existem inúmeras outras excelentes ferramentas que devem ser observadas para escolha da ferramenta de monitoramento ideal tais como o Ntop, Nessus, Snort, Nmap, MTGR entre outros.
Requisitos de Hardware e Software
As informações dos requisitos necessários para instalação do Zabbix foram retiradas do próprio site do fabricante do Zabbix, sendo correspondentes à versão atual (Zabbix 1.8.2) do mesmo.
Requisitos de Hardware
O servidor Zabbix requer os recursos do sistema conforme segue tabela abaixo:
Figura 1 Requisitos de Hardware
Plataformas Suportadas:
Segue abaixo a tabela referente as plataformas que são suportadas tanto pelo servidor como também pelo agente:
Figura 2 Plataformas Suportadas
Requisitos de Software
Apache: versão 1.3.12 ou superior; Banco de dados: o banco de dados mais utilizados em conjunto com o Zabbix
hoje é o MySQL (versão 3.22 ou superior), mais nada impede ao administrador, utilizar outro banco de dados tais como o PostgreSQL (versão 7.0.2 ou superior), Oracle (versão 9.2.0.4 ou superior), SQLite (versão 3.3.5 ou superior). Contudo tem se cogitado no próprio fórum do Zabbix, que segundo Alexei as tendências futuras são as de utilizar o PGSql no ambiente de desenvolvimento, pois oferece o amadurecimento de algumas funcionalidades que agregariam mais valor ao ZABBIX, tais como desempenho e segurança;
PHP: versão 4.0 ou superior; Módulo PHP GD ou GD2: módulo requerido para mostrar mapas e gráficos; Browser: Navegador web do cliente que suporte páginas HTML e imagens
PNG.
3 Instalação do Zabbix
Para efetuar a análise da ferramenta do Zabbix, dentre as diversas distribuições do Linux, optamos adotar o GNU/Linux Ubuntu, entre alguns dos motivos que regem nossa escolha, segue o fator da distribuição ser bem documentada, possuir uma arquitetura voltada tanto para desktop quanto para servidores, ser uma das distribuições Linux mais popular atualmente, pela facilidade na instalação de aplicativos com o Synaptic e a questão de compatibilidade com pacotes Debian.
Iniciaremos a instalação do Zabbix do pré suposto que o Ubuntu já está instalado na máquina. Neste artigo utilizamos a última versão disponível do Ubuntu (ubuntu9.10desktopi386).
Apenas por fins técnicos e futuras comparações a fins acadêmicos, instalamos o servidor do Zabbix em uma máquina HP Compaq DC7700, Duo Core (1,86GHz), 1024 RAM e 80GB de disco.
Para facilitar a análise do Zabbix, utilizamos do ambiente proporcionado aqui mesmo na PUCPR, visto que os dois alunos que lhes dirigem nesse artigo, são
funcionários dessa instituição, um funcionário do núcleo de informática (NIAA) e outro do programa de pósgraduação em informática (PPGIa).
Os passos descritos abaixo seguem de maneira muito similar a um roteiro, foram adotados desta forma com o objetivo de facilitar o processo de instalação e configuração do Zabbix. Facilitando um pouco aos administradores de rede que tiverem interesse em projetar um ambiente similar.
Conforme restrição de rede adotada através do proxy aqui na PUCPR, é necessário configurar a criação do seguinte arquivo para utilizar os comandos do aptget.
Criando o arquivo apt.conf:
cd /etc/apt sudo touch apt.conf sudo gedit apt.conf
Acrescentar a seguinte linha no arquivo:Acquire::http::proxy "http://virtualproxy.pucpr.br:3128/";
Agora já será possível realizar atualização e utilizar o comando aptget (ou se desejar utilizar o aplicativo Synaptic).Baixando a lista dos pacotes disponíveis:
sudo aptget update
Verificando e atualizando os pacotes no sistema: sudo aptget upgrade
Reiniciando a máquina: sudo reboot
Atualizando o sistema todo para uma nova versão mesmo que seja exigida a adição ou remoção de algum pacote:
aptget distupgrade
Reiniciando a máquina sudo reboot
Adicionado o pacote básico necessário para o ambiente de desenvolvimento sudo aptget install buildessential
Instalando o servidor de banco de dados Mysql, será solicitado que você cadastre uma senha para o usuário root do mysql:
sudo aptget install mysqlserver
Figura 3 Cadastrando Password Mysql
Será solicitado que seja confirmada a senha cadastrada no Mysql:
Figura 4 Confirmando password Mysql
Acessando o Mysql: mysql u root p
Será solicitada a senha do usuário root do Mysql cadastrada anteriormente:Verificando as databases disponíveis:
show databases;
Criando um database teste: create database teste;
Definindo um database que ser utilizada: use teste;
Verificando o database criada: show databases;
Excluindo o database "teste": drop database teste;
Verificando que a database foi realmente excluída: show databases;
Saindo do Mysql exit
Instalando a biblioteca libmysqlclientXXdevVerificando a versão mais atual disponíveis:
sudo aptcache search libmysqlclient
Instalando a última versão disponível da biblioteca libmysqlclient16dev: sudo aptget install libmysqlclient16dev
Efetuando a instalação do PHP5: sudo aptget install php5
Instalando a biblioteca do php5 para processamento de imagens: sudo aptget install php5gd
Instalando a biblioteca do php5 para o Mysql: sudo aptget install php5mysql
Instalando o pacote do protocolo SNMP (Protocolo Simples de Gerência de Rede) sudo aptget install snmp
Instalando o pacote de bibliotecas para o protocolo SNMP: sudo aptget install libsnmpdev
Instalando o pacote daemon para protocolo SNMP: sudo aptget install snmpd
Instalando biblioteca de código aberto para protocolos SSL e TLS: sudo aptget install libcurl4openssldev
Criando um usuário zabbix no Ubuntu: sudo adduser zabbix
Adicionando o usuário zabbix no grupo de administradores: sudo adduser zabbix admin
Baixando o pacote de instalação do servidor zabbix, efetuamos o download direto do site do Zabbix “http://www.zabbix.com/download.php”, estamos utilizando a versão zabbix1.8.1 que foi a versão mais recente disponível no ato da implementação do servidor. Atualmente o Zabbix já possui uma nova versão para download, publicada dia 29/03/2010 e já disponível no site.
Descompactando o arquivo do Zabbix, : tar zxvpf zabbix1.8.1.tar.gz
Criando o database do zabbix, ao executar o comando abaixo será solicitado o password do usuário root do Mysql:
mysql –e 'create database zabbix;' –u root –p
Verificando se o database foi criado, ao executar o comando abaixo será solicitado o password do usuário root do Mysql:
mysql –e 'show databases;' –u root –p
Adicionando usuário zabbix e definindo permissões, ao executar o comando abaixo será solicitado o password do usuário root do Mysql:
sudo mysql –e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';" u root p
Verificando se o usuário foi criado, ao executar o comando abaixo será solicitado o password do usuário root do Mysql:
mysql –e 'select user from mysql.user' –u root –p
A consulta do comando anterior retorna a lista de usuários cadastrados pelo Mysql, analise a lista e verifique se o usuário zabbix consta nessa lista de usuários.
Acessando o Mysql com o usuário zabbix, ao executar o comando abaixo será solicitado o password do usuário zabbix do Mysql:sudo mysql u zabbix –p
Criando schema zabbix, ao executar o comando abaixo será solicitado o password do usuário zabbix do Mysql:
mysql –D zabbix –u zabbix –p < /home/zabbix/zabbix1.8.1/create/schema/mysql.sql
Verificando se o schema foi criado, ao executar o comando abaixo será solicitado o password do usuário zabbix do Mysql:
mysql e "show schemas;" –u zabbix –p
Importando as tabelas do zabbix para dentro do Mysql, ao executar o comando abaixo será solicitado o password do usuário zabbix do Mysql:
mysql –D zabbix –u zabbix –p < /home/zabbix/zabbix1.8.1/create/data/data.sql
Importando as tabelas de imagem do zabbix para dentro do Mysql, ao executar o comando abaixo será solicitado o password do usuário zabbix do Mysql:
mysql –D zabbix –u zabbix –p < /home/zabbix/zabbix1.8.1/create/data/images_mysql.sql
Configuração do servidor do Zabbix
Acessando o terminal com o usuário zabbix, será solicitado o password do usuário zabbix::
su zabbix
Localizando e se posicionando dentro do diretório do Zabbix: cd zabbix1.8.1
Configurando e compilando os arquivos do Zabbix: sudo ./configure –prefix=/usr –withmysql –withnetsnmp –withlibcurl –
enableserver –enableagent && make install
Configurando o Zabbix arquivo services.Editando arquivo services
sudo gedit /etc/services
Adicionando as seguintes linhas no final do arquivo services, as linhas abaixo correspondem às portas que o Zabbix utilizará:zabbix_agent 10050/tcp zabbix_trap 10051/tcp
Criando diretório zabbix: sudo mkdir /etc/zabbix
Definindo proprietário para o diretório zabbix: sudo chown –R zabbix.zabbix /etc/zabbix
Localizando e se posicionando dentro do diretório do Zabbix: cd /home/zabbix/zabbix1.8.1
Copiando os arquivos necessários para pasta /etc/zabbix: cp misc/conf/zabbix_* /etc/zabbix/
Editando arquivo zabbix_agentd.conf: gedit /etc/zabbix/zabbix_agentd.conf
Verificando se o parâmetro Server está apontando para o endereço do servidor, ou seja, apontando para ele mesmo:Server=127.0.0.1
Editando arquivo zabbix_server.conf: gedit /etc/zabbix/zabbix_server.conf
Atribuindo usuário que foi criado anteriormente:
DBUser=zabbix
Retirando o comentário da linha abaixo e acrescentando o password do usuário zabbix:DBPassword=zabbix
Copiando os arquivos init.d do zabbix.Estaremos utilizando os arquivos zabbixagent e zabbixserver, devido a compatibilidade estaremos utilizando os arquivos da distribuição do Debian:
sudo cp misc/init.d/debian/zabbix* /etc/init.d
Configurando os arquivos init.d do zabbix.Editando o arquivo zabbixserver:
sudo gedit /etc/init.d/zabbixserver
Localizando a linha abaixo:DAEMON=/home/zabbix/bin/${NAME}
Substituindo a linha anterior pela linha abaixo:DAEMON=/usr/sbin/${NAME}
Editando o arquivo zabbixagent: sudo gedit /etc/init.d/zabbixagent
Localizando a linha abaixo:DAEMON=/home/zabbix/bin/${NAME}
Substituindo a linha anterior pela linha abaixo:DAEMON=/usr/sbin/${NAME}
Definindo as permissões dos arquivos zabbixserver e zabbixagent: sudo chmod 755 /etc/init.d/zabbixserver sudo chmod 755 /etc/init.d/zabbixagent
Adicionando os níveis de execução defaults do sistema para o zabbixserver: sudo updaterc.d zabbixserver defaults
Adicionando os níveis de execução defaults do sistema para o zabbixagent: sudo updaterc.d zabbixagent defaults
Iniciando o servidor: sudo /etc/init.d/zabbixserver start
Iniciando o agente: sudo /etc/init.d/zabbixagent start
Verificando se ambos os processos estão rodando:
ps –aux | grep zabbix
Criando diretório public_html: mkdir /home/zabbix/public_html
Localizando e se posicionando dentro do diretório do Zabbix:
cd /home/zabbix/zabbix1.8.1
Copiando os arquivos da interface web: cp –R frontends/php/* /home/zabbix/public_html/
Localizando o arquivo 000default no apache: cd /etc/apache2/sitesenabled
Editando arquivo 000default: sudo gedit 000default
Adicionando as linhas abaixo ao arquivo 000default:Alias /zabbix /home/zabbix/public_html/<Directory /home/zabbix/public_html>AllowOverride FileInfo AuthConfig Limit IndexesOptions MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec<Limit GET POST OPTIONS PROPFIND>Order allow,denyAllow from all</Limit><LimitExcept GET POST OPTIONS PROPFIND>Order deny,allowDeny from all</LimitExcept></Directory>
Configurando arquivo php.iniLocalizando o arquivo php.ini:
cd /etc/php5/apache2
Editando arquivo php.ini: sudo gedit php.ini
Alterando as linhas abaixo:max_execution_time = 300;date.timezone = America/Sao_Paulo
Reiniciando o Apache: sudo /etc/init.d/apache2 restart
Configurando a interface web
Acessando o servidor pela interface web: http://10.96.24.149/zabbix
Será Apresentada uma tela de boas vindas, leia a introdução e pode prosseguir clicando no botão “Next”:
Figura 5 Introdução para instalação da Interface Web
Na tela abaixo será apresentado o termo de uso do Zabbix, após a leitura do termo se você estiver ciente e concordar, marque a opção “I Agree”, e clique em “Next” para prosseguir:
Figura 6 Termo de uso do Zabbix
Na tela abaixo será apresentado um checklist dos prérequisitos para instalação. Se aparecer algum tipo erro, ajuste o mesmo e verificando a configuração, clique em “Retry” para testar. Quando todos os prérequisitos estiverem com o status “ok” clique em “Next” para prosseguir:
Figura 7 CheckList dos Prérequisitos
No ambiente que criamos em específicos, foi necessário acrescentar a seguinte configuração ao arquivo php.ini:
Localizando e se posicionando dentro do diretório apache2: cd /etc/php5/apache2
Editando o arquivo php.ini: sudo gedit php.ini
Alterando as linhas conforme abaixo: configurando arquivo php.ini:memory_limit = 128Mpost_max_size = 16M
Removendo o comentário e alterando o valor da mesmo:mbstring.func_overload = 2
Figura 8 Aprovação do CheckList
Configurando a conexão com o banco de dados, preencha o campo com as informações necessárias, clique em “Test connection” para averiguar a conexão Clique em “Next” quando o teste de conexão for bem sucedido.
Figura 9 Configurar conexão banco de dados
Será apresentado um sumário para que sejam confirmadas as opções da instalação, se tudo estiver em ordem clique em “Next” para prosseguir:
Figura 10 Sumário PréInstalação
Configurando o arquivo zabbix.conf.php, para facilitar o processo, clique em “Save Configuration File” e salve o arquivo para a sua máquina. Copie o arquivo zabbix.conf.php para /home/zabbix/public_html/conf/zabbix.conf.php no servidor. Para efetuar a transferência do arquivo, utilize o comando SCP, caso seja uma máquina com Windows você poderá utilizar o aplicativo WinSCP disponível para download na ESPEC (http://espec.ppgia.pucpr.br/). Após essa cópia clique em “Retry”, verifique o status, quando o estiver “ok” clique em Next para prosseguir:
Figura 11 Configuração arquivo zabbix.conf.php
A tela abaixo apresenta que o status da configuração da interface do zabbix está corretamente configurado, a interface já pode ser instalado, clique em “Next” para prosseguir:
Figura 12 Instalar Interface Web
Clique em “Finish” para concluir a instalação:
Figura 13 Concluir Instalação
Acessando a interface web do Zabbix, para efetuar o login, entre com o username “Admin” e password “zabbix”:
Figura 14 Acessar a Interface do Zabbix
3.1 Alterando idioma do servidor
Para alterar o idioma default (inglês) para português, efetue o login através da interface web, após ter logado, na parte superior da página clicar em profile:
Figura 15 Alterando Idioma I
Na janela seguinte, é só alterar a linguagem de inglês para português e salvar as alterações.
Figura 16 Alterando Idioma II
3.2 Instalando Agente do Zabbix (Windows)
Agora que já estamos com o servidor e a interface web Instalada e devidamente configurada, passaremos para etapa de instalação do agente do zabbix, a principio abordaremos a instalação no sistema operacional Windows XP.
Primeiramente devemos copiar os arquivos do agente para as máquinas que serem monitoradas, os arquivos podem ser encontrados no servidor do Zabbix dentro do seguinte diretório:
cd /home/zabbix/zabbix1.8.1/bin/
Se preferir poderá efetuar o download do agente do Zabbix no próprio site do zabbix, efetue o download da versão correspondente ao servidor instalado e da plataforma que esteja utilizando.http://www.zabbix.com/download.php
Criando diretório zabbix, sugerimos que o diretório seja criado na raiz do “C:”, ou seja, em “c:/zabbix”.
Os arquivos encontrados devem ser copiados para máquina a ser monitorada, segue abaixo os arquivos:
zabbix_agentd.exe zabbix_get.exe zabbix_sender.exe
É necessário também obter o arquivo de configuração do agente do Zabbix “zabbix_agentd.conf”, copie o arquivo da seguinte pasta no servidor:
cd /etc/zabbix
Utilize o arquivo que corresponde ao Windows, aqui ele foi encontrado com o seguinte nome zabbix_agentd.win.conf, copie o arquivo para dentro da pasta do zabbix localizada na máquina com Windows que será monitorada “c:/zabbix”. Altere o nome do arquivo para zabbix_agentd.conf.
Edite o arquivo zabbix_agentd.conf através do bloco de notas, altere os dados conforme correspondente:
IP do servidor do Zabbix:Server=xxx.xxx.xxx.xxx
Caminho do arquivo de log do agente zabbix:LogFile=c:/zabbix/zabbix_agentd.log
Criaremos um serviço para gerenciar o processo do agente zabbix, abra o prompt do Windows, posicione o diretório atual dentro da pasta do zabbix “c:/zabbix”, para criar um serviço para gerenciar o agente do zabbix execute o comando abaixo:
zabbix_agentd.exe i c zabbix_agentd.conf
Figura 17 Criando serviço agente Zabbix
Agora é só iniciar o serviço do agente do zabbix, abra o executar e digite “services.msc”, você poderá localizar o serviço com o seguinte nome "ZABBIX Agent", será só iniciar o serviço e a máquina está pronta para ser monitorada.
Figura 18 Gerenciando Serviço
3.3 Instalando Agente do Zabbix (Ubuntu)
Estaremos instalando o agente do Zabbix em uma máquina com o Linux Ubuntu, devido à compatibilidade do Ubuntu com o Debian, estaremos utilizando um pacote do
agente do zabbix disponibilizado pela distribuição do Debian, para facilitar você poderá efetuar o download deste pacote no seguinte site:
http://packages.debian.org/sid/i386/zabbixagent/download
Para instalação desse pacote do debian é necessária instalar a seguinte biblioteca:
sudo aptget install libopenipmi0
Instalando o pacote debian do agente zabbix: sudo dpkg i zabbixagent_1.8.11_i386.deb
Verificando se o agente do Zabbix foi instalado corretamente: ps – ef | grep zabbix
Adicionando Host no Zabbix
Acesse na aba principal o link Configuração > Hosts > Criar “Host”, na tela que será apresentada, preencha os campos básicos:
Nome da máquina:Nome: ia.cwbdis.pucpr.br
Servidor DNS:DNS name: cwbdis.pucpr.br
IP da máquina:IP: xxx.xxx.xxx.xxx
Templates: Linked templates: Template_Windows
Observando que os templates definem quais parâmetros serão monitorados, sendo possível utilizar vários templates para monitorar o mesmo servidor, desde que estes não tenham conflitos entre si. Neste momento, vamos apenas utilizar um template básico, “Template_Windows”, “Template_Linux e Template_Standalone”, os dois primeiros são baseados em agentes, e o “Standalone” é para monitoramento simples.
Após ter configurado o “Host”, clique em “Save”. Abra a aba “Overview” e verifique se o seu servidor está sendo monitorado.
4 Funcionalidades
4.1 Estudo de Caso [15]
4.1.1 Configuração do Ambiente
Para ver o funcionamento da ferramenta, foi necessário a criação deste ambiente na ferramenta. Este ambiente foi criado contendo três máquinas e um switch. O ambiente é simples, porém pode auxiliar no entendimento da ferramenta para uma utilização em um ambiente real, seja ele qual for. Neste ambiente podem ser monitorados dados básicos dos servidores (como HTTPD, FTP, SSH e etc), além de parâmetros de gerenciamento específico de cada máquina como memória livre, espaço em disco e etc.
Depois de ter feito toda parte de instalação, precisa ser feito a configuração do sistema para o uso na rede e gerenciamento da mesma. O endereço para acesso é http://10.96.24.149/zabbix . Com isso aparecerá a tela de login, conforme Figura:
Figura 19 Tela de Login
Por padrão o usuário 'admin', vem com a senha 'admin'. Entrando com este usuário temse o acesso máximo ao sistema, inclusive configurações, ou seja, é recomendável a criação de um outro usuário para acesso e trocar da senha do usuário 'admin'. Para uso adequado é necessário que o administrador faça a configuração do sistema para ter um ambiente de teste que permita obter informações de gerenciamento.
Na tela inicial temse a opção “Configuração”. A partir dela podem ser vistas várias outras opções. A primeira coisa a ser feita (não obrigatória, mas recomendável) é a criação de um outro usuário. Neste caso será criado um usuário chamado 'arl' para verificar as informações de gerenciamento.
Figura 20 Cadastro de Usuário
Pode ser visto nesta tela que há informações básicas dos usuários. Neste momento não há a necessidade de saber as informações sobre permissões e email do usuário para envio de notificação. Após a criação, o usuário aparecerá na lista de usuários. Agora para adicionar permissões ao usuário, é necessário clicar sobre o link 'Alias'. Que abrirá a tela, para a inclusão da permissão definida para o usuário.
Figura 21 Atribuir permissão ao usuário
Ainda na tela de usuário, se o administrador clicar na ação 'Media', será aberta um tela de listas de meios de notificação, ou seja, a forma de envio de alarmes para o usuário. Para ser adicionado um meio, é necessário clicar em 'Criar' para vermos a tela.
Figura 22 Criação de Meios de Notificação
Pode ser visto que nesta tela, além de ter das informações do email do usuário que a notificação será enviada, há também uma outra opção muito importante, que é quando esta ação será acionada. Neste caso tem o seguinte valor: 17,00:0023:59ou seja, isso significa que sete dias da semana e vinte e quatro horas por dia, a notificação poderá ser enviada. Além disso há também o nível de severidade que esta
ação irá atender. Após feito isso, o administrador deverá trocar a senha do usuário 'admin' para garantir uma melhor segurança no acesso a aplicação. Depois de criar usuários, um outro ponto importante, não só para o ambiente de teste, é a criação de Hosts. No menu Configuração > Hosts, aparecerá um lista de todos as Máquinas Gerenciadas.
Há também a opção para criar um novo Host. Nessa tela, há vários campos para adição de informações básicas sobre o host a ser adicionado, como: o nome, grupo, se tem endereço IP ou não, a porta do agente para coleta das informações, se vai ser monitorado ou não e por último o mais importante neste momento que é qual o molde (template) que este host irá seguir. É através do molde que serão adicionados os parâmetros gerenciados sem que o usuário tenha que criar todos os parâmetros manualmente.
Figura 23 Cadatro de Hosts
Assim que o administrador terminar o cadastro do Host, ele aparecerá na lista de máquinas gerenciadas. Nesta tela poderá ser visualizado os Itens Gerenciados, os Gatilhos (triggers) e os Gráficos específicos de cada um. Os itens e gatilhos serão de acordo com o molde escolhido no cadastro. O cadastro de máquinas gerenciadas não seria muito útil visualmente, se não fosse possível ter uma visualização da rede inteira. Então para isso existe um cadastro de mapas, onde pode ser simulado o desenho da rede, colocando os elementos (máquinas, hubs, servidores e etc) em uma posição específica do mapa. Além disso podem ser feitas conexões entre os elementos de rede contidos no mapa. A criação de mapas está localizada em Configuração >Mapas. Nesta tela é mostrado todos os mapas cadastrados e tem um botão 'Criar, o qual abrirá a tela de cadastro de mapas.
Figura 24 Cadastro de Mapa
Nesta tela pode ser observado que são informações simples de cadastro como nome, tamanho do mapa, imagem (que ainda não tem suporte na versão 1.1beta8) e posicionamento das informações do mapa. Após ser salvo, ele aparecerá na lista de mapas. E para cada mapa existe um botão de Editar que permitirá a adição de máquinas no mapa. A Figura 25, mostra um cadastro de elementos na rede.
Figura 25 Elementos Cadastrados
Após ter feito o cadastro, já temse um ambiente básico para teste das funcionalidades e para o estudo de caso. Logicamente existem muitas funções de configurações a mais. Porém não será abordado tudo pelo simples fato de que não há a necessidade de entrar em tantos detalhes de configuração, pois o tempo e o trabalho não propõe um estudo minucioso da ferramenta. Isso poderia ficar para um estudo futuro.
4.1.2 Utilização e Estudo do Ambiente
Após a configuração básica de um ambiente de rede de teste, pode ser visto o comportamento e utilização dos serviços e parâmetros gerenciados para entender melhor o funcionamento da ferramenta e em que ela pode nos ajudar. Inicialmente no menu “Monitoramento” temse a opção de “Resumo”, que mostra a grosso modo os estados baseados nas triggers de alguns serviços mostrando a cor vermelho para os casos com problemas e verde os casos que estão em perfeito funcionando. Com esta visão, pode ser identificado rapidamente como está o funcionamento dos serviços da rede, pois mostra todos os elementos gerenciáveis da rede. A Figura 26, mostra esta tela para o ambiente criado para este estudo de caso. Pode ser percebido que as três máquinas cadastradas na nossa rede, e que foram definidas como monitoradas, estão presentes na tela de resumo.
Entretanto somente uma possui dados gerenciados reais, pois as outras não têm nem agente SNMP instalado, nem o servidor ZABBIX. As outras duas estão com o estado de “Servidor {HOST_NAME} inalcançável”, não permitindo assim a coleta das informações necessárias para o gerenciamento. Se tivesse nestas máquinas um agente SNMP, poderia ser instalado um servidor ZABBIX para coletar todas informações necessárias para a gerência. Entretanto como nestas máquinas não haviam permissões de instalação, não foi possível efetuar isso.
Figura 26 Resumo da Rede Gerenciada
Além do resumo, pode ser visto os últimos valores configurados para para os parâmetros gerenciados. O resultado é mostrado em forma de tabela contendo o nome do parâmetro, a última hora de verificação de mudança, o último valor e a mudança.
Além disso temse a opção de verificar um Gráfico, para valores numéricos e um histórico para valores não numéricos. A Figura 27 mostra melhor esta tela.
Figura 27 Últimos Estados
Ao clicar no link Gráfico de algum parâmetro onde o valor seja numérico, abrirá uma tela com um gráfico mostrando a evolução do valor durante um determinado tempo. Dependendo do parâmetro, é através deste gráfico que pode ser feito uma análise e depois tomar decisões para solucionar problemas relacionados ao planejamento de capacidade. Por exemplo, se o parâmetro é relacionado ao uso da memória, o administrador poderá ver se há a necessidade de colocar mais memória física. A Figura 28 mostra um exemplo do parâmetro Memória Livre para o host 'Note_Esley'.
Figura 28 Gráfico de Memória Livre
Para os casos de valores numéricos, em vez de um gráfico, é mostrado um histórico de mudança de valores do parâmetro desejado. A Figura29 mostra um exemplo.
Figura 29 Histórico de Ítens
Além disso há as triggers, que nada mais são que os alarmes disparados pelos servidores notificando o administrador da ocorrência de um erro. É uma amostragem mais detalhada do que foi visto na tela de resumo. Neste ponto é tratado uma das áreas mais importantes da gerência de rede que é a Gerência de Falhas. Nesta tela é mostrado todos os erros, os seus estados, nível de severidade, data e hora da ocorrência e dois links. O primeiro significa que o usuário está ciente do erro e faz o reconhecimento, como por exemplo: “Estou ciente do problema e estou tomando as medidas cabíveis” e o segundo é somente a adição de comentários. Além das informações básicas mostrada acima, o administrador pode também mostrar mais detalhes como o parâmetro referente ao erro e as ações a serem tomadas caso essa trigger seja verdadeira. Na Figura 30 pode ser visto que temse quatro erros para a máquinas 'Note_Esley' e um erro para cada uma das outras duas máquinas.
Figura 30 Estado das Triggers
Hoje em dia toda ferramenta que trate o mínimo que seja relacionado a segurança e controle dos dados, tem um módulo de auditoria, ou seja, um módulo que armazene toda ação feita no sistema por qualquer usuário a fim de mudar algum valor, cadastrar algum host e etc. A auditoria de sistemas, auxilia muito um administrador de redes a saber se alguém, e quem fez a alteração em um determinado dado. É um módulo muito poderoso na ajuda de controle das informações e segurança dos dados do sistema.
Figura 31 Auditoria das Informações
Outro ponto bem interessante é a usabilidade do que foi feito na configuração, que é o cadastro de mapas. É bem interessante a possibilidade de ser ver o mapa da rede, com informações dos elementos, inclusive os erros encontrados em cada um. É uma outra forma de representar o que é visto no resumo, porém de uma maneira mais amigável.
Figura 32 Mapa de Rede
Diferente de antes que havia quatro erros no host 'Note_Esley', agora têmse três, e isso também é visível no mapa da rede. Foi resolvido um dos erros porque foi inicializado o serviço de FTP. Se o elemento de rede for clicado, será mostrada a visualização dos parâmetros gerenciados.
Outra função que pode auxiliar o administrador de rede a tomar decisões para melhorar o funcionamento da rede, é a visualização de relatórios. Alguns relatórios estão disponíveis e podem ser vistos em Relatórios > Relatórios Disponíveis. A Figura 33 mostra a tela de relatórios que podem ser usados.
Figura 33 Relatórios Disponíveis
Pode ser visto que para o serviço de FTP, quase 50% do tempo em que foi feito o gerenciamento dos hosts o serviço ficou parado, o que pode não ser uma boa notícia, pois pode estar acontecendo algum problema com o serviço, que não era o caso da máquina 'Note_Esley', porque o serviço realmente estava parado. Então neste ponto, pode ser identificado a disponibilidade do serviço, ou se houve alguma mudança de estado. Se o administrador clicar no link Show de algum relatório disponível, aparecerá em forma de gráficos o relatório informando a porcentagem referente a cada estado possível do item. A Figura seguinte mostra um exemplo para o relatório que mostra se o arquivo /etc/passwd foi alterado.
Figura 34 Relatório
Pode ser notado até aqui um caso de uso de uma ferramenta poderosa no auxílio de gerência de redes. Foram mostradas algumas funcionalidades que foram usadas na rede de teste criada para um estudo de caso para mostrar e analisar como está o andamento da rede. Entretanto existem muitas outras funcionalidades que não foram mostradas aqui. Mas para aprender mais sobre a ferramenta ZABBIX, é recomendável acessar o site da ferramenta.
Bibliografia
[1] http://www.zabbix.com/[2] http://www.zabbix.com/download [3] http://www.gouvea.net/zabbix.html [4] http://wendelneves.wordpress.com/2009/06/17/instalandoozabbixnoubuntu/ [5] http://linux.eduardosilva.eti.br/parte_ii_instalando_e_rodando_o_zabbix [6] http://brlinux.org/2009/monitoramentofacilcomzabbix/ [7] http://linux.eduardosilva.eti.br/monitoramentofacilcomzabbix [8] http://www.vivaolinux.com.br/artigo/InstalacaodoZabbix1.6noCentOS5?pagina=4[9] http://packages.debian.org/sid/i386/zabbixagent/download [10] http://www.google.com.br [11] http://www.ppgia.pucpr.br/~jamhour/RSS/TCCRSS08A/Raphael%20Celuppi%20%20Artigo.pdf [12] http://www.linuxmagazine.com.br/images/uploads/pdf_aberto/LM24_zabbix.pdf [13] http://www.lsl.dcc.ufmg.br/documentacao/doc_download/117ferramentademonitoramentoderedeszabbix.html [14] http://www.ataliba.eti.br/files/txts/zabbix.pdf [15] http://www.ginux.ufla.br/files/monoEsleyBonomo.pdf