Esta é uma tradução da página de documentação original em inglês. Ajude-nos a torná-la melhor.

1 Cluster de alta disponibilidade

Visão geral

O modo de alta disponibilidade oferece proteção contra falhas de software/hardware para o Zabbix Server e permite minimizar o tempo de parada durante manutenções de software/hardware.

O cluster de alta disponibilidade (HA) é uma solução opcional (opt-in) e é suportada para Zabbix Server. A solução de HA nativa é projetada para ser simples de usar, funcionará entre sites e não possui requisitos específicos para os bancos de dados que o Zabbix reconhece. Os usuários são livres para utilizar a solução de HA nativa do Zabbix, ou uma solução de HA de terceiros, dependendo do que melhor atende as necessidades de alta disponibilidade em seus ambientes.

A solução consiste de múltiplas instâncias ou nós do zabbix_server. Cada nó:

  • é configurado separadamente (arquivo de configuração, scripts, criptografia, exportação de dados)
  • usa o mesmo banco de dados
  • possui vários modos: ativo, em espera, indisponível, parado

Apenas um nó pode estar ativo (trabalhando) por vez. Os nós em espera não fazem coleta de dados, processamento ou outras atividades regulares do Server; eles não esperam por comunicação nas portas; eles têm conexões mínimas com o banco de dados.

Ambos os nós ativos e em espera atualizam seus horários de último acesso a cada 5 segundos. Cada nó em espera monitora o horário do último acesso do nó ativo. Se horário do último acesso do nó ativo estiver acima de 'atraso de recuperação de falha' segundos, o nó em espera torna a si o nó ativo e associa o estado de 'indisponível' ao nó anteriormente ativo.

O nó ativo monitora sua própria conectividade de banco de dados - se for perdida por mais do que atraso de recuperação de falha - 5 segundos, ele deve parar todo o processamento e alterar para o modo de espera. O nó ativo também monitora o estado dos nós em espera - se o horário do último acesso de um nó em espera for maior do que 'atraso de recuperação de falha' segundos, o nó em espera recebe o estado de 'indisponível'.

O atraso de recuperação de falha é configurável, com o valor mínimo sendo de 10 segundos.

Os nós são projetados para serem compatíveis entre versões secundárias (minor) do Zabbix.

Habilitando cluster HA

Configurações do Server

Para transformar qualquer Zabbix Server de um servidor isolado (standalone) em um nó de cluster HA, especifique o parâmetro HANodeName (nome do nó) na configuração do Server.

O parâmetro de endereço do nó NodeAddress (endereço:porta), se configurado, deve ser usado pelo Frontend do nó ativo, sobrescrevendo o valor presente no zabbix.conf.php.

Preparing frontend

Make sure that Zabbix server address:port is not defined in the frontend configuration.

Zabbix frontend will autodetect the active node by reading settings from the nodes table in Zabbix database. Node address of the active node will be used as the Zabbix server address.

Configuração do Proxy

Para habilitar conexões à múltiplos Servers em um ambiente de alta disponibilidade, liste os endereços de nó de HA no parâmetro Server do Proxy, separados por ponto-e-vírgula.

Configurações do Agent

Para habilitar conexões à múltiplos Servers em um ambiente de alta disponibilidade, liste os endereços de nó de HA no parâmetro ServerActive do agente, separados por ponto-e-vírgula.

Failover to standby node

Zabbix will fail over to another node automatically if the active node stops. There must be at least one node in standby status for the failover to happen.

How fast will the failover be? All nodes update their last access time (and status, if it is changed) every 5 seconds. So:

  • If the active node shuts down and manages to report its status as "shut down", another node will take over within 5 seconds.

  • If the active node shuts down/becomes unavailable without being able to update its status, standby nodes will wait for the failover delay + 5 seconds to take over

The failover delay is configurable, with the supported range between 10 seconds and 15 minutes (one minute by default). To change the failover delay, you may run:

zabbix_server -R ha_set_failover_delay=5m

Gerenciando um cluster HA

O estado atual do cluster HA pode ser gerenciado usando as opções de controle em tempo de execução dedicadas:

  • ha_status - registra o estado do cluster HA no log do Zabbix Server;
  • ha_remove_node=alvo - remove um nó HA identificado por seu <alvo> - número do nó na lista (o número pode ser obtido do resultado da execução de ha_status). Note que nós ativos/em espera não podem ser removidos.
  • ha_set_failover_delay=atraso - configure o atraso de recuperação de falha de HA (sufixos de tempo são suportados, p.e. 10s, 1m)

O estado de um nó pode ser monitorado:

  • em RelatóriosInformação do sistema
  • no widget de dashboard Informação de sistema
  • usando a opção de controle em tempo de execução ha_status do Server (veja acima).

O item interno zabbix[cluster,discovery,nodes] pode ser usado para descoberta de nó, pois ele retorna um JSON com informações de nós de alta disponibilidade.

Desabilitando um cluster HA

Para desabilitar um cluster de alta disponibilidade:

  • faça cópia de backup dos arquivos de configuração
  • pare os nós em espera
  • remova o parâmetro HANodeName do servidor primário ativo
  • reinicie o servidor primário (ele iniciará em modo isolado (standalone))

Upgrading HA cluster

To perform a major version upgrade for the HA nodes:

  • stop all nodes;
  • create a full database backup;
  • if the database uses replication make sure that all nodes are in sync and have no issues. Do not upgrade if replication is broken.
  • select a single node that will perform database upgrade, change its configuration to standalone mode by commenting out HANodeName and upgrade it;
  • make sure that database upgrade is fully completed (System information should display that Zabbix server is running);
  • restart the node in HA mode;
  • upgrade and start the rest of nodes (it is not required to change them to standalone mode as the database is already upgraded at this point).

In a minor version upgrade it is sufficient to upgrade the first node, make sure it has upgraded and running, and then start upgrade on the next node.

Implementation details

The high availability (HA) cluster is an opt-in solution and it is supported for Zabbix server. The native HA solution is designed to be simple in use, it will work across sites and does not have specific requirements for the databases that Zabbix recognizes. Users are free to use the native Zabbix HA solution, or a third party HA solution, depending on what best suits the high availability requirements in their environment.

The solution consists of multiple zabbix_server instances or nodes. Every node:

  • is configured separately (configuration file, scripts, encryption, data export)
  • uses the same database
  • has several modes: active, standby, unavailable, stopped

Only one node can be active (working) at a time. The standby nodes do no data collection, processing or other regular server activities; they do not listen on ports; they have minimum database connections.

Both active and standby nodes update their last access time every 5 seconds. Each standby node monitors the last access time of the active node. If the last access time of the active node is over 'failover delay' seconds, the standby node switches itself to be the active node and assigns 'unavailable' status to the previously active node.

The active node monitors its own database connectivity - if it is lost for more than failover delay-5 seconds, it must stop all processing and switch to standby mode. The active node also monitors the status of the standby nodes - if the last access time of a standby node is over 'failover delay' seconds, the standby node is assigned the 'unavailable' status.

The failover delay is configurable, with the minimum being 10 seconds.

The nodes are designed to be compatible across minor Zabbix versions.