Instalando Zabbix Server.

Neste artigo vamos falar sobre o Zabbix, ferramenta de monitoramento de ativos bem renomado e muito utilizada tanto pela comunidade quanto pelo meio corporativo. Demostrarei como realiza a instalação a partir de seu código fonte num ambiente Linux, utilizando como distribuição base o Debian 8.8.

CONSIDERAÇÕES

Vamos levar em consideração que já possua familiaridade com o ambiente Linux e aptidão para executar as tarefas descritas aqui. Antes de instalarmos a ferramenta, é interessante observar alguns pontos: 1)  Caso possua um domínio em sua rede, é interessante adicionar seu novo servidor a rede e definir todas as configurações preliminares antes de iniciarmos a instalação do Zabbix. “Colocando Linux no Domínio“.  2) O Zabbix também precisa de alguns outros serviços instalados na máquina, como o APACHE2, PHP e BD. Realize a instalação destes componentes antes de iniciarmos a instalação do Zabbix. “Servidor Web com apache2“.

1) DOWNLOAD DA FERRAMENTA.

Vamos realizar o download de nossa ferramenta Zabbix através do site oficial. Utilize a versão mais recente disponível. Na elaboração deste artigo a versão mais recente para utilização é a versão 3.2.7.

https://www.zabbix.com/download

Após o download crie uma pasta em “/opt/zabbix” e descompacte o arquivo.

mkdir /opt/zabbix
tar –xvzf zabbix-[VERSÃO ].tar.gz

2) PREPARANDO AMBIENTE

Antes de instalarmos nossa ferramenta, além dos pontos mencionados em “Considerações” deste artigo, também é necessário a instalação de alguns pacotes utilizados pela ferramenta Zabbix, conforme ilustrado abaixo.

apt-get update
apt-get -y install openjdk-7-jdk build-essential snmp libssh2-1-dev libssh2-1 libopenipmi-dev libsnmp-dev libcurl4-gnutls-dev fping libxml2 libxml2-dev curl libcurl3-gnutls libcurl3-gnutls-dev libiksemel-dev libiksemel-utils libiksemel3 libmysqld-dev libapache2-mod-php5 php-net-socket libpq5 libpq-dev libmysqld-dev php5-ldap

Vamos criar também um usuário no sistema que será utilizado pelo Zabbix, conforme ilustrado abaixo.

groupadd zabbix
useradd -g zabbix zabbix

3) PREPARANDO O BANCO DE DADOS

Como exposto no inicio do artigo, estamos considerando que já tenha realizado a instalação do banco de dados, precisamos agora então criar o banco de dados e o usuário que será utilizado pelo Zabbix. Para isso, utilize os comandos conforme ilustrado abaixo.

mysql -uroot -p
create database zabbixdb;
GRANT ALL PRIVILEGES ON zabbixdb.* TO zabbix@localhost IDENTIFIED BY 'SUA_SENHA';
quit;

Precisamos também popular o banco de dados para nosso novo banco. Para isso, acesso a pasta descompactada do Zabbix, “/opt/zabbix/zabbix-[Versão]/database/mysql” e execute os comandos conforme ilustrado abaixo.

cd /opt/zabbix/zabbix-[Versão]/database/mysql
mysql -u zabbix -p zabbixdb < schema.sql
mysql -u zabbix -p zabbixdb < images.sql
mysql -u zabbix -p zabbixdb < data.sql

5) CONFIGURANDO O PHP

Como exposto no inicio do artigo, também estamos levando em consideração que já possua o PHP instalado. Precisamos então configurar algumas variáveis no arquivo “/etc/php5/apache2/php.ini“. Realize as alterações conforme ilustrado abaixo.

vi /etc/php5/apache2/php.ini

OBS: Delete o símbolo “;”, que porventura estiver no início da linha de cada parâmetro abaixo.

max_execution_time = 300
max_input_time = 300
post_max_size = 16M
date.timezone = "America/Sao_Paulo"
always_populate_raw_post_data = -1

Reinicie o serviço do apache2.

systemctl restart apache2.service

6) INSTALANDO ZABBIX

Com todos os passos anteriores executados e bem configurados, agora podemos realizar a compilação e instalação da ferramenta Zabbix através do código do fonte.

Antes de realizarmos a compilação, precisamos entender o significado de alguns parâmetros que utilizaremos.

