Sie sind auf Seite 1von 24

Conhecendo e instalando o Zabbix

O que o Zabbix?

Zabbix um sistema web, de acesso gratuito e de cdigo aberto. usado para o monitoramento e o gerenciamento de equipamentos de redes (cmera de segurana, roteador, computador, etc) criado por Alexei Vladishev e, atualmente, desenvolvido pela Zabbix SIA. Zabbix monitora vrios parmetros de rede e faz a checagem da integridade dos equipamentos, usando um mecanismo de notificao flexvel que permite aos usurios configurarem o envio de alertas por e-mail, SMS ou Jabber (gtalk). Esta caracterstica permite uma rpida reao aos problemas que forem detectados. As principais caractersticas e funcionalidades do Zabbix so: Auto-descoberta de dispositivos de rede. Monitoramento distribudo com a administrao centralizada via WEB. Suporte para mecanismo de pooling e trapping. Aplicao servidor compatvel com os sistemas operacionais Linux, Solaris, HP -UX, AIX, BSD Livre, Open BSD, Mac OS X. Aplicao cliente de alta performance compatvel com Linux, Solaris, HP -UX, AIX, BSD Livre, Open BSD, OS X, Tru64/OSF1, NT4.0, Windows 2000, Windows 2003, Windows XP, Windows Vista e Windows 7. Monitoramento sem agente (aplicao cliente). Suporte a SNMP. Autenticao segura de usurio. Permisses flexveis de usurio. Auditoria. Entre outras.

O Zabbix composto de vrios componentes de software, os principais so: Zabbix Server => o centro do sistema Zabbix . Ele pode verificar remotamente os servios de rede (como servio web e e-mail), utilizando a checagem simples, mas tambm o componente central para que os agentes clientes enviem um relatrio com informaes e estatsticas a cerca da disponibilidade e integridade do equipamento que est sendo monitorado. Depois que o servidor recebe essas informaes, ele processa, gerencia os equipamentos, exibe relatrios, envia alertas e toma aes dependendo do problema e da configurao. Zabbix Proxy => uma parte opcional do Zabbix. O Proxy coleta dados de desempenho e disponibilidade, em nome de um servidor Zabbix Agente Zabbix => aplicao cliente do Zabbix que coleta informaes do equipamento e envia ao servidor. O agente capaz de acompanhar ativamente o uso dos recursos e aplicaes locais, tais como: discos rgidos, memria, processador, processos, servios e aplicativos emexecuo.

Na pgina http://www.zabbix.com/documentation/1.8/manual/installation podem ser encontradas as informaes sobre os pr-requisitos de hardware e software exigidos na instalao do Zabbix.

Observaes:
O componente Zabbix Server no funciona no Windows. Apenas o componente Zabbix Agent funciona no Windows nas verses 2000, 2003, XP, Vista e 7. O componente Zabbix Server funciona no GNU/Linux e Unix de acordo com a lista abaixo: AIX; FreeBSD; HP-UX; GNU/Linux; Mac OS/X; NetBSD; OpenBSD; SCO Open Server; Solaris.

Objetivos do trabalho

Preparar o ambiente para instalar o servidor do Zabbix: 1) Obter os fontes da ferramenta; 2) Preparar o Apache; 3) Preparar o Ambiente PHP; 2) Preparar o MySql para servir de back end.

Instalar o servidor e agente: 1) Instalao do agente Zabbix; 2) Instalao das dependncias do Zabbix 3) No Servidor Configurao de um virtual host dentro do Apache para o front end, incluindo modificao dos parmetros do PHP.

Perguntas relacionadas:
1) Cite algumas das principais caractersticas e funcionalidades do Zabbix; 2) Porque devo me preocupar com monitorao do meu ambiente? 3) Por onde podemos monitorar o sistema e servios do host do Agente Zabbix?

Preparar o ambiente para instalar o servidor do Zabbix:


Obtendo os fontes do Zabbix

Antes de comear a trabalhar com as diversas partes bsicas da instalao,precisamos baixar o cdigo fonte do Zabbix. Voc sempre pode faz-lo atravs da URL: 1) http://www.zabbix.com/download.php. 2) http://sourceforge.net/projects/zabbix/files/

Preparar o Apache

Comece acessando o site e fazendo o download: http://httpd.apache.org/download.cgi Depois do download da ferramenta, incie o instalador do Apache, a primeira tela de instalao semelhante a essa:

