Alta disponibilidade (HA) é normalmente exigida em infraestruturas críticas que não podem se dar ao luxo de ter praticamente nenhum tempo de inatividade. Portanto, para qualquer serviço que possa falhar, deve haver uma opção de failover disponível para assumir caso o serviço atual falhe.
O Zabbix oferece uma solução de alta disponibilidade nativa que é fácil de configurar e não requer nenhum conhecimento prévio de HA. A HA nativa do Zabbix pode ser útil como uma camada extra de proteção contra falhas de software/hardware do Zabbix server ou para ter menos tempo de inatividade devido à manutenção.
No modo de alta disponibilidade do Zabbix, vários Zabbix servers são executados como nós em um cluster. Enquanto um Zabbix server no cluster está ativo, os outros estão em espera, prontos para assumir se necessário.

A mudança para o Zabbix HA não é comprometedora. Você pode voltar para a operação standalone a qualquer momento.
Veja também: Detalhes da implementação
Dois parâmetros são necessários na configuração do server para iniciar o Zabbix server como nó de cluster:
Este é um identificador de nó exclusivo (por exemplo, zabbix-node-01) pelo qual o server será referenciado nas configurações do agent e do proxy. Se você não especificar o HANodeName, o server será iniciado no modo standalone.
O parâmetro NodeAddress (endereço:porta) será usado pelo frontend do Zabbix para conectar-se ao nó ativo do server. O NodeAddress deve corresponder ao IP ou nome FQDN do respectivo Zabbix server.
Reinicie todos os Zabbix servers após fazer alterações nos arquivos de configuração. Eles serão agora iniciados como nós de cluster. O novo status dos servers pode ser visto em Relatórios → Informações do sistema e também executando:
zabbix_server -R ha_status Este comando em tempo de execução registrará o status atual do cluster HA no log do Zabbix server (e no stdout):

Certifique-se de que o endereço:porta do Zabbix server não esteja definido na configuração do frontend (encontrada em conf/zabbix.conf.php no diretório de arquivos do frontend).

O frontend do Zabbix irá detectar automaticamente o node ativo lendo as configurações da tabela de nodes no banco de dados do Zabbix. O endereço do node ativo será usado como o endereço do Zabbix server.
Os nós do cluster HA (servidores) devem ser listados na configuração do proxy Zabbix passivo ou ativo.
Para um proxy passivo, os nomes dos nós devem ser listados no parâmetro Server parameter do proxy, separados por uma vírgula.
Server=zabbix-node-01,zabbix-node-02 Para um proxy ativo, os nomes dos nós devem ser listados no parâmetro Server parameter do proxy, separados por um ponto e vírgula.
Server=zabbix-node-01;zabbix-node-02 Os nós do cluster HA (servers) devem ser listados na configuração do Zabbix agent ou Zabbix agent 2.

Para habilitar verificações passivas, os nomes dos nós devem ser listados no parâmetro Server parameter, separados por uma vírgula.
Server=zabbix-node-01,zabbix-node-02 Para habilitar verificações ativas, os nomes dos nós devem ser listados no parâmetro ServerActive parameter. Observe que para verificações ativas, os nós devem ser separados por uma vírgula de quaisquer outros servers, enquanto os próprios nós devem ser separados por um ponto e vírgula, por exemplo:
ServerActive=zabbix-node-01;zabbix-node-02 O Zabbix fará o failover para outro nó automaticamente se o nó ativo parar. Deve haver pelo menos um nó em status de espera para que o failover aconteça.
Quão rápido será o failover? Todos os nós atualizam seu último tempo de acesso (e status, se for alterado) a cada 5 segundos. Então:
Se o nó ativo for desligado e conseguir reportar seu status como "parado", outro nó assumirá em 5 segundos.
Se o nó ativo for desligado/tornar-se indisponível sem conseguir atualizar seu status, os nós em espera aguardarão o failover delay + 5 segundos para assumir
O failover delay é configurável, com o intervalo suportado entre 10 segundos e 15 minutos (um minuto por padrão). Para alterar o failover delay, você pode executar:
zabbix_server -R ha_set_failover_delay=5m O status atual do cluster HA pode ser gerenciado usando as opções dedicadas de controle em tempo de execução:
ha_status - registra o status do cluster HA no log do Zabbix server (e no stdout)ha_remove_node=target - remove um nó HA identificado por seu <target> - nome ou ID do nó (nome/ID pode ser obtido a partir da saída da execução do ha_status), por exemplo:zabbix_server -R ha_remove_node=zabbix-node-02 Observe que nós ativos/em espera não podem ser removidos.
ha_set_failover_delay=delay - define o atraso de failover do HA (entre 10 segundos e 15 minutos; sufixos de tempo são suportados, por exemplo, 10s, 1m)O status do nó pode ser monitorado:
ha_status do server (veja acima).O item interno zabbix[cluster,discovery,nodes] pode ser usado para descoberta de nós, pois retorna um JSON com as informações dos nós de alta disponibilidade.
Para desabilitar um cluster de alta disponibilidade:
Para realizar uma atualização de versão principal para os nós HA:
Em uma atualização de versão secundária, basta atualizar o primeiro nó, certificar-se de que ele foi atualizado e está em execução e, em seguida, iniciar a atualização no próximo nó.
O cluster de alta disponibilidade (HA) é uma solução opcional e é suportado para o Zabbix server. A solução nativa de HA foi projetada para ser simples de usar, funciona entre sites e não possui requisitos específicos para os bancos de dados reconhecidos pelo Zabbix. Os usuários são livres para usar a solução nativa de HA do Zabbix ou uma solução de HA de terceiros, dependendo do que melhor atenda aos requisitos de alta disponibilidade em seu ambiente.
A solução consiste em várias instâncias ou nós do zabbix_server. Cada nó:
Apenas um nó pode estar ativo (em funcionamento) por vez. Um nó standby executa apenas um processo - o gerenciador de HA. Um nó standby não faz coleta de dados, processamento ou outras atividades regulares do server; eles não escutam em portas; possuem conexões mínimas com o banco de dados.
Tanto os nós ativos quanto os standby atualizam seu último tempo de acesso a cada 5 segundos. Cada nó standby monitora o último tempo de acesso do nó ativo. Se o último tempo de acesso do nó ativo ultrapassar o valor de 'failover delay' em segundos, o nó standby se torna o nó ativo e atribui o status 'indisponível' ao nó anteriormente ativo.
O nó ativo monitora sua própria conectividade com o banco de dados - se ela for perdida por mais de failover delay-5 segundos, ele deve parar todo o processamento e mudar para o modo standby. O nó ativo também monitora o status dos nós standby - se o último tempo de acesso de um nó standby ultrapassar 'failover delay' segundos, o nó standby recebe o status 'indisponível'.
Os nós foram projetados para serem compatíveis entre versões menores do Zabbix.