Zabbix Proxy: Instale no Ubuntu 22.04 / 20.04 em 10 minutos

junho 27, 2023 Por Joel Kern 0

Este é o melhor tutorial de instalação, configuração e otimização do proxy Zabbix que o guiará passo a passo do zero! Você aprenderá como instalar o Zabbix Proxy 6.0 LTS  ou 6.4 versão padrão no Ubuntu 22.04 LTS (Jammy Jellyfish) / Ubuntu 20.04 (Focal) / Ubuntu 18.04 (Bionic) e como fazer as principais otimizações para que seu proxy tenha um melhor desempenho.

O proxy Zabbix  é um serviço que pode coletar dados de desempenho e disponibilidade dos dispositivos finais em nome do  servidor Zabbix .

Você pode usar o proxy Zabbix para monitorar locais remotos atrás do firewall ou locais com comunicação não confiável e para descarregar o servidor Zabbix em grandes ambientes.

Exemplo de arquitetura de proxy
Arquitetura de proxy

Chega de conversa vamos fazer algum trabalho! Instalaremos a última versão 6 do proxy Zabbix no Ubuntu (20.04, 18.04 e 16.04 são suportados) e faremos as principais otimizações para que seu proxy funcione melhor.

Este guia é para instalar o Zabbix-Proxy no Ubuntu, enquanto guias para instalar o sistema de monitoramento Zabbix (servidor) em várias distribuições Linux podem ser encontrados nestes links: CentOS/RHEL ,  Ubuntu ,  Debian ,  Rasbian (Raspberry Pi) .

Conteúdo

Passo 1: Instale o Zabbix Proxy no Ubuntu

Etapa 2: configurar o banco de dados

Etapa 3: configuração do proxy Zabbix

Etapa 4: Iniciar e habilitar o serviço de proxy

Etapa 5: registrar o servidor proxy no front-end do Zabbix

Passo 6: Configure os hosts no Zabbix para serem monitorados por um proxy

Etapa 7: configurar a criptografia PSK no proxy (opcional)

Etapa 8: Otimizando o Zabbix Proxy (opcional)

Etapa 9: Otimizando o banco de dados MySQL (opcional)

Passo 10: Como gerenciar o serviço Proxy e MySQL

Etapa 11: Entendendo o proxy Zabbix Mod ativo vs passivo

Passo 12: Aprenda sobre erros comuns do Zabbix Proxy

Passo 1: Instale o Zabbix Proxy no Ubuntu

Antes de instalar o proxy, lembre-se de que sua versão do proxy deve corresponder à versão do servidor Zabbix!

Você pode verificar a versão do servidor Zabbix com o comando “ zabbix_server -V“:

root@zabbix-server-ubuntu :~$ zabbix_server -V 
zabbix_server (Zabbix)6.0.0

Configurar Pacote .deb do Zabbix 6 e instale o servidor proxy:

Versão Zabbix 6.0 LTS (com suporte até fevereiro de 2027)
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-3+ubuntu$(lsb_release -rs)_all.deb
sudo dpkg -i zabbix-release_6.0-3+ubuntu$(lsb_release -rs)_all.deb
sudo apt update
sudo apt -y install zabbix-proxy-mysql zabbix-sql-scripts

                      OU

Versão padrão do Zabbix 6.4 (com suporte até novembro de 2023)
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu$(lsb_release -rs)_all.deb
sudo dpkg -i zabbix-release_6.4-1+ubuntu$(lsb_release -rs)_all.deb
sudo apt update
sudo apt -y install zabbix-proxy-mysql zabbix-sql-scripts

Você pode encontrar mais informações sobre  o ciclo de vida e as políticas de lançamento do Zabbix  no site oficial.

Etapa 2: configurar o banco de dados

Nesta instalação, usarei a senha rootDBpass como senha do banco de dados raiz e zabbixDBpass como senha do banco de dados do proxy Zabbix. Considere alterar sua senha por motivos de segurança.

No seu terminal, use o seguinte comando para instalar o MariaDB 10.6.

sudo apt install software-properties-common -y
curl -LsS -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
sudo bash mariadb_repo_setup --mariadb-server-version=10.6
sudo apt update
sudo apt -y install mariadb-common mariadb-server-10.6 mariadb-client-10.6