Basta seguir os passos, e voc ir chegar a seguinte tela de configurao. Aqui onde iremos efetuar algumas configuraes do servidor, basta preencher o primeiro campo com o valor localdomain, o segundo campo com localhost e o terceiro um e-mail que desejar. recomendvel que voc deixe o Apache rodando na porta 80, no que isso seja obrigatrio, voc pode alterar caso queira. Basta aps clicar em Next:

Chegamos no passo onde iremos escolher o tipo de instalao, eu selecionei Custom pois quero personalizar a pasta de instalao do Apache:

Por padro, o Apache ser instalado na pasta Arquivos de Programas > Apache Software Foundation > Apache 2.2, mas vou instal-lo dentro da minha pasta Webserver, ficando da seguinte forma:

Basta agora clicar em Install e a instalao ser iniciada:

Aps o trmino da instalao, voc ver que apareceu na sua System Tray (aqueles cones que ficam ao lado do relgio do Windows) um novo cone, o Apache Monitor:

Atravs dele temos acesso ao status do Apache, onde podemos obter informaes se ele est rodando, podemos tambm parar o sevidor, reinici-lo e inici-lo. Basta clicar com o boto direito no cone e escolher Open Apache Monitor:

J que o Apache est rodando corretamente, vamos test-lo na prtica, abra o seu browser e digite o seguinte na barra de endereos: http://localhost/. Voc ver uma mensagem semelhante a abaixo:

As pginas ficam por padro dentro da pasta htdocs, n o diretrio onde o Apache foi instalado. No meu caso ela fica na seguinte pasta: C:\Webserver\Apache2.2\htdocs. Caso voc queira agora pode substituir o arquivo index.html pelo arquivo do seu site e tambm pode adicionar al pastas e subpastas representando outros diretrios de seu site. Por exemplo, se existir uma pasta chamada wordpress dentro do diretrio htdocs: C:\Webserver\Apache2.2\htdocs\wordpress, ela deve ser acessada dessa forma: http://localhost/wordpress/. Se voc ao acessar localhost em seu browser e ele ficar buscando o servidor, abrir uma pgina de busca, ou at mesmo retornar Servidor no encontrado, atente-se se o Apache est rodando corretamente e o mesmo foi iniciado. Se voc efetuou esses passos e mesmo assim ele no est funcionando, instale-o novamente seguindo os passos acima que o problema pode ser resolvido. At agora nosso servidor l somente HTML puro. Porm, diferente a forma de acesso do endereo http://localhost/index.html de C:\Webserver\Apache2.2\htdocs\index.html. No primeiro caso, o navegador solicita a pgina ao servidor localhost (que o seu computador), recebe a pgina do servidor, armazena a mesma no cache, e s depois ento a exibe. Ele trata

como se fosse um site que estivesse realmente hospedado em algum servidor da Internet. Como o servidor do site est no seu prprio PC, trata-se ento de uma Intranet. No segundo caso, voc est acessando o arquivo diretamente do seu HD. O navegador pode at armazenar algum dado no cache, mas no h nenhuma comunicao com qualquer servidor. Ele l o arquivo como qualquer programa leria qualquer arquivo.

Preparando o ambiente PHP

Comeamos fazendo o download do PHP que se encontra em: http://www.php.net/downloads.php

A partir de agora vamos proporcionar mais interatividade ao nosso servidor com a instalao do PHP, a verso que vamos utilizar aqui a 5.3.1. O PHP um mdulo para o Apache. Ao processar uma pgina PHP, o Apache envia a pgina ao mdulo PHP, que a processa e devolve o resultado ao Apache, que por sua vez, envia ao browser que fez a solicitao. Para isso, a instalao do PHP consiste basicamente em colocar os arquivos numa pasta, e configurar o Apache para que enxergue os mdulos PHP e chame -os sempre que encontrar um arquivo .php. As telas de instalao podero ser diferentes em outras verses, mas as idias sero basicamente as mesmas:

Basta agora voc ir seguindo os passos at chegar a tela onde voc escolher a pasta de instalao do PHP. Como j fiz anteriormente com o Apache, tambm vou personalizar a pasta do instalao do PHP, que ser a seguinte: C:\Webserver\PHP5:

Nesse passo, ele ir pedir o tipo de servidor voc est utilizando, basta escolher o Apache 2.2.XX:

Nesse prximo passo, ele ir solicitar o local dos arquivos de configurao do Apache. Localize a pasta conf, dentro da pasta onde foi instalado o Apache, seno a configurao no ser automatizada e voc ter que efetuar a mesma manualmente:

