O Zabbix é um famoso software open source de monitoramento de redes, servidores e serviços, ou seja, um NMS (Network Management System). É considerado por muitos especialistas e profissionais da área como o melhor sistema de gerenciamento de rede disponível no mercado atual e, também, como um dos maiores sistemas open source (gratuito) do mundo.
Desenvolvido pelo letão Alexei Vladishev, lá em 1998, o Zabbix teve sua primeira versão lançada no início dos anos 2000. O sistema conta uma interface de gerenciamento web recheada de recursos para monitorar a disponibilidade de dispositivos de rede em geral (switches, roteadores, access point, controladores de acesso, etc), tráfego de rede (LAN, WAN, VPN e WAN, como links de Internet, por exemplo), servidores e sistemas. Com isso, é possível medir a qualidade destes dispositivos e serviços e, assim, a experiência do usuário.
O Zabbix pode exibir informações sobre este monitoramento em gráficos (dashboards) ou através de alertas, que podem ser configurados através de e-mail, SMS ou abertura automática de chamados em sistemas de helpdesk. O sistema ainda permite que ações automáticas sejam executadas a partir de eventos, como o restart de serviços (de um sistema operacional, por exemplo).
Vale a pena usar o Zabbix?
Por apresentar tantas funcionalidades e conseguir monitorar uma imensa lista de equipamentos e serviços, independente do tamanho da rede que estes pertençam, o Zabbix é considerado um sistema complexo de se trabalhar e configurar e, por isso, muitos são os que optam por sistemas mais simples ou comerciais por encontrarem dificuldades em seu uso.
A minha opinião é que o Zabbix é, realmente, bem complexo, porém, ele é muito robusto e poderoso, ou seja, vale a pena quebrar a cabeça e aprender a usá-lo!
Instalação do Zabbix 6.4 no Linux Debian 11
Nest post, resolvi trazer (mais) um passo a passo (afinal, a documentação do Zabbix, tanto oficial, como a disponível na Internet, é bem extensa) para instalar o Zabbix, em sua versão 6.4, em um servidor Linux Debian 11. A instalação é muito semelhante no Linux Ubuntu.
Pré-requisitos para execução deste tutorial: conhecimento em Linux, conhecimento geral em redes de computadores e compreensão do conceito de servidor Web e banco de dados.
Os primeiros passos
Como de costume, sugiro realizar um update geral do Linux:
# apt update && apt upgrade
Em seguida, baixe o instalador do Zabbix (neste caso o 6.4) com o wget:
# wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1%2Bdebian11_all.deb
No link https://repo.zabbix.com/zabbix/ é possível acessar o repositório completo do Zabbix e todas as suas versões disponíveis para download. Caso esteja acessando este tutorial quando uma nova versão estiver disponível, tente atualizar o link do comando wget (acima) e do dkpg (abaixo).
Instalando os diversos pacotes essenciais
O Zabbix exige a instalação de vários pacotes essenciais para o seu correto funcionamento, como o servidor Apache e o PHP (para o seu frontend). Instale-os com o comando abaixo:
# apt install apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php libapache2-mod-php7.4 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libcurl4 libgd3 liblua5.3-0 libonig5 libsodium23 libxpm4 libxslt1.1 php php-bcmath php-common php-gd php-ldap php-mbstring php-mysql php-xml php7.4 php7.4-bcmath php7.4-cli php7.4-common php7.4-gd php7.4-json php7.4-ldap php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-readline php7.4-xml ssl-cert
Instale agora o banco de dados MySQL / MariaDB com o comando abaixo.
Caso você já possua um servidor de banco de dados em sua rede, ignore este passo e siga com as configurações para criação do banco de dados necessário para o Zabbix.
# apt install mariadb-server mariadb-client
Para confirmar se o serviços do Apache e MySQL/MariaDB estão em execução, use:
systemctl status apache2
esystemctl status mariadb
Configurando o MySQL
O MySQL dispõe de um script de auto configuração bem interessante. Para executá-lo, use o comando abaixo e siga com as configurações necessárias (como descritas abaixo ou de acordo com a sua necessidade):
# mysql_secure_installation
root@zabbix:/home/scota# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we’ll need the current password for the root user. If you’ve just installed MariaDB, and haven’t set the root password yet, you should just press enter here.
Enter current password for root (enter for none): ***********
OK, successfully used password, moving on…
Setting the root password or using the unix_socket ensures that nobody can log into the MariaDB root user without the proper authorization.
You already have your root account protected, so you can safely answer ‘n’.
Switch to unix_socket authentication [Y/n] n
… skipping.
You already have your root account protected, so you can safely answer ‘n’.
Change the root password? [Y/n] n
… skipping.
By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.
Remove anonymous users? [Y/n] y
… Success!
Normally, root should only be allowed to connect from ‘localhost’. This ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
… Success!
By default, MariaDB comes with a database named ‘test’ that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.
Remove test database and access to it? [Y/n] y
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!
Reloading the privilege tables will ensure that all changes made so far will take effect immediately.
Reload privilege tables now? [Y/n] y
… Success!
Cleaning up…
All done! If you’ve completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Instalação do pacote Zabbix
Após a configuração do MySQL, vamos a instalação do Zabbix usando o pacote .deb que baixamos com o wget:
# dpkg -i zabbix-release_6.4-1+debian11_all.deb
Atenção: por aqui, encontrei alguns alertas que impediram a instalação:
dpkg: warning: ‘ldconfig’ not found in PATH or not executable
dpkg: warning: ‘start-stop-daemon’ not found in PATH or not executable
dpkg: error: 2 expected programs not found in PATH or not executable
Note: root’s PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
Como pode ser observado na mensagem, é preciso efetuar uma configuração no PATH do user root, para isso, siga com o comando:
# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Feito isso, executando novamente a instalação, não tive mais alertas / problemas:
# dpkg -i zabbix-release_6.4-1+debian11_all.deb
Execute um novo apt update, agora com os repositórios do Zabbix cadastrados no Debian:
# apt update
Instalando os últimos pacotes essenciais
Concluindo a instalação do Zabbix, instale os últimos pacotes necessários:
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
Sugestão de outros pacotes para instalação: lmsensors, snmp-mibs-downloader e snmptrapd.
Criando e populando a base de dados do Zabbix
Ainda na linha de comando do servidor Debian, conecte-se ao MySQL e, em seguida, crie um banco de dados exclusivo para o Zabbix (altere a senha do user zabbix de acordo com sua necessidade):
# mysql -u root -p
> create database zabbix;
> grant all privileges on zabbix.* to zabbix@localhost identified by ’22rtG9jh8Xuim7′;
> quit
Dica: caso deseje, instale o PhpMyAdmin, que é uma ótima interface web para gestão do MySQL:
# apt install phpmyadmin
*Durante a instalação, selecione o apache2, use o dbconfig-common = yes e mantenha o password = blank.
Feito isso, você já poderá, por exemplo, acessar o banco de dados do Zabbix, usando o user e senha definido acima. Este acesso poderá ser feito através do console do MySQL via linha de comando (# mysql -u zabbix -p
) ou, caso tenha instalado o PhpMyAdmin, através do navegador, acessando http://192.168.1.6/phpmyadmin/
(altere o endereço IP de acordo com seu ambiente) e se conectando com o user zabbix. O user root não conseguirá realizar o login no PhpMyAdmin pois desativamos esta permissão quando executamos o mysql_secure_installation
.
Com o banco de dados criado, vamos utilizar um script oferecido pelo Zabbix para importar um schema padrão para o nosso banco de dados:
# zcat -v /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p'22rtG9jh8Xuim7' zabbix
(altere a senha com a inserida acima)
Atenção: este processo (dump) pode demorar alguns minutos, de acordo com o seu ambiente, por isso, aguarde pela sua conclusão.
As últimas configurações
Em seguida, informe ao Zabbix os parâmetros do banco de dados criado editando o arquivo zabbix_server_conf:
# nano /etc/zabbix/zabbix_server.conf
Procure pelos parâmetros abaixo e confirme os dados de acordo com a sua instalação (local do banco de dados, nome do banco de dados, nome do usuário e senha do banco de dados):
DBHost=localhost (caso tenha um servidor de banco de dados, insira o IP ou hostname)
DBName=zabbix
DBUser=zabbix
DBPassword=22rtG9jh8Xuim7 (altere a senha com a inserida acima e não esqueça de remover o # do início da linha)
Salve o arquivo (Ctrl + X, Yes) e, então, reinicie o Apache2:
# systemctl restart apache2
Agora, inicie o Zabbix Server e Zabbix Agent:
# systemctl start zabbix-server zabbix-agent
Últimos ajustes na interface web
O passo final é acessar a interface web do Zabbix através do navegador:
http://192.168.1.6/zabbix
(altere o IP de acordo com o seu ambiente)
Proceda com a auto configuração da interface, de acordo com as imagens abaixo:
Acessando a interface do Zabbix
Com o Zabbix totalmente instalado, sua tela de login será apresentada. Use as credenciais padrões: user: admin / password: zabbix
Abaixo, a página inicial do Zabbix em sua versão 6.4:
Adicionando hosts ao Zabbix
Como mencionado acima, a lista de itens que podem ser monitorados pelo Zabbix é bem, desde servidores Windows, Linux, equipamentos de rede diversos, bancos de dados e muitos outros. Para adicionar e monitorar hosts ao seu Zabbix, nada melhor que conferir sua documentação oficial, que é muito completa. Abaixo estão alguns links que vão te ajudar neste processo:
Dica: Zabbix Appliance
O Zabbix oferece uma instalação pré-configurada através de um appliance, ou seja, um sistema operacional já personalizado para sua execução.
Você pode baixar uma imagem completa deste sistema operacional e simplesmente “dar um play” em seu ambiente de virtualização. Confira as opções disponíveis no link: https://www.zabbix.com/download_appliance
*Com referências de: Zabbix – Documentation, 4 Linux – O que é o Zabbix, SebaeNetworks – How to install Zabbix on Debian 11, Pense em TI – Entrevista com Alexei Vladishev – O ceo da Zabbix.