Quando a instalação estiver concluída, inicie o serviço MariaDB e habilite-o para iniciar na inicialização usando os seguintes comandos:

sudo systemctl start mariadb
sudo systemctl enable mariadb

b. Redefinir senha root para banco de dados

Proteja o MySQL/MariaDB alterando a senha padrão para o root do MySQL:

sudo mysql_secure_installation
Enter current password for root (enter for none): Press Enter
Switch to unix_socket authentication [Y/n] y
Change the root password? [Y/n] y
New password: <Enter root DB password>
Re-enter new password: <Repeat root DB password>
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

c. Criar banco de dados

sudo mysql -uroot -p'rootDBpass' -e "create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin;"
sudo mysql -uroot -p'rootDBpass' -e "create user 'zabbix'@'localhost' identified by 'zabbixDBpass';"
sudo mysql -uroot -p'rootDBpass' -e "grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'zabbixDBpass';"

d. Importe esquema e dados iniciais.

Importe o shema do banco de dados para o servidor Zabbix (pode durar até 5 minutos):

sudo cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql|mysql --default-character-set=utf8mb4 -uzabbix -p'zabbixDBpass' zabbix_proxy

Etapa 3: configuração do proxy Zabbix

Na minha configuração, nomearei o proxy como Proxy Zabbix 01 e configure-o para se comunicar com o servidor Zabbix que possui endereço IP 10.7.44.235– altere-os de acordo para corresponder ao seu ambiente.

Abra o arquivo zabbix_proxy.conf com o comando:

sudo nano /etc/zabbix/zabbix_proxy.conf

e adicione a senha do banco de dados e a frequência de configuração neste formato em qualquer lugar do arquivo:

DBPassword=zabbixDBpass
ConfigFrequency=100

O parâmetro “ ConfigFrequency” define com que frequência o proxy recupera dados de configuração do servidor Zabbix em segundos. Você pode ler mais sobre os parâmetros de configuração do proxy na documentação oficial .

Não feche o arquivo ainda! Agora, você precisa alterar os valores atuais dos parâmetros “ Server“, “ Hostname“, “ DBName“ e “ DB user” para algo assim:

Servidor=10.7.44.235
Nome do host=Proxy Zabbix 01
DBName=zabbix_proxy
DBUser=zabbix

Salve e saia do arquivo ( ctrl + x , seguido por  y  e  enter ).

Etapa 4: Iniciar e habilitar o serviço de proxy

Reinicie o serviço de proxy e configure-o para inicializar na inicialização:

sudo systemctl restart zabbix-proxy
sudo systemctl ativar zabbix-proxy

Etapa 5: registrar o servidor proxy no front-end do Zabbix

Agora que seu servidor proxy está em execução, você precisa registrá-lo no frontend do Zabbix usando a opção “ Proxies ” na seção “ Administração ”. Clique no botão “Criar proxy” à direita e defina “Nome do proxy” para Proxy Zabbix 01e “Modo proxy” para “Ativo”.

Observe que, para um proxy funcionar no modo ativo, o “ nome do proxy” deve ser o mesmo que o parâmetro “ hostname ” no zabbix_proxy.confarquivo “ ”.

Imagem mostrando como registrar um servidor proxy ativo no frontend do Zabbix


Imagem mostrando como registrar um servidor proxy ativo no frontend do Zabbix

Imediatamente após adicionar um proxy ao frontend, você será informado de que o proxy nunca foi visto.

Status do servidor proxy que nunca foi visto

No entanto, se você esperar 100 segundos, o status “ Último visto (idade) ” exibirá segundos em vez de “ Nunca ”, o que significa que o proxy está se comunicando com o servidor Zabbix.

Status do servidor proxy que foi visto recentemente

Por que 100 segundos? Lembre-se do que colocamos no parâmetro “ ConfigFrequency ” no zabbix_proxy.confarquivo “ ”? O que quer que você coloque lá, é quanto tempo levará para o proxy entrar em contato com o servidor Zabbix para recuperar os dados de configuração. Esta regra só se aplica se o proxy estiver no modo ativo.

Observe que o status “ Último visto (idade) ” nunca deve ultrapassar 6 segundos se a comunicação do servidor proxy estiver funcionando.

