Como instalar o Zabbix Proxy no Ubuntu 18 / 22.

outubro 18, 2022 Por Joel Kern 0
Como instalar o Zabbix Proxy em um servidor local e enviar as configurações para o Zabbix Proxy

Este método funciona nas versões 17.04 (Zesty), 17.10 (Artful), 18.04 (Bionic), 18.10 (Cosmic) e 19.04 (Disco) do Ubuntu:

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) 5.0

Configure o pacote .deb do Zabbix 5 e instale o servidor proxy:

sudo wget repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
sudo dpkg -i zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
sudo apt update
sudo apt -y install zabbix-proxy-mysql zabbix-server-mysql mysql-server

Etapa 2: configurar o banco de dados
Nesta instalação, usarei a senha minhasenha como senha do banco de dados root e senhazabbix como senha do banco de dados Zabbix. Considere alterar sua senha por motivos de segurança.

1. Redefinir senha de root para banco de dados
(pule esta etapa se você souber a senha de root do banco de dados)


sudo mysql_secure_installation
Enter current password for root (enter for none): Press the Enter
Set root password? [Y/n]: Y
New password:
Re-enter new 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

2. Criando o Banco de Dados
sudo mysql -uroot -p’minhasenha’
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by ‘senhazabbix’;
mysql> quit;

CASO NAO FUNCIONA, PARA VERSOES MAIS NOVAS:

CREATE USER 'zabbix_proxy'@'%' IDENTIFIED BY 'senhazabbix';
GRANT ALL PRIVILEGES ON *.* TO 'zabbix_proxy'@'%';

3. Importar esquema de banco de dados inicial Importe o shema do banco de dados para o servidor proxy (pode durar até 5 minutos):

zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p’senhazabbix’ zabbix_proxy

PARA ADICIONAR EM UM CONTAINER (Caso o Banco de Dados Mysql esteja em um container):

b. Create database
sudo mysql -hIPDOCONTAINER -uroot -p’minhasenha’
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by ‘senhazabbix’;
mysql> quit;

CASO NAO FUNCIONA, PARA VERSOES MAIS NOVAS:

You don’t use IDENTIFIED BY in GRANT queries, it’s used in CREATE USER.

CREATE USER 'root'@'%' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
Etapa 3: Configuração do proxy
Na minha configuração, vou nomear o proxy como Zabbixproxy01 e configurá-lo para se comunicar com o Zabbix que possui o 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=senhazabbix
ConfigFrequency=100

O parâmetro “ConfigFrequency” define com que frequência o proxy recupera os 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:

Server=10.7.44.235
Hostname=Zabbixproxy01
DBName=zabbix_proxy
DBUser=zabbix
Save and exit file (ctrl+x, followed by y and enter).

Salve e saia do arquivo (ctrl+x, seguido de 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 enable zabbix-proxy

Etapa 5: registrar o servidor proxy no frontend do Zabbix
Agora que seu servidor proxy está rodando, você precisa registrá-lo no frontend do Zabbix usando a opção “Proxies” na seção “Administration”. Clique no botão "Criar proxy" à direita, depois defina "Nome do proxy" para Zabbix proxy 01 e "Modo proxy" para "Ativo".

Observe que para um proxy funcionar no modo ativo “Nome do proxy” deve ser o mesmo que o parâmetro “nome do host” no arquivo “zabbix_proxy.conf”.

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

Status do Zabbix Proxy que nunca foi visto
No entanto, se você esperar 100 segundos, o status “Última vista (idade)” exibirá segundos em vez de “Nunca”, o que significa que o proxy está se comunicando com o servidor Zabbix.
Status do Zabbix Proxy que foi visto recentemente
Por que 100 segundos? Lembra do que colocamos no parâmetro “ConfigFrequency” no arquivo “zabbix_proxy.conf”? 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 "Última vista (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 conferir a seção “Entendendo o mod proxy ativo vs passivo do Zabbix” Se você precisar configurar o proxy para funcionar em um modo passivo.

Passo 6: Configure 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 hosts no Zabbix para serem monitorados pelo servidor proxy.

Vamos fazer isso juntos, vá para a opção “Host” na seção “Configuração” e selecione os hosts que precisam ser monitorados pelo servidor proxy.
Configure hosts no Zabbix para serem monitorados por um servidor proxy - Etapa 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”, em seguida, 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.

Configure hosts no Zabbix para serem monitorados por um servidor proxy - Etapa 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 5 no Ubuntu!
Não há necessidade de alterar mais nada, pois outras etapas são opcionais.
CONTINUE PARA SABER MAIS:
Configurando a criptografia (PSK) no proxy
Otimizando o banco de dados proxy e MySQL
Como gerenciar o serviço Proxy e MySQL
Entendendo o mod Active vs Passive Proxy
Saiba mais 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 a criptografia baseada em chave pré-compartilhada e baseada em certificado (PSK), mas neste tutorial vamos configurar o último.
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. Configure o proxy para dar suporte à criptografia PSK
Abra o arquivo zabbix_proxy.conf com o comando: “sudo nano /etc/zabbix/zabbix_proxy.conf” e adicione esta configuração em qualquer lugar do arquivo:
Salve e saia do arquivo (ctrl+x, seguido de y e enter). Tenha em mente que “TLSPSKIdentity” pode ser qualquer coisa, então, por razões 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 reiniciar zabbix-proxy
c. Habilite a criptografia PSK no proxy no frontend 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 “Administration”. Em seguida, na guia "Criptografia", defina o PSK na opção "Conexões do proxy" e copie e cole "Identidade do 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”


Configurando a criptografia PSK em um proxy no frontend do Zabbix

Verificando o status de criptografia de proxy no front-end da Web
Passo 8: Otimizando o Zabbix Proxy (opcional)
Não se preocupe com essa otimização se você estiver monitorando um pequeno número de dispositivos, mas se estiver planejando monitorar um grande número de dispositivos, continue com esta etapa.

Abra o arquivo zabbix_proxy.conf com o comando: “sudo nano /etc/zabbix/zabbix_proxy.conf” e adicione esta configuração em qualquer lugar do arquivo:
Salve e saia do arquivo (ctrl+x, seguido de y e enter).

Esta não é uma configuração perfeita, tenha em mente que você pode otimizá-la ainda mais. Digamos que se você não usa verificações de ICMP, defina o parâmetro “StartPingers” como 1 ou se você 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 de proxy do que o MySQL pode manipular. Precisamos aumentar o número máximo permitido de conexões simultâneas de clientes e otimizar o MySQL – então passe para a próxima etapa.
Etapa 9: Otimizando o banco de dados MySQL (opcional)
uma. Criar arquivo de configuração MySQL personalizado
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

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 em cache 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 para 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:
Etapa 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 zabbix-proxy
Servidor MySQL
sudo systemctl mysql

Passo 11: Entendendo o mod Zabbix Proxy 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. Esse é um ótimo recurso que permite que o servidor proxy ativo funcione atrás de um firewall.
E se você usar um proxy em modo passivo o servidor Zabbix iniciará uma conexão com o proxy para enviar a configuração e recuperar os dados do proxy.

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.conf” e ative o modo passivo e defina o endereço IP do servidor Zabbix adicionando isso em qualquer lugar no arquivo (altere o parâmetro “Server” para corresponder ao seu Zabbix servidor):
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 “Administration”. Clique no botão "Criar proxy" à direita, defina "Nome do proxy" para o que quiser e "Modo proxy" para "Passivo". Defina o endereço IP do servidor proxy em “Interfaces” e clique no botão adicionar se tiver concluído a configuração.
Etapa 12: Saiba mais sobre os 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 a hora 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.

Note que o Zabbix está usando compressã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, certifique-se de que as definições do aplicativo nos dispositivos de segurança estejam atualizadas e, se tiver algum problema, entre em contato com o fornecedor do dispositivo.

Verificando logs no servidor proxy
Se você tiver algum problema com o proxy, poderá verificar as últimas 500 linhas do log com o comando:

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

Obrigado!

Fontes:

bestmonitoringtools.com/install-zabbix-proxy-on-ubuntu/

Scripts de autorização do mysql

www.zabbix.com/documentation/current/pt/manual/appendix/install/db_scripts

UBUNTU 22.02

bestmonitoringtools.com/install-zabbix-proxy-on-ubuntu/#Step_1_Install_Zabbix_Proxy_on_Ubuntu