O prximo passo onde voc escolhe quais extenses quer instalar junto com o PHP, escolha as que julgar necessrio ou simplesmente deixe como est:

Ao final do processo, caso esteja tudo OK, basta agora clicar no boto install:

Se tudo ocorreu bem at a, nenhuma mensagem de erro ser exibida. Basta agora voc reiniciar o Apache e as pginas .php sero processadas e entregues corretamente ao browser. Ainda no foi configurado um servidor de banco de dados, ento apenas os recursos diretos do PHP funcionaro (e os dos outros mdulos pr-instalados do Apache). Um timo meio de testar o PHP e ver diversas informaes do servidor criar uma pgina PHP, com o seguinte contedo:

Salve a mesma dentro da pasta htdocs com o nome info.php e ento acesse a pgina pela seguinte URL: http://localhost/info.php. Voc ter acesso agora a uma pgina com todas as informaes do PHP e os componentes instalados:

Preparando o banco de dados

O Zabbix no utiliza recursos como o RRDTools para armazenar dados, ele faz uso apenas de um SGBD ou de um banco de dados mais simplrios (como o sqlite, MySql) para

armazenar configuraes, hosts, templates, histrico, etc. Por isso precisamos selecionar um dos bancos nativos ou usar ODBC (este ltimo no recomendado). No nosso caso o MySql, um SGBDlivre e de alta performance, ser usado em nossa demonstrao. Embora no parea a princpio, o banco de dados do Zabbix de extrema valia para a empresa pois ele contm todo o histrico de funcionamento de sua infraestrutura e atravs dele podemos coletar SLAs e informaes de capacity plan.

Etapas de Criao do MySql: A interface de instalao no existe muito segredo, basta ir seguindo os passos que sero mostrados abaixo. Ao executar o instalador, voc ter acesso a uma tela semelhante a essa:

O prximo passo onde iremos selecionar o tipo de instalao: Tpica, Completa ou Customizada. Eu optei pela instalao customizada pois quero personalizar a pasta de instalao do MySQL:

Localizao da pasta de instalao do MySQL:

Estando tudo Ok, basta clicar em Install:

Aps o final da instalao, vamos efetuar as configuraes do MySQL, basta seguir os passos que sero mostrados aqui:

A seguir escolha configurao detalhada:

Escolha Developer Machine:

Escolha Multifunctional Database:

No passo ao que se refere a instalao do InnoDB, deixe como o caminho Installation Patch:

Deixe selecionado Decision Support (DSS)/OLAP:

Nesse passo, no se esquea de deixar selecionado a caixa Adicionar exceo ao Firewall:

Selecione Best Support for Multilingualism:

A prxima opo de incluir o caminho do MySQL na varivel de ambiente Path do Windows. Deixe-a selecionada pois assim voc pode chamar os executveis do MySQL a partir de qualquer prompt, em qualquer pasta:

No prximo passo deve-se definir a senha de root, ele o administrador do MySQL. Caso voc j programe em PHP j sabe que para acessar um banco de dados necessrio fornecer um nome de usurio e senha vlidos para aquele banco. Voc poder usar o root e a senha definida aqui, ou outra conta. Mas tenha em mente que para criar outras contas voc precisar do root, e para alterar as configuraes ou criar novos bancos de dados, tambm. Por isso importante ter essa senha guardada em um local seguro:

No prximo passo basta voc clicar em execute para que o MySQL d incio ao processo de configurao:

Caso tudo tenha corrido OK, voc ver uma tela como essa, caso tenha algum problema, efetue as configuraes novamente:

Caso queira checar se o servio do MySQL est rodando corretamente no Windows, basta fazer o seguinte. Abra um prompt de comando, e digite: mysql -u root p, ele ir pedir a senha de root que voc havia configurado anteriormente, basta ento digitar a mesma:

Aps digite status e pronto, voc ter informaes sobre o MySQL:

Instalao do Agente Zabbix


Podemos fazer o download do agente no site do Zabbix, ou copia-lo do diretrio que contm os fontes de instalao do Zabbix Server, neste caso os arquivos se encontram em zabbix-verso/bin, dentro deste diretrio temos 2 sub-diretrios (win32 e win64) cada um respectivo a arquitetura do seu processador. Copiar ou Descompactar os arquivos, dependendo da sua escolha no passo anterior, na raz do C:\, renomear a pasta para Zabbix. Copiar ou criar o arquivo zabbix_agentd.conf dentro da pasta C:\Zabbix, um arquivo de exemplo pode ser encontrado no diretrio que contm os fontes de instalao do Zabbix Server, no diretrio zabbixverso/misc/conf.

CONTEDO MNIMO DO ARQUIVO ZABBIX_AGENTD.CONF: Server=IP do Servidor do Zabbix Hostname=Nome da mquina Cliente StartAgents=5 DebugLevel=3 LogFile=C:\Zabbix\zabbix_agentd.log Timeout=3

CRIANDO UM SERVIO ZABBIX AGENT NO WINDOWS: Abrir um prompt de comando e executar o seguinte comando: C:\Zabbix\zabbix_agentd.exe -i -c C:\Zabbix\zabbix_agentd.conf

Se tudo ocorreu bem voc recebera as mensagens: zabbix_agentd.exe [1540]: Service "ZABBIX Agent" installed successfully. zabbix_agentd.exe [1540]: Event source "ZABBIX Agent" installed successfully. Se desejar ver as demais opes do agente execute o seguinte comando: C:\Zabbix\zabbix_agentd.exe --help

VERIFICANDO O STATUS DO SERVIO DO ZABBIX: Iniciar // Painel de Controle // Ferramentas administrativas // Servios:

VERIFICANDO AS PROPRIEDADES DO SERVIO:

Duplo clique em ZABBIX Agent

Voc tambm pode encontrar um vdeo, com o passo a passo da instalao do agente, atravs deste link do youtube: https://www.youtube.com/watch?v=Qq2eAhYbRn4

Instalando as dependncias do Zabbix


Os passos mostrados a baixo, podem ser encontrados neste vdeo: http://www.youtube.com/watch?v=t1W_s2seb48&feature=youtu.be Comece com: aptitude update aptitude install libmysqlclient15-dev libsnmp9-dev libmysql++-dev php5 mysql-server-5.0 apache2 php5-mysql Observao: Se o aptitude no tiver instalado, voc pode instala-lo com o seguinte comando: #sudo apt-get install aptitude (Se j tiver logado como root no precisa do sudo). 2 Vamos fazer agora o download da ultima verso estvel do zabbix que neste caso a 1.8.4 com o seguinte comando: wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/1.8.4/zabbix1.8.4.tar.gz/download 3 Descompacte o arquivo do Zabbix no seguinte diretrio /opt com o seguinte comando: tar xfvz zabbix-1.8.4.tar.gz -C /opt

4 Acesse o diretrio descompactado cd /opt/zabbix-1.8.4 5 Digite o seguinte comando. #mysql -uroot -p<senha> (Lembre-se que para isso o mysql j deve estar instalado). 6 Crie a banco zabbix com o seguinte comando: mysql> create database zabbix; (Digite o ponto e virgula) mysql>quit (Digitando quit vai permitir que voc saia do banco) 7 Acesse o diretrio da pasta zabbix-1.8.4 em que se encontra o banco de dados. #cd create/mysql #cat schema.sql | mysql -uroot -p<senha> zabbix 8 Acesse o diretrio que carrega as figuras do funcionamento do sistema e copie tambm. # cd ../data # cat data.sql | mysql -uroot -p<senha> zabbix # cat images.sql | mysql -uroot -p<senha> zabbix 9 Legal, agora que configuramos o banco de dados iremos compilar o aplicativo com os seguinte comandos abaixo: # cd ../.. # ./configure --enable-server --with-mysql --with-net-snmp --enable-agent # make # make install 10 Crie um diretrio para guardar os arquivos do zabbix. # mkdir /etc/zabbix 11 Crie um arquivo de configurao do zabbix com o seguinte comando: # touch /etc/zabbix/zabbix_server.conf 12 Copie este contedo e cole no arquivo /etc/zabbix/zabbix_server.conf: # This is config file for ZABBIX server process # To get more information about ZABBIX, # go http://www.zabbix.com ############ GENERAL PARAMETERS ################# # This defines which server this is. # Default value 1 # This parameter must be between 1 and 255 Server=1 # Number of pre-forked instances of pollers # Default value is 6 # This parameter must be between 5 and 255 StartPollers=6 # Number of pre-forked instances of trappers # Default value is 5

# This parameter must be between 2 and 255 StartTrappers=5 # Listen port for trapping. Default port number is 10051. This parameter # must be between 1024 and 32767 ListenPort=10051 # How often ZABBIX will perform housekeeping procedure # (in hours) # Default value is 1 hour # Housekeeping is removing unnecessary information from # tables history, alert, and alarms # This parameter must be between 1 and 24 HousekeepingFrequency=1 # How often ZABBIX will try to send unsent alerts # (in seconds) # Default value is 30 seconds SenderFrequency=30 # Uncomment this line to disable housekeeping procedure #DisableHousekeeping=1 # Specifies debug level # 0 - debug is not created # 1 - critical information # 2 - error information # 3 - warnings (default) # 4 - for debugging (produces lots of information) DebugLevel=3 # Specifies how long we wait for agent (in sec) # Must be between 1 and 30 Timeout=5 # After how many seconds of unreachability treat a host as unavailable #UnreachablePeriod=45 # How ofter check host for availability during the unreachability period #UnavailableDelay=15 # How ofter check host for availability during the unavailability period #UnavailableDelay=60 # Name of PID file PidFile=/var/tmp/zabbix_server.pid

# Name of log file # If not set, syslog is used LogFile=/tmp/zabbix_server.log #Location for custom alert scripts AlertScriptsPath=/home/zabbix/bin/ #Location of 'fping. Default is /usr/sbin/fping #FpingLocation=/usr/sbin/fping # Frequency of ICMP pings. Defauls is 30 second. #PingerFrequency=30 # Database host name # Default is localhost #DBHost=localhost # Database name DBName=zabbix # Database user DBUser=root # Database password # Comment this line if no password used DBPassword=senha_do_banco_zabbix # Connect to MySQL using Unix socket? #DBSocket=/tmp/mysql.sock 11 Crie um usurio com o nome de zabbix #useradd zabbix 12 Crie um diretrio zabbix tambm dentro da pasta /var/www # mkdir /var/www/zabbix 13 Altere o contedo do arquivo /opt/zabbix-.1.8.4/frontends/php/include/db.inc.php nas opes abaixo de acordo com as suas configuraes. $DB_TYPE ="MYSQL"; $DB_SERVER ="localhost"; $DB_DATABASE ="zabbix"; $DB_USER ="root"; $DB_PWD ="senha_do_banco_zabbix"; (Digite a senha do seu banco zabbix)

14 Copie todo contedo descompactado para a pasta onde dar acesso ao Zabbix Web. # cp -r /opt/zabbix-1.1.8/frontends/php/* /var/www/zabbix 15 Aplique permisses para que o apache possa acessar a pasta zabbix: # chown -R www-data:www-data /var/www/zabbix 16 Inicie o servio zabbix: zabbix_server (Caso o servio no inicie , verifique se os parametros no arquivo zabbix_server.conf esto realmente corretos.) 17 Agora voc j pode acessar o Zabbix pelo Browser atravs do endereo: http://localhost/zabbix ou se voc estiver em outra maquina que no seja o servidor, substitua o localhost pelo ip da maquina.

No servidor Zabbix
Agora vamos cadastrar este computador na interface web do Zabbix para iniciar o monitoramento. Acesse a interface web do Zabbix. Clique na aba Configurao > Hosts(Configuration > Hosts, se estiver em Ingls). Clique no boto Criar Host (ou Create Host). Ser exibida uma tela semelhante a das figuras 4.1 e 4.2

No campo Nome (ou Name), como mostrado na figura 4.1, digite o nome do computador cliente. No campo Grupos (ou Groups) selecione Zabbix Servers e clique no boto >> para remover este grupo. No campo Novo Grupo (ou New group) digite, por exemplo, Clientes Windows XP para identificar o novo grupo a ser formado apenas por computadores que tem o Windows XP instalado (isto muito til para identificar os computadores da rede). Em Nome DNS (ou DNS name) digite o nome que identifica este computador no DNS, deixe em branco se no souber. Em Endereo IP (ou IP address) digite o IP do computador cliente. Os campos restantes podem ficar com os valores padro. Agora edite os campos mostrados na figura 4.2. No campo Associado aos templates (ou Linked templates) clique no boto Adicionar (ou Add). Ser exibido uma janela suspensa chamada de pop up com uma lista de templates contendo vrios parmetros de monitoramento e gerenciamento pr-configurados para um determinado tipo de equipamento. Escola a opo Template_Windows e clique no boto Selecionar (ou Select). Pronto! O cliente foi configurado. Clique no boto Salvar (ou Save). Perceba que o Servidor Zabbix tentar estabelecer a comunicao com o cliente e mostrar o status da comunicao com o agente e indicar se o host est ou no sendo monitorado.