O mod proxy ativo é recomendado porque pode funcionar atrás de um firewall, mas você pode verificar a seção “ Entendendo o proxy Zabbix Mod ativo vs passivo ” Se você precisar configurar o proxy para funcionar em modo passivo.

Passo 6: Configure os hosts no Zabbix para serem monitorados por um proxy

O proxy Zabbix está rodando e se comunicando com o servidor Zabbix, mas não está coletando nenhum dado porque não fizemos a última etapa crucial! Precisamos configurar os hosts no Zabbix para serem monitorados pelo servidor proxy.

Vamos fazer isso juntos, vá até a opção “ Host ” na seção “ Configuração ” e selecione os hosts que precisam ser monitorados pelo servidor proxy.

Configurar hosts no Zabbix para serem monitorados por um servidor proxy - Passo 1
Configurar hosts no Zabbix para serem monitorados por um servidor proxy – Passo 1

Depois de selecionar os hosts, clique no botão “ Atualização em massa ” e, nas opções “ Host ”, selecione nosso proxy recém-adicionado no menu suspenso “ Monitorado por proxy ” e, finalmente, clique no botão “ Atualizar ”, conforme mostrado na imagem abaixo.

Configurar hosts no Zabbix para serem monitorados por um servidor proxy - Passo 2

Configurar hosts no Zabbix para serem monitorados por um servidor proxy – Passo 2

PARABÉNS!
Você instalou e configurou com sucesso o Zabbix Proxy 6 no Ubuntu!
Não há necessidade de alterar mais nada, pois outras etapas são opcionais.

CONTINUE PARA APRENDER MAIS:
Configurando a criptografia (PSK) no Proxy
Otimizando o banco de dados MySQL e Proxy
Como gerenciar o serviço Proxy e MySQL
Entendendo o proxy Zabbix ativo x passivo
Aprenda sobre erros comuns de Proxy

Etapa 7: configurar a criptografia PSK no proxy (opcional)

O Zabbix suporta comunicações criptografadas entre o servidor Zabbix e o proxy usando o protocolo Transport Layer Security (TLS) v.1.2. Você pode usar criptografia baseada em chave pré-compartilhada e baseada em certificado (PSK), mas neste tutorial vamos configurar o último.

a. Gerar chave PSK no servidor proxy

Gere a chave PSK de 256 bits (32 bytes) com o comando openssl:

$ openssl rand -hex 32 
 382eb0250c365cc207cc4980cdb1bb1814c19d882b7fddcda00281311a8fb955

Crie e abra o arquivo “ zabbix_proxy.psk” com o comando “ sudo nano /etc/zabbix/zabbix_proxy.psk” e copie e cole a chave recém-gerada nele.

Salve e saia do arquivo ( ctrl + x , seguido de  y  e  enter ) e defina a permissão de arquivo correta:

sudo chown zabbix:zabbix /etc/zabbix/zabbix_proxy.psk
sudo chmod 644 /etc/zabbix/zabbix_proxy.psk

b. Configurar Proxy para oferecer suporte à criptografia PSK

Abra zabbix_proxy.confo arquivo com o comando: “ sudo nano /etc/zabbix/zabbix_proxy.conf” e adicione esta configuração em qualquer lugar do arquivo:

TLSConnect=psk
TLSAccept=psk
TLSPSKFile=/etc/zabbix/zabbix_proxy.psk
TLSPSKIdentity=ZBX-PSK-01

Salve e saia do arquivo ( ctrl + x , seguido por  y  e  enter ). Lembre-se de que “ TLSPSKIdentity ” pode ser qualquer coisa, portanto, por motivos de segurança, defina outra coisa – não use o meu!

Não se esqueça de reiniciar o proxy após alterar o arquivo de configuração:

sudo systemctl restart zabbix-proxy

c. Habilite a criptografia PSK no proxy no front-end do Zabbix

A comunicação entre o proxy e o servidor Zabbix ainda não está criptografada porque habilitamos a criptografia PSK no lado do proxy, mas não no lado do servidor. 

Precisamos habilitar a criptografia no lado do servidor, então vá para o front-end da web e selecione seu proxy na opção “ Proxies ” na seção “ Administração ”. Em seguida, na guia “Criptografia”, defina PSK na opção “Conexões do proxy” e copie e cole “identidade PSK” e “PSK” (chave) que você configurou no servidor proxy. Se você perder sua chave PSK gerada, verifique-a com o comando “ cat /etc/zabbix/zabbix_proxy.psk” no servidor proxy.

Quando terminar a configuração, clique no botão “ Atualizar ” como mostrado na imagem abaixo. 

Configurando a criptografia PSK em um proxy no frontend do Zabbix
Configurando a criptografia PSK em um proxy no frontend do Zabbix

Se você fez tudo certo, você deve ver algo assim:

Verificando o status da criptografia do proxy no front-end da web
Verificando o status da criptografia do proxy no front-end da web

Etapa 8: Otimizando o Zabbix Proxy (opcional)

Não se preocupe com essa otimização se estiver monitorando um pequeno número de dispositivos, mas se estiver planejando monitorar um grande número de dispositivos, continue com esta etapa.

Abra zabbix_proxy.confo arquivo com o comando: “ sudo nano /etc/zabbix/zabbix_proxy.conf” e adicione esta configuração em qualquer lugar do arquivo:

StartPollers=100
StartPollersUnreachable=50
StartPingers=50
StartTrappers=10
StartDiscoverers=15
StartHTTPPollers=5
CacheSize=128M
HistoryCacheSize=64M
HistoryIndexCacheSize=32M

Salve e saia do arquivo ( ctrl + x , seguido por  y  e  enter ).

Esta não é uma configuração perfeita, lembre-se de que você pode otimizá-la ainda mais. Digamos que, se você não usa verificações de ICMP, defina o StartPingersparâmetro “ ” como 1 ou, se não usa agentes ativos, defina “ StartTrappers” como 1 e assim por diante. Você pode descobrir mais sobre os parâmetros suportados na documentação oficial .

Se você tentar iniciar o servidor proxy, receberá um erro “ [Z3001] connection to database 'zabbix_proxy' failed: [1040] Too many connections” no log “ /var/log/zabbix/zabbix_proxy.log” porque estamos usando mais processos proxy do que o MySQL pode suportar. Precisamos aumentar o número máximo permitido de conexões de cliente simultâneas e otimizar o MySQL – então vá para a próxima etapa.

Etapa 9: Otimizando o banco de dados MySQL (opcional)

a. Criar arquivo de configuração personalizado do MySQL

Crie o arquivo “ 10_my_tweaks.cnf"com “ sudo nano /etc/mysql/mariadb.conf.d/10_my_tweaks.cnf” e cole esta configuração:

[mysqld]
max_connections                = 280
innodb_buffer_pool_size        = 1G

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 do arquivo ( ctrl + x , seguido de  y  e  enter ) e defina a permissão de arquivo correta:

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

Duas coisas para lembrar!

O parâmetro de configuração max_connections deve ser maior que o número total de todos os processos proxy mais 50. Você pode usar o comando abaixo para verificar automaticamente o número de processos Zabbix e adicionar 50 a esse número:

root@ubuntu :~ $ egrep "^Start.+=[0-9]" /etc/zabbix/zabbix_proxy.conf | awk -F "=" '{s+=$2} END {print s+50}' 
 280

O segundo parâmetro mais importante é innodb_buffer_pool_size , que determina quanta memória o MySQL pode obter para armazenar tabelas InnoDB e dados de índice. Você deve definir esse parâmetro para 70% da memória do sistema se apenas o banco de dados estiver instalado no servidor.

No entanto, neste caso, estamos compartilhando um servidor com o servidor proxy, portanto, você deve definir  innodb_buffer_pool_size  como 50% da memória total do sistema. Isso seria 1G porque meu servidor Ubuntu tem 2G de RAM.

Não tive nenhum problema com memória, mas se seu proxy travar por falta de memória, reduza “ innodb_buffer_pool_size” e reinicie o servidor MySQL.

b. Reinicie o serviço Proxy e MySQL

Pare e inicie os serviços na mesma ordem abaixo:

sudo systemctl stop zabbix-proxy
sudo systemctl stop mysql
sudo systemctl start mysql
sudo systemctl start zabbix-proxy

Passo 10: Como gerenciar o serviço Proxy e MySQL

Às vezes, você precisará verificar ou reiniciar o servidor proxy ou o serviço MySQL – use os comandos abaixo para fazer isso.

Servidor proxy
sudo systemctl <status/restart/start/stop> zabbix-proxy

Servidor MySQL
sudo systemctl <status/restart/start/stop> mysql

Etapa 11: Entendendo o proxy Zabbix Mod ativo vs passivo

Quando você usa um proxy no modo ativo, ele se conecta ao servidor Zabbix para recuperar a configuração e enviar dados. Este é um ótimo recurso que permite que o servidor proxy ativo funcione atrás de um firewall.

https://7f77a01efe75fbbf8af013fb27f8150c.safeframe.googlesyndication.com/safeframe/1-0-40/html/container.html

E se você usar um proxy no modo passivo, o servidor Zabbix iniciará uma conexão com o proxy para enviar a configuração e recuperar dados do proxy.

Imagem mostrando como o proxy ativo funciona em comparação com um proxy passivo (fonte: www.zabbix.com)
Imagem mostrando como o proxy ativo funciona em comparação com um proxy passivo (fonte: www.zabbix.com)

Antes, neste tutorial, configuramos o servidor proxy para funcionar no modo ativo. Deixe-me mostrar como você pode configurar o proxy para funcionar no modo passivo.

Abra o arquivo zabbix_proxy.conf com o comando: “ sudo nano /etc/zabbix/zabbix_proxy.con f” eativar o modo passivo e definirIP do servidor Zabbixendereço adicionando isso em qualquer lugar no arquivo (altere o parâmetro “Server” para corresponder ao seu servidor Zabbix):

ProxyMode=1
Server=10.7.44.235

Salve e saia do arquivo ( ctrl + x , seguido de  y  e  enter ). Reinicie o servidor proxy com o comando “ sudo systemctl restart zabbix-proxy

Agora, você precisa adicionar o proxy no frontend do Zabbix usando a opção “ Proxies ” na seção “ Administração ”. Clique no botão “ Criar proxy ” à direita, depois defina “ Nome do proxy ” como quiser e “ Modo proxy ” como “ Passivo ”. Defina o endereço IP do servidor proxy em “ Interfaces ” e clique no botão Adicionar se tiver concluído a configuração.

Imagem mostrando como registrar um servidor proxy passivo no frontend do Zabbix
Imagem mostrando como registrar um servidor proxy passivo no frontend do Zabbix

Passo 12: Aprenda sobre erros comuns do Zabbix Proxy

Nenhum dado nos itens porque o horário do servidor proxy é diferente do horário do servidor Zabbix

A partir da versão 4.0, o servidor Zabbix não ajustará mais os timestamps de valor nos casos em que o horário do proxy for diferente do horário do servidor Zabbix. Esse problema é fácil de detectar porque a comunicação servidor-proxy funcionará, mas não haverá dados nos itens.

Ajuste o proxy e o servidor Zabbix para usar o mesmo servidor de horário (NTP) ou defina o horário manualmente.

A comunicação entre o proxy e o servidor não está funcionando

O proxy Zabbix está usando a porta 10051 para se comunicar com o servidor Zabbix, portanto, certifique-se de permitir o tráfego vindo da porta 10051 em sua rede.

Observe que o Zabbix está usando compactação para comunicação com Proxies. A compactação melhora o desempenho porque reduz drasticamente o tráfego de rede.

No entanto, isso pode causar alguns problemas em ambientes que possuem dispositivos de segurança ( IDS/IPS  ou  NGFW ) instalados, pois eles podem descartar pacotes de rede se detectarem compactação no fluxo de rede. Para evitar esse problema, verifique se as definições do aplicativo nos dispositivos de segurança estão atualizadas e, se tiver algum problema, entre em contato com o fornecedor do dispositivo.

Verificando logs no servidor proxy

Se você tiver um problema com o proxy, verifique as últimas 500 linhas do log com o comando:

tail -500 /var/log/zabbix/zabbix_proxy.log


Obrigado por ler. Adicione suas sugestões em nossos comentarios!

Fonte: https://bestmonitoringtools.com/install-zabbix-proxy-on-ubuntu/