Instalando o ZABBIX (SERVER) em um RASPBERRY
Neste artigo, utilizo como fonte um artigo do bestmonitoringtools.com. Tentei repetir os processos e adaptar de acordo com minhas necessidades, mas não se trata de tradução e sim adaptação.
Quem já conhece o ZABBIX, sabe o poder desta ferramenta. O mais incrível é que para algumas situações, um Raspberry pode ser uma solução mais econômica de se usar do que um PC. Segundo o autor do post original, podemos monitorar 400 dispositivos, adquirindo 125 métricas a cada 5 minutos de cada um com esta solução. Isso pode suprir a necessidade da maioria das empresas que querem adotar um sistema de monitoramento e não possuem uma infraestrutura tão grande assim. Além do preço, o backup de todo o sistema pode ser feito apenas copiando o cartão SD. Sem contar o tamanho reduzido e o suporte WIFI nativo. Podemos ter uma solução completa de monitoramento que cabe no bolso.
Não vou entrar em detalhes sobre o ZABBIX, nem muito sobre o Raspberry. Essas informações você acha fácil na internet. Aqui vou apenas demonstrar o passo a passo para você ter essas duas ferramentas trabalhando juntas.
Preparando o Raspberry
Em meus testes, usei um Pi 3 B+. Com um Pi 4 devemos ter uma melhora considerável no desempenho. Outro ponto a ser observado é o SD. Um SD de 16GB é suficiente, mas para monitorar muitas coisas, um SD mais parrudo pode ser uma saída.
Para utilizarmos o RASPBERRY, precisamos ter o sistema operacional pronto. Iremos utilizar o Raspberry Pi OS, chamado anteriormente de RASPBIAN. Baixe a imagem LITE no site https://www.raspberrypi.org/software/operating-systems/. Use o Balena Etcher para gravar em seu SD:
Nem preciso comentar que você deve ter um adaptador SD para o PC...
Após criar o SD, coloque-o no RASP, conecte o cabo de rede e o de energia e inicialize-o. Você deverá conectar através de um terminal para completar a instalação dos demais aplicativos. Em meu caso, uso o Putty no Windows para acessar. Preciso descobrir o IP dele na rede, é claro, mas se você está preocupado com monitoramento, isso deve ser tranquilo, certo?
Acesse via terminal o seu Rasp, usando como usuário pi e senha raspberry:
OBSERVAÇÃO: para ativar o SSH do Raspberry, crie um arquivo no SD, na partição BOOT, com o nome ssh (sem extensão).
Instalando o ZABBIX
No terminal, iremos baixar o Zabbix usando o wget no seguinte endereço:
wget https://repo.zabbix.com/zabbix/5.0/raspbian/pool/main/z/zabbix-release/zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
Instale usando o seguinte comando:
sudo dpkg -i zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
Faça um update do apt:
sudo apt update
Instale os demais componentes necessários:
sudo apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
Vamos instalar o MySQL com o seguinte comando:
sudo apt -y install mariadb-server
Preparando o banco:
sudo mysql_secure_installation
Responda as questões da seguinte forma:
Set root password? [Y/n]: Y
New password: <coloque sua senha>
Re-enter new password: <repita sua senha >
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
Agora precisamos criar o banco de dados para o Zabbix. Use os seguintes comandos:
sudo mysql -uroot -p'sua senha informada no passo anterior' -e "create database zabbix character set utf8 collate utf8_bin;"
Dando as permissões:
sudo mysql -uroot p'sua senha informada no passo anterior' -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'senha de acesso do zabbix ao banco';"
Criando o Schema inicial no banco:
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p'senha de acesso do zabbix ao banco' zabbix
Adicionar a senha de acesso ao banco na configuração do Zabbix. Para isso, acesse o arquivo zabbix_server.conf com o seguinte comando:
sudo nano /etc/zabbix/zabbix_server.conf
Adicione a seguinte linha ao final do arquivo:
DBPassword=senha_de_acesso_do_zabbix_ao_banco
Salve e saia (ctrl+x, seguido de y e enter).
Inicialize os processos do Zabbix:
sudo systemctl restart zabbix-server zabbix-agent
sudo systemctl enable zabbix-server zabbix-agent
Configurando a interface grafica do Zabbix
Abra o arquivo apache.conf com o seguinte comando:
sudo nano /etc/zabbix/apache.conf
Apague os símbolos ‘#’ das duas linha que começam com “php_value date.timezone”, substituindo Europe/Riga por America/Sao_Paulo
Veja no exemplo abaixo:
Salve e saia (ctrl+x, seguido de y e enter).
Reinicialize o apache com os seguintes comandos:
sudo systemctl restart apache2
sudo systemctl enable apache2
Instalando o ZABBIX
Agora devemos terminar a instalação usando a interface Web. Acesse o endereço do seu Raspberry, em meu caso http://192.168.1.105/zabbix:
Clique em Next step. Será apresentado a tela de pre-requisitos. Se estiver tudo ok, clique em Next step:
Na tela a seguir, coloque apenas a senha que foi usada no processo anterior (a senha marcada nos campos senha_de_acesso_do_zabbix_ao_banco), logo em seguida, clique em Next step:
Na tela a seguir, apenas clique em Next step:
Um resumo das etapas será apresentado. Verifique se está tudo ok e clique em Next Step:
Se a mensagem “Congratulations! You have successfully installed Zabbix frontend.“ aparecer, sua instalação foi concluída. Clique em Finish para terminar:
A tela de login do Zabbix será mostrada:
Para o acesso, use as credenciais Admin e zabbix:
Otimizando o uso do Zabbix no Raspberry
Para usar o Rapberry com Zabbix, temos dois grandes problemas: o tempo de vida do SD e a velocidade dele. Como o SD é uma memória Flash, temos uma quantidade limitada de vezes que um mesmo setor pode ser regravado. Quando essa quantidade termina, o setor se torna inutilizável. Um SD com muitos setores inutilizáveis se torna ele também inutilizável. Para evitar isso e melhorar o desempenho geral do sistema, podemos fazer algumas mudanças a nível de sistema operacional:
Reduzir a frequência de uso do SWAP
Abra o arquivo sysctl.conf com o comando:
sudo nano /etc/sysctl.conf
Adicione a seguinte linha ao arquivo:
vm.swappiness = 1
Salve e saia (ctrl+x, seguido de y e enter).
Desabilitar a propriedade ACCESS TIME para diretórios
Abra o arquivo fstab com o comando:
sudo nano /etc/fstab
Adicione o parâmetro nodiratime, conforme imagem:
Salve e saia (ctrl+x, seguido de y e enter).
Desligando o log do sistema
Use o seguinte comando:
sudo nano /etc/systemd/journald.conf
Edite conforme a imagem:
Salve e saia (ctrl+x, seguido de y e enter).
Aumentando a memória SWAP
Use o comando abaixo:
sudo nano /etc/dphys-swapfile
Deixe com 1000 na linha, conforme imagem:
Salve e saia (ctrl+x, seguido de y e enter).
Reinicie seu Rasp para aplicar todas as mudanças, usando:
sudo reboot
Otimizando o servidor do Zabbix (opcional)
Podemos ainda otimizar o Zabbix, editando o arquivo de configuração com o seguinte comando:
sudo nano /etc/zabbix/zabbix_server.conf
Adicione as seguintes linhas no arquivo:
StartPollers=100
StartPollersUnreachable=50
StartPingers=50
StartTrappers=10
StartDiscoverers=15
StartPreprocessors=15
StartHTTPPollers=5
StartAlerters=5
StartTimers=2
StartEscalators=2
CacheSize=128M
HistoryCacheSize=32M
HistoryIndexCacheSize=16M
TrendCacheSize=16M
ValueCacheSize=128M
Salve e saia (ctrl+x, seguido de y e enter).
Personalizando o MySQL (opcional)
Podemos ainda personalizar o MySQL, criando um novo arquivo com o seguinte comando:
sudo nano /etc/mysql/mariadb.conf.d/10_my_tweaks.cnf
Coloque o seguinte conteúdo:
[mysqld]
max_connections = 454
innodb_buffer_pool_size = 400M
innodb-log-file-size = 128M
innodb-log-buffer-size = 128M
innodb-file-per-table = 1
innodb_buffer_pool_instances = 8
innodb_old_blocks_time = 1000
innodb_stats_on_metadata = off
innodb-flush-method = O_DIRECT
innodb-log-files-in-group = 2
innodb-flush-log-at-trx-commit = 2
tmp-table-size = 96M
max-heap-table-size = 96M
open_files_limit = 65535
max_connect_errors = 1000000
connect_timeout = 60
wait_timeout = 28800
Salve e saia (ctrl+x, seguido de y e enter).
Use os seguintes comandos para acertar as permissões:
sudo chown mysql:mysql /etc/mysql/mariadb.conf.d/10_my_tweaks.cnf
sudo chmod 644 /etc/mysql/mariadb.conf.d/10_my_tweaks.cnf
Conclusão
Com este manual, podemos rodar o ZABBIX em um hardware minúsculo, atendendo boa parte da demanda de uso dele sem muito gastar com energia, espaço e dinheiro.
Post original: https://bestmonitoringtools.com/how-to-install-zabbix-on-raspberry-pi-raspbian/