Balanceamento de carga e alta disponibilidade do proxy
Visão geral
Os proxies do Zabbix podem ser organizados em grupos de proxy para permitir balanceamento de carga e alta disponibilidade dos proxies.
O balanceamento de carga e a alta disponibilidade dos proxies consistem na redistribuição automática de hosts entre proxies dentro de um grupo de proxy:
- Se um proxy ficar offline, seus hosts serão movidos para outros proxies, mantendo assim a alta disponibilidade do proxy.
- Se um proxy tiver um número de hosts muito maior/menor do que os outros proxies, seus hosts serão movidos para outros proxies para equilibrar a carga do proxy.
A redistribuição de hosts funciona apenas entre proxies em um grupo que atendam às seguintes condições:
- Os proxies estão executando o Zabbix 7.0 ou posterior.
- A versão do proxy corresponde à versão do server do Zabbix. Se estiver usando Zabbix agent (passivo), a versão do proxy deve corresponder à versão do agent. Agents ativos exigem apenas Zabbix 7.0 ou posterior.
- O grupo de proxy tem um estado online.
- Os hosts estão configurados para serem monitorados por um grupo de proxy, em vez de proxies individuais.
A integridade do grupo de proxy pode ser monitorada com verificações internas por qualquer host atribuído a um grupo de proxy. No entanto, para monitorar a integridade de um único proxy em um grupo, atribua o host a esse proxy; caso contrário, os resultados podem ser inconsistentes.
Redistribuição de hosts
O balanceamento de carga e a alta disponibilidade de proxy são gerenciados pelo Zabbix server por meio do proxy group manager, que monitora continuamente o estado de todos os proxies em cada grupo de proxy e a distribuição de seus hosts.
A alta disponibilidade de proxy dentro de um grupo é garantida por failover de proxy: quando um proxy fica offline, seus hosts são imediatamente redistribuídos para outros proxies. O balanceamento de carga de proxy também ocorre, pois os hosts são reatribuídos aos proxies com o menor número de hosts atribuídos.
Além disso, o balanceamento de carga de proxy é acionado quando a contagem de hosts do proxy difere da média do grupo em pelo menos 10 hosts e por um fator de 2 (excesso de hosts ou déficit de hosts). Se o desequilíbrio persistir após um período de tolerância (10 x failover delay), o grupo de proxy é colocado na fila para redistribuição de hosts.
O proxy group manager redistribui os hosts usando a seguinte lógica:
- Calcular o número médio de hosts por proxy.
- Para proxies com excesso de hosts — mover os hosts excedentes para o pool de proxies não atribuídos.
- Para proxies com déficit de hosts — calcular quantos hosts são necessários para atingir o equilíbrio.
- Remover o número necessário de hosts dos proxies com mais hosts.
- Mover os hosts não atribuídos para os proxies com menos hosts.
Exemplos de redistribuição de hosts:
| Hosts on proxy | Group average | Host reassignment |
|---|---|---|
| 100 | 50 | Yes |
| 60 | 50 | No |
| 40 | 50 | No |
| 25 | 50 | Yes |
| 15 | 5 | Yes |
| 10 | 5 | No |
Ter menos de 10 hosts monitorados por um grupo de proxy pode levar a uma distribuição desigual de hosts entre os proxies do grupo.
Configurando um grupo de proxy
Para configurar um grupo de proxy no frontend do Zabbix:
- Acesse Administration > Proxy groups
- Clique em Create proxy group

| Parameter | Description |
|---|---|
| Name | Nome do grupo de proxy. |
| Failover period | Período, em segundos, durante o qual um proxy no grupo de proxy deve se comunicar com o Zabbix server para ser considerado online (padrão: 1m; intervalo: 10s-15m). Se o proxy não se comunicar dentro desse período, o estado do proxy é alterado para Offline, e seus hosts são imediatamente redistribuídos para outros proxies. O balanceamento de carga dos proxies começa após 10 x esse período. Suporta sufixos de tempo (por exemplo, 30s, 1m) e macros de usuário. |
| Minimum number of proxies | Número mínimo de online proxies necessário para manter o proxy group online (padrão: 1; intervalo: 1-1000). Suporta macros de usuário. Esse valor deve ser menor que o número total de proxies no grupo. Por exemplo, em um grupo de 10 proxies, definir o mínimo como 10 fará com que o grupo fique offline se qualquer proxy falhar. Observe que proxies online em um grupo offline continuam funcionando normalmente, mas o balanceamento de carga/disponibilidade alta não ocorrerá. |
| Description | Descrição do grupo de proxy. |
| Proxies | Exibe uma lista de até cinco proxies (como links ou em texto simples, dependendo das permissões do usuário para proxies) ao editar um grupo com proxies. |
Configurando o balanceamento de carga de proxy
Para usar o balanceamento de carga de proxy, você precisa configurar um grupo de proxy no Zabbix frontend (veja acima) e garantir que os hosts sejam monitorados por um grupo de proxy, e não por proxies individuais (você pode usar a atualização em massa de host para mover hosts de proxies para o grupo de proxy).
Se estiver usando o Zabbix agent, configure-o também da seguinte forma:
- Para verificações passivas, liste todos os proxies do grupo de proxy no parâmetro Server.
- Para verificações ativas, é recomendável listar todos os proxies do grupo de proxy ou o Zabbix server no parâmetro ServerActive. Observe que apenas o Zabbix agent 7.0 (ou posterior) funcionará com grupos de proxy no modo ativo.
Se o parâmetro ServerActive incluir apenas um proxy de um grupo de proxy (ou o Zabbix server), o agent ainda conseguirá se conectar ao proxy correto.
Quando o serviço do agent iniciar e se conectar ao proxy especificado, o agent receberá e armazenará em cache a lista completa de IPs dos proxies e sua carga atual dentro do grupo.
Em seguida, as verificações ativas serão redirecionadas para o proxy online correto para o host, com base na atribuição atual de proxy-host dentro do grupo de proxy.
Ter apenas um único proxy especificado no parâmetro ServerActive do Zabbix agent pode levar à perda de dados de monitoramento se o agent for iniciado/reiniciado enquanto o proxy especificado estiver offline.
Ao usar o Zabbix sender, as solicitações de dados também são redirecionadas para o proxy online correto para o host, com base na atribuição atual de proxy-host dentro do grupo de proxy.
No entanto, se você estiver enviando valores de vários hosts a partir de um arquivo de entrada, use a opção -g para evitar o envio de dados para o proxy errado.
O Zabbix agent também deve conseguir se conectar a todos os proxies do grupo de proxy através do firewall. Caso contrário, as verificações ativas podem travar ou falhar durante o redirecionamento ou o failover. Por exemplo:
- Durante as verificações ativas, um proxy pode redirecionar o agent para outro proxy. Se esse proxy estiver bloqueado por um firewall, a comunicação ficará travada aguardando uma resposta.
- Em configurações estáveis de alta disponibilidade sem rebalanceamento recente, os agents talvez nunca entrem em contato com proxies de backup. Se as regras de firewall tiverem sido alteradas e não tiverem sido testadas, o failover poderá falhar.
Testando o balanceamento de carga do proxy
Para testar o balanceamento de carga do proxy:
- Configure um grupo de proxy.
- Certifique-se de que o grupo de proxy tenha um estado online.
- Certifique-se de que os hosts sejam monitorados por um grupo de proxy, e não por proxies individuais (você pode usar a atualização em massa de hosts para mover hosts de proxies para o grupo de proxy).
- Aguarde alguns segundos pela atualização da configuração e pela distribuição dos hosts entre os proxies no grupo de proxy. Observe a mudança atualizando a lista de hosts em Administration > Proxies.
Notas importantes
- SNMP traps não são suportados por proxies em um grupo de proxy.
- Verificações que dependem de configuração externa (por exemplo, scripts para external checks ou configuração ODBC para database checks) devem ter a mesma configuração em todos os proxies em um grupo de proxy.
- Database checks exigem permissões estendidas no objeto do banco de dados/server.
- Hosts VMware monitorados por um grupo de proxy serão distribuídos aleatoriamente entre os proxies do grupo. Isso faz com que cada proxy armazene em cache todos os dados do VMware, resultando em carga adicional no vCenter.
- Hosts criados com base em dados de autoregistro de um proxy em um grupo de proxy são definidos para serem monitorados por esse grupo de proxy. No entanto, hosts criados com base em dados de descoberta de rede de um proxy em um grupo de proxy são definidos para serem monitorados por esse proxy.