Monit.

Instalando o ZABBIX (SERVER) em um RASPBERRY

Escrito por Douglas Baiocco. Publicado em Nagios/ZABBIX.

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:

Picture showing how to write Rasbian image on SD card 

 

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:

image002

 

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/