Monitoramento distribuído usando proxies
Visão geral
Os proxies do Zabbix podem ser usados para criar uma configuração de monitoramento distribuído eficaz e confiável.
Os proxies são implantados localmente para coletar dados de desempenho e disponibilidade. Em seguida, os dados são reportados a um server centralizado.
Um proxy do Zabbix pode ser usado para:
- Monitorar locais remotos
- Monitorar locais com comunicações não confiáveis
- Descarregar o Zabbix server ao monitorar milhares de dispositivos

O proxy requer apenas uma conexão TCP com o Zabbix server. Dessa forma, é mais fácil contornar um firewall, pois você só precisa configurar uma regra de firewall.
O proxy do Zabbix deve usar um banco de dados separado. Apontá-lo para o banco de dados do Zabbix server quebrará a configuração.
Todos os dados coletados pelo proxy são armazenados localmente antes de serem transmitidos ao server.
Dessa forma, nenhum dado é perdido devido a problemas temporários de comunicação com o server.
Os parâmetros ProxyLocalBuffer e ProxyOfflineBuffer no arquivo de configuração do proxy controlam por quanto tempo os dados são mantidos localmente.
Pode acontecer de um proxy, que recebe as alterações de configuração mais recentes diretamente do banco de dados do Zabbix server, ter uma configuração mais atualizada do que o Zabbix server, cuja configuração pode não ser atualizada tão rapidamente devido ao valor de CacheUpdateFrequency. Como resultado, o proxy pode começar a coletar dados e enviá-los ao Zabbix server, que ignora esses dados.
O proxy do Zabbix é um coletor de dados. Ele não calcula triggers, processa eventos nem envia alertas. Para uma visão geral da funcionalidade do proxy, consulte a tabela a seguir:
| Function | Supported by proxy | |
|---|---|---|
| Items | ||
| Zabbix agent checks | Yes | |
| Zabbix agent checks (active) | Yes 1 | |
| Simple checks | Yes | |
| Trapper items | Yes | |
| SNMP checks | Yes | |
| SNMP traps | Yes | |
| IPMI checks | Yes | |
| JMX checks | Yes | |
| Log file monitoring | Yes | |
| Internal checks | Yes | |
| SSH checks | Yes | |
| Telnet checks | Yes | |
| External checks | Yes | |
| Dependent items | Yes | |
| Script items | Yes | |
| Browser items | Yes | |
| Built-in web monitoring | Yes | |
| Item value preprocessing | Yes | |
| Network discovery | Yes | |
| Active agent autoregistration | Yes | |
| Low-level discovery | Yes 2 | |
| Remote commands | Yes | |
| Calculating triggers | No | |
| Processing events | No | |
| Event correlation | No | |
| Sending alerts | No | |
[1] Para garantir que um agent consulte o proxy (e não o server) para verificações ativas, o proxy deve ser listado no parâmetro ServerActive no arquivo de configuração do agent.
[2] Para LLD, o proxy do Zabbix apenas coleta e pré-processa os dados e depois os envia ao Zabbix server para processamento adicional.
Recursos do proxy
Ao decidir usar ou não um proxy, várias considerações devem ser levadas em conta.
| Proxy | |
|---|---|
| Leve | Sim |
| GUI | Não |
| Funciona de forma independente | Sim |
| Fácil manutenção | Sim |
| Criação automática de DB | Sim1 |
| Administração local | Não |
| Pronto para hardware embarcado | Sim |
| Conexões TCP unidirecionais | Sim |
| Configuração centralizada | Sim |
| Gera notificações | Não |
1 O recurso de criação automática de DB funciona apenas com SQLite. Outros bancos de dados suportados exigem configuração manual.
O proxy do Zabbix não tem conhecimento dos períodos de manutenção; consulte Cálculo das filas durante a manutenção para detalhes.
Proteção contra sobrecarga
Se o Zabbix server ficou indisponível por algum tempo e os proxies coletaram muitos dados, quando o server iniciar ele pode ficar sobrecarregado (o uso do history cache permanece em 95-100% por algum tempo). Essa sobrecarga pode resultar em perda de desempenho, fazendo com que as verificações sejam processadas mais lentamente do que deveriam. A proteção contra esse cenário foi implementada para evitar problemas que surgem devido à sobrecarga do history cache.
Quando o history cache do Zabbix server está cheio, o acesso de gravação ao history cache é limitado, interrompendo os processos de coleta de dados do server. O caso mais comum de sobrecarga do history cache ocorre após uma indisponibilidade do server, quando os proxies estão enviando os dados coletados. Para evitar isso, foi adicionada a limitação de proxy (atualmente ela não pode ser desativada).
Quando o uso do history cache atinge 80%, o Zabbix server entra no modo de limitação. No modo de limitação, o server aceita dados de proxy somente quando o uso do history cache está abaixo de 60%, alternando entre os proxies aceitos. Assim que o uso do history cache cai abaixo de 20%, o server volta ao modo normal.
Além disso, no modo normal, o Zabbix server limita proxies individuais que enviam pacotes muito grandes (10.000+ registros) se o uso do history cache exceder 60%.
Essa decisão é aplicada no instante em que o server avalia um envio de proxy e, portanto, nem sempre pode ser refletida imediatamente nos gráficos de uso do history cache (o item interno zabbix[wcache,history,pused] e seu intervalo de atualização podem não capturar picos curtos).
Esse modo de limitação continuará até que o uso do cache atinja 80% novamente, ou caia para 20%, ou a lista de limitação fique vazia. No primeiro caso, o server deixará de aceitar dados de proxy novamente. Nos outros dois casos, o server voltará a funcionar normalmente, aceitando dados de todos os proxies.
As informações acima podem ser ilustradas na tabela a seguir:
| Uso do history write cache |
Modo do Zabbix server | Ação do Zabbix server |
|---|---|---|
| Atinge 80% | Aguarda | Para de aceitar dados de proxy, mas mantém uma lista de limitação (lista priorizada de proxies a serem contatados posteriormente). |
| Atinge 60% | Normal, mas preparado para ser limitado | Pode recusar envios de proxy muito grandes (mais de 10 mil registros) ao decidir se aceita os dados; continua aceitando outros dados de proxy. |
| Cai para 20% | Normal | Descarta a lista de limitação e começa a aceitar dados de proxy normalmente. |
Você pode usar o item interno zabbix[wcache,history,pused] para correlacionar esse comportamento do Zabbix server com uma métrica.
Configuração
Depois de instalar e configurar um proxy, é hora de configurá-lo no frontend do Zabbix.
Adicionando proxies
Para configurar um proxy no frontend do Zabbix:
- Acesse Administration > Proxies.
- Clique em Create proxy.
- Insira os parâmetros do proxy no formulário.

| Parâmetro | Descrição | |
|---|---|---|
| Proxy name | Insira o nome do proxy. Ele deve ser igual ao nome definido no parâmetro Hostname no arquivo de configuração do proxy. | |
| Proxy group | Selecione um grupo de proxies para balanceamento de carga/alta disponibilidade do proxy. | |
| Address for active agents | Insira o endereço ao qual os agents ativos monitorados ou senders devem se conectar. Compatível somente com agents do Zabbix 7.0 ou posterior. Esse endereço é usado para conectar-se a proxies ativos e passivos. Este campo só estará disponível se um grupo de proxies for selecionado no campo Proxy group. |
|
| Address | Endereço IP/nome DNS ao qual se conectar. | |
| Port | Número da porta TCP (10051 por padrão) à qual se conectar. Macros de usuário são compatíveis. | |
| Proxy mode | Selecione o modo do proxy. Active - o proxy se conectará ao server do Zabbix e solicitará dados de configuração Passive - o server do Zabbix se conectará ao proxy Observação: sem comunicações criptografadas, os dados de configuração do proxy (sensíveis) poderão ficar disponíveis para partes que tenham acesso à porta trapper do Zabbix server ao usar um proxy ativo. Isso é possível porque qualquer pessoa pode se passar por um proxy ativo e solicitar dados de configuração se a autenticação não ocorrer ou se os endereços dos proxies não forem limitados no campo Proxy address. |
|
| Proxy address | Se especificado, as solicitações de proxies ativos serão aceitas somente desta lista de endereços IP separados por vírgulas, opcionalmente na notação CIDR, ou de nomes DNS de proxies ativos do Zabbix. Este campo só estará disponível se um proxy ativo for selecionado no campo Proxy mode. Macros não são compatíveis. |
|
| Interface | Insira os detalhes da interface de um proxy passivo. Este campo só estará disponível se um proxy passivo for selecionado no campo Proxy mode. |
|
| Address | Endereço IP/nome DNS do proxy passivo. | |
| Port | Número da porta TCP do proxy passivo (10051 por padrão). Macros de usuário são compatíveis. | |
| Description | Insira a descrição do proxy. | |
A aba Encryption permite exigir conexões criptografadas com o proxy.
| Parâmetro | Descrição |
|---|---|
| Connections to proxy | Como o server se conecta ao proxy passivo: sem criptografia (padrão), usando PSK (chave pré-compartilhada) ou certificado. |
| Connections from proxy | Selecione quais tipos de conexão são permitidos a partir do proxy ativo. Vários tipos de conexão podem ser selecionados ao mesmo tempo (útil para testes e para alternar para outro tipo de conexão). O padrão é "No encryption". |
| Issuer | Emissor permitido do certificado. Primeiro, o certificado é validado com a CA (autoridade certificadora). Se for válido e assinado pela CA, o campo Issuer poderá ser usado para restringir ainda mais as CAs permitidas. Este campo é opcional e destina-se a instalações do Zabbix que usam certificados de várias CAs. |
| Subject | Assunto permitido do certificado. Primeiro, o certificado é validado com a CA. Se for válido e assinado pela CA, o campo Subject poderá ser usado para permitir apenas um valor da string Subject. Se este campo estiver vazio, qualquer certificado válido assinado pela CA configurada será aceito. |
| PSK identity | String de identidade da chave pré-compartilhada. Não insira informações sensíveis na identidade PSK, pois ela é transmitida sem criptografia pela rede para informar ao receptor qual PSK deve ser usada. |
| PSK | Chave pré-compartilhada (string hexadecimal). Comprimento máximo: 512 dígitos hexadecimais (PSK de 256 bytes) se o Zabbix usar a biblioteca GnuTLS ou OpenSSL; 64 dígitos hexadecimais (PSK de 32 bytes) se o Zabbix usar a biblioteca mbed TLS (PolarSSL). Exemplo: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952 |
A aba Timeouts permite substituir os tempos limite globais para tipos de item que oferecem suporte a isso.

| Parâmetro | Descrição |
|---|---|
| Timeouts for item types | Defina o tempo limite do item (com base no tipo): Global - usa o tempo limite global (exibido no campo Timeout esmaecido de cada tipo de item); Override - define um tempo limite personalizado (no campo Timeout de cada tipo de item). Intervalo permitido: 1 - 600s (padrão: herdado dos tempos limite globais). Sufixos de tempo, como 30s, 1m, e macros de usuário são compatíveis. Clicar no link Global timeouts permite configurar os tempos limite globais. Observe que o link Global timeouts fica visível somente para usuários do tipo Super admin com permissões para a seção do frontend Administration > General. Observe que, embora os tempos limite no nível do proxy substituam os globais, eles serão substituídos pelos tempos limite de itens individuais, se configurados. |
Se a versão principal do proxy não corresponder à versão principal do server, o ícone
será exibido ao lado de Timeouts for item types, com a mensagem exibida ao passar o mouse: "Timeouts disabled because the proxy and server versions do not match".
Nesses casos, o proxy usará o parâmetro Timeout do arquivo de configuração do proxy.
O formulário de edição de um proxy existente contém os seguintes botões adicionais:
- Refresh configuration - atualiza a configuração do proxy;
- Clone - cria um novo proxy com base nas propriedades do proxy existente;
- Delete - exclui o proxy.
Configuração do host
Você pode especificar que um host individual deve ser monitorado por um proxy ou grupo de proxy no formulário de configuração do host, usando o campo Monitored by.

A atualização em massa de host é outra forma de especificar que hosts devem ser monitorados por um proxy ou grupo de proxy.