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
2 respostas
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?!!
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,