2 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 os 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 precisam apenas do 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 alta disponibilidade do proxy é gerenciado pelo Zabbix server por meio do gerenciador de grupos de proxy, que monitora continuamente o estado de todos os proxies em cada grupo de proxy e sua distribuição de hosts.

A alta disponibilidade do proxy dentro de um grupo é garantida por meio do failover do proxy: quando um proxy fica offline, seus hosts são imediatamente redistribuídos para outros proxies. O balanceamento de carga do proxy também ocorre, pois os hosts são reatribuídos aos proxies com menos hosts atribuídos.

Além disso, o balanceamento de carga do proxy é acionado quando a contagem de hosts do proxy difere da média do grupo em pelo menos 10 hosts e um fator de 2 (excesso ou déficit de hosts). Se o desequilíbrio persistir após um período de carência (10 x failover delay), o grupo de proxy é colocado na fila para redistribuição de hosts.

O gerenciador de grupos de proxy redistribui os hosts usando a seguinte lógica:

  1. Calcule o número médio de hosts por proxy.
  2. Para proxies com excesso de hosts—mova os hosts excedentes para o pool não atribuído de proxies.
  3. Para proxies com déficit de hosts—calcule quantos hosts são necessários para atingir o equilíbrio.
  4. Remova o número necessário de hosts dos proxies com mais hosts.
  5. Mova os hosts não atribuídos para os proxies com menos hosts.

Exemplos de redistribuição de hosts:

Hosts no proxy Média do grupo Reatribuição de hosts
100 50 Sim
60 50 Não
40 50 Não
25 50 Sim
15 5 Sim
10 5 Não

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

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 dentro desse 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 movê-los 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 sã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 resultar na 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 sã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
  • Traps SNMP 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 nos 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 nos dados de descoberta de rede de um proxy em um grupo de proxies são definidos para serem monitorados por esse proxy.