–enable-server: Habilita o Zabbix server.
–enable-agent: Habilita o Zabbix agente.
–enable-java: Habilita o monitoramento de aplicações Java.
–with-mysql: Informa que será usado o banco de dados MySQL.
–with-postgresql: Informa que será usado o banco de dados PostgreSQL.
–with-net-snmp: Habilita o monitoramento SNMP.
–with-libxml2: Habilita o uso da LibXML, um novo pré-requisito para o monitoramento de máquinas virtuais do tipo VMWare.
–with-jabber=/usr: Habilita o envio de alertar via Jabber.
–with-libcurl=/usr/bin/curl-config: Habilita o uso da biblioteca curl, usada no monitoramento de aplicações Web. Opcionalmente você pode informar a localização do comando curl-config (use o comando “whereis curl-config” para descobrir o caminho).
–with-ssh2: Habilita o monitoramento via SSH.
–with-openipmi: Habilita o monitoramento de equipamentos via IPMI (http://goo.gl/OX4ui).
Para conhecer mais opções de compilação, execute o comando “./configure –help” dentro do diretório de instalação do Zabbix.

Acesse  “/opt/zabbix/zabbix-[Versão]/” e execute o comando conforme ilustrado abaixo.

./configure --enable-server --enable-agent --enable-java --with-mysql --with-net-snmp --with-jabber=/usr --with-libcurl=/usr/bin/curl-config --with-ssh2 --with-openipmi --with-libxml2
make install

Após os comandos, caso não ocorra nenhum erro, a instalação da ferramenta estará finalizada.

7) CONFIGURANDO ZABBIX

Precisamos configurar alguns arquivos do Zabbix, edite o arquivo “/usr/local/etc/zabbix_agentd.conf” e configure conforme ilustrado abaixo.

PidFile=/tmp/zabbix_agentd.pid
LogFile=/tmp/zabbix_agentd.log
LogFileSize=2 (Tamanho máximo do log em MB)
DebugLevel=3
Server=127.0.0.1
ListenPort=10050
Hostname=[Nome_do_HOST]
EnableRemoteCommands=1
LogRemoteCommands=1
Timeout=3

Também precisamos configurar o arquivo “/usr/local/etc/zabbix_server.conf” conforme ilustrado abaixo.

ListenPort=10051
LogFile=/tmp/zabbix_server.log
LogFileSize=2 (Tamanho máximo do log em MB)
PidFile=/tmp/zabbix_server.pid
DBHost=localhost
DBName=zabbixdb
DBUser=zabbix
DBPassword=[Senha do usuario zabbix para acessar o bd]
StartIPMIPollers=1 (Somente se form compilado --with-openipmi)
StartDiscoverers=5
Timeout=3
FpingLocation=/usr/bin/fping

Agora vamos copiar os arquivos frontend do Zabbix para nosso apache2 também já instalado. Para isso, execute o comando conforme ilustrado abaixo.

mkdir /var/www/html/zabbix
cp -R /opt/zabbix/zabbix-[VERSAO]/frontends/php/* /var/www/html/zabbix/
chown -R www-data:www-data /var/www/html/zabbix/

Reinicie o serviço do apache2.

 
systemctl restart apache2.service 

8) INICIALIZAÇÃO AUTOMÁTICA

Precisamos definir um script de inicialização para nossa ferramenta Zabbix. Caso o servidor seja reiniciado, nossa ferramente entrará em funcionamento de forma automática. Para isso, vamos criar um arquivo “/etc/init.d/zabbix_server” e adicionar seu conteúdo conforme ilustrado abaixo.

#!/bin/sh
#
# Zabbix daemon start/stop script.
#
# Written by Alexei Vladishev <alexei.vladishev@zabbix.com>.

NAME=zabbix_server
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/home/zabbix/bin
DAEMON=/usr/local/sbin/${NAME}
DESC="Zabbix server daemon"
PID=/tmp/$NAME.pid

test -f $DAEMON || exit 0

set -e

case "$1" in
 start)
 echo "Starting $DESC: $NAME"
 start-stop-daemon --oknodo --start --pidfile $PID \
 --exec $DAEMON
 ;;
 stop)
 echo "Stopping $DESC: $NAME"
 start-stop-daemon --oknodo --stop --pidfile $PID \
 --exec $DAEMON
 ;;
 restart|force-reload)
 $0 stop
 sleep 3
 $0 start
 ;;
 *)
 N=/etc/init.d/$NAME
 echo "Usage: $N {start|stop|restart|force-reload}" >&2
 exit 1
 ;;
esac
exit 0

Também vamos criar o arquivo “/etc/init.d/zabbix_agentd” e adicionar seu conteúdo conforme ilustrado abaixo.

#!/bin/sh
#
# Zabbix agent start/stop script.
#
# Written by Alexei Vladishev <alexei.vladishev@zabbix.com>.
NAME=zabbix_agentd
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/home/zabbix/bin
DAEMON=/usr/local/sbin/${NAME}
DESC="Zabbix agent daemon"
PID=/tmp/$NAME.pid
test -f $DAEMON || exit 0
set -e
case "$1" in
start)
echo "Starting $DESC: $NAME"
start-stop-daemon --oknodo --start --pidfile $PID \
--exec $DAEMON
;;
stop)
echo "Stopping $DESC: $NAME"
start-stop-daemon --oknodo --stop --pidfile $PID \
--exec $DAEMON
;;
restart|force-reload)
$0 stop
sleep 3
$0 start
;;
*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|force-reload}" >&2
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0

Vamos tornar os scripts executáveis, e iniciar os novos serviços.

chmod +x /etc/init.d/zabbix_server /etc/init.d/zabbix_agentd
/etc/init.d/zabbix_server start
/etc/init.d/zabbix_agentd start

Habilite os scripts para serem executados na inicialização do sistema.

update-rc.d -f zabbix_server defaults
update-rc.d -f zabbix_agentd defaults

Com os passo realizados, nossa ferramenta Zabbix poderá ser inicializada automaticamente ao reiniciar o servidor.

9) ACESSANDO ZABBIX INTERFACE WEB

Até aqui conseguimos realizar toda a instalação necessária para nossa ferramenta Zabbix. Precisamos agora acessar pela primeira vez a interface web e finalizarmos as configurações. Para isso, acesse o endereço do seu Zabbix “http://ip-do-servidor/zabbix” via browser conforme ilustrado abaixo.

Clique no botão “Next Step“, verifique se todas as dependências do Zabbix foram atendidas. Se estiver tudo “OK“, siga para a próxima tela clicando em “Next Step” novamente. Caso contrato, reveja os passos desse artigo, algo deve ter passado sem sua percepção. Só avance quando todas as dependências forem satisfatórias.

Precisamos definir nossas configurações de banco, adicione as informações conforme ilustrado abaixo e clique em “Next Step“.

Digite o nome do host ou o endereço IP do host e o número da porta do servidor Zabbix, bem como o nome da instalação (opcional, é útil quando precisamos gerenciar vários servidores Zabbix) .

Confirme as informações da pré-instalação, se tudo estiver correto clique em “Next Step“.

Pronto, nossa ferramenta Zabbix esta instalada e configurada com sucesso, clique em “Finish” e acesse novamente a pagina “http://ip-do-servidor/zabbix“. Logue no Zabbix com o usuário Admin e senha zabbix. Acesse o menu “Configuration > Hosts“, e habilite o monitoramento para o servidor Zabbix.

CONCLUSÃO

Neste artigo foi exposto de maneira detalhada a configuração e instalação de uma das mais poderosas ferramentas de monitoramento de ativos existentes no mercado, o Zabbix.

Se você gostou deste post e através dele pude lhe ajudar, o que acha de aproximarmos nosso contato? Siga meu blog e me adicione no Linkedin, aproveite para classificar algumas das minhas competências/recomendações, este simples gesto faz toda a diferença.

Att,
Rafael Oliveira
SysAdmin

Você pode compartilhar esse artigo.

Siga o Blog Via E-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 47 outros assinantes

Sobre o Autor

Rafael Oliveira Maria - Linux

Rafael Oliveira

Bacharel em Sistemas de Informação, SysAdmin, Professor, Blogueiro e Entusiasta Linux.

Certificados:

LPIC-1-Large
LPIC-2
LinuxPlus Logo Certified
itil-foundation-digital-badge

Gostou do conteúdo? Ajude-me a manter o blog.

PicPay - Linux

Aceitamos pagamentos e doações via PicPay link picpay.me/rafaeloliveimar

2 respostas

  1. Boa tarde Rafael. Me chamo Wellington e trabalho em uma empresa de escritórios compartilhados. Fiz a implementação do Zabbix aqui em um Server ubuntu 18.04, porem não consigo de forme monitorar equipamentos via protocolo SNMP, já vi inúmeros post em fóruns, tutoriais no youtube, solicitei apoio aos grupos do Telegram do Zabbix, mas ainda não obtive sucesso, voce poderia me dar uma luz nessa situação?!!

    1. Boa tarde Wellignton!

      Desculpe a demora em lhe responder, estou envolvido em um projeto que esta me consumindo.

      O SNMP parece complicado mais não é. Utilize esse vídeo de exemplo. Link: https://www.youtube.com/watch?v=sYlwvvdMGcg

      Você precisa observar que para cada tido de host a ser monitorado será exigido Templates, então fica ligado nisso. Através deste vídeo você verá um passo a passo completo de como monitorar um Switch gerenciável via SMNP. Você pode aplicar isso a qualquer tipo de dispositivo, desde que possua protocolo SNMP.

      Espero ter ajudado, abr.

      Att,

Ficou com dúvida? Alguma Sugestão ou Elogio? Deixe seu comentário!