Balanceamento de carga e alta disponibilidade do proxy

Visão geral

Os proxies do Zabbix podem ser organizados em grupos de proxies para habilitar o balanceamento de carga e a alta disponibilidade dos proxies.

O balanceamento de carga e a alta disponibilidade dos proxies consistem na redistribuição automática de hosts entre os proxies dentro de um grupo de proxies:

  • Se um proxy ficar offline, seus hosts serão movidos para outros proxies, mantendo assim a alta disponibilidade dos proxies.
  • Se um proxy tiver um número de hosts muito maior ou menor que o dos outros proxies, seus hosts serão movidos para outros proxies para equilibrar a carga dos proxies.

A redistribuição de hosts funciona somente entre proxies de 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 Zabbix server. Se estiver usando o Zabbix agent (passivo), a versão do proxy deve corresponder à versão do agent. Agents ativos exigem apenas o Zabbix 7.0 ou posterior.
  • O grupo de proxies tem um estado online.
  • Os hosts estão configurados para serem monitorados por um grupo de proxies, em vez de proxies individuais.

A integridade do grupo de proxies pode ser monitorada com verificações internas por qualquer host atribuído a um grupo de proxies. No entanto, para monitorar a integridade de um único proxy em um grupo, atribua o host a esse proxy; caso contrário, os resultados poderão 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:

  1. Calcular o número médio de hosts por proxy.
  2. Para proxies com excesso de hosts — mover os hosts excedentes para o pool de proxies não atribuídos.
  3. Para proxies com déficit de hosts — calcular quantos hosts são necessários para atingir o equilíbrio.
  4. Remover o número necessário de hosts dos proxies com mais hosts.
  5. 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:

  1. Acesse Administração > Grupos de proxy.
  2. Clique em Criar grupo de proxy.
  3. Insira os parâmetros do grupo de proxy no formulário.

Parâmetro Descrição
Nome Nome do grupo de proxy.
Período de failover 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 durante esse período, seu estado será alterado para Offline, e seus hosts serão imediatamente redistribuídos para outros proxies. O balanceamento de carga do proxy começa após 10 x esse período.
Suporta sufixos de tempo (por exemplo, 30s, 1m) e macros de usuário.
Número mínimo de proxies Número mínimo de proxies online necessários para manter o grupo de proxy 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 com 10 proxies, definir o mínimo como 10 fará com que o grupo fique offline se qualquer proxy falhar. Observe que os proxies online em um grupo offline continuam funcionando normalmente, mas o balanceamento de carga/alta disponibilidade não ocorrerá.
Descrição 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 do proxy

Para usar o balanceamento de carga do proxy, você precisa configurar um grupo de proxies no frontend do Zabbix (consulte acima) e garantir que os hosts sejam monitorados por um grupo de proxies, e não por proxies individuais (você pode usar a atualização em massa de hosts para mover os hosts dos proxies para o grupo de proxies).

Se estiver usando o Zabbix agent, configure-o também da seguinte forma:

  • Para verificações passivas, liste todos os proxies do grupo de proxies no parâmetro Server.
  • Para verificações ativas, é recomendável listar todos os proxies do grupo de proxies ou o Zabbix server no parâmetro ServerActive. Observe que somente o Zabbix agent 7.0 (ou posterior) funcionará com grupos de proxies no modo ativo.

Se o parâmetro ServerActive incluir apenas um proxy de um grupo de proxies (ou o Zabbix server), o agent ainda poderá se conectar ao proxy correto. Quando o serviço do agent é iniciado e se conecta ao proxy especificado, o agent recebe e armazena em cache a lista completa de IPs dos proxies e a carga atual de cada um dentro do grupo. Em seguida, as verificações ativas serão redirecionadas para o proxy online correto do host, com base na atribuição atual de proxy-host dentro do grupo de proxies.

Especificar apenas um proxy no parâmetro ServerActive do Zabbix agent pode causar a perda de dados de monitoramento se o agent for iniciado ou reiniciado enquanto o proxy especificado estiver offline.

Ao usar o Zabbix sender, as solicitações de dados também serão redirecionadas para o proxy online correto do host, com base na atribuição atual de proxy-host dentro do grupo de proxies. 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 ao proxy incorreto.

O Zabbix agent também deve conseguir se conectar a todos os proxies do grupo de proxies por meio do firewall. Caso contrário, as verificações ativas poderão 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 enquanto aguarda uma resposta.
  • Em configurações estáveis de alta disponibilidade sem rebalanceamento recente, os agents podem nunca entrar em contato com proxies de backup. Se as regras do firewall forem alteradas e não forem testadas, o failover poderá falhar.
Testando o balanceamento de carga do proxy

Para testar o balanceamento de carga do proxy:

  1. Configure um grupo de proxies.
  2. Certifique-se de que o grupo de proxies esteja online.
  3. Certifique-se de que os hosts sejam monitorados por um grupo de proxies, e não por proxies individuais (você pode usar a atualização em massa de hosts para mover os hosts dos proxies para o grupo de proxies).
  4. Aguarde alguns segundos para que a configuração seja atualizada e os hosts sejam distribuídos entre os proxies do grupo de proxies.

Observe a alteração atualizando a lista de hosts em Administração > Proxies.

Observações importantes
  • SNMP traps não são compatíveis com proxies em um grupo de proxies.
  • As verificações que dependem de configuração externa (por exemplo, scripts para verificações externas ou a configuração de ODBC para verificações de banco de dados) devem ter a mesma configuração em todos os proxies do grupo de proxies.
  • As verificações de banco de dados exigem permissões estendidas no objeto/servidor do banco de dados.
  • Os hosts VMware monitorados por um grupo de proxies 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.
  • Os hosts criados com base em dados de registro automático de um proxy em um grupo de proxies são definidos para serem monitorados por esse grupo de proxies. No entanto, os hosts criados com base em dados de descoberta de rede de um proxy em um grupo de proxies são definidos para serem monitorados por esse proxy.