#1 Hoge beschikbaarheid

Overzicht

Hoge beschikbaarheid (HA) is doorgaans vereist in kritieke infrastructuren die zich vrijwel geen downtime kunnen veroorloven. Dus voor elke service die kan mislukken, er moet een failover-optie zijn om het over te nemen mocht de huidige service mislukken.

Zabbix biedt een native oplossing met hoge beschikbaarheid die gemakkelijk te opgezet en vereist geen eerdere HA-expertise. Inheemse Zabbix HA kan handig zijn voor een extra beschermingslaag tegen software/hardware storingen van de Zabbix-server of om minder downtime te hebben door onderhoud.

In de Zabbix-modus met hoge beschikbaarheid worden meerdere Zabbix-servers uitgevoerd als knooppunten in een cluster. Terwijl één Zabbix-server in het cluster actief is, anderen staan stand-by, klaar om het over te nemen als dat nodig is.

Overstappen naar Zabbix HA is vrijblijvend. U kunt terugschakelen naar standalone operatie op elk moment.

Zie ook: Implementatie details

Hoge beschikbaarheid inschakelen

Starting a Zabbix server as a cluster node involves the following steps and configuration parameters:

  1. HANodeName Parameter: Specify the HANodeName parameter for each Zabbix server that will be part of the HA (High Availability) cluster. This parameter acts as a unique node identifier. For example:

    HANodeName=zabbix-node-01
  2. NodeAddress Parameter: For each node, set the NodeAddress parameter in the configuration. This parameter should contain the IP address or FQDN (Fully Qualified Domain Name) and port that the Zabbix frontend will use to connect to the active server node. For example:

    NodeAddress=192.168.1.100:10051
  3. Restart Servers: After making changes to the configuration files of all Zabbix servers, restart them. This will initiate the cluster setup.

  4. Check Cluster Status: You can check the status of the HA cluster by navigating to ReportsSystem informationStatus of Zabbix. Additionally, you can use the runtime control command zabbix_server -R ha_status to log the current HA cluster status into the Zabbix server log and display it on the command line.

By following these steps and configuring the appropriate parameters, you can start Zabbix servers as cluster nodes and form a High Availability cluster.

Frontend voorbereiden

Zorg ervoor dat Zabbix-server adres:poort niet gedefinieerd is in de frontend configuratie (te vinden in conf/zabbix.conf.php van de frontend bestandenmap).

Zabbix frontend detecteert automatisch het actieve knooppunt door instellingen te lezen uit de instantie tabel in de Zabbix-database. instantie adres van het actieve knooppunt wordt gebruikt als het Zabbix-server adres.

Proxy configuratie

HA-clusterknooppunten (servers) moeten worden vermeld in de configuratie van zowel een passieve als een actieve Zabbix-proxy.

Voor een passieve proxy moeten de knoopkoppelingen worden vermeld in de Server parameter van de proxy, gescheiden door een komma.

Server=zabbix-node-01,zabbix-node-02

Voor een actieve proxy moeten de knoopkoppelingen worden vermeld in de Server parameter van de proxy, gescheiden door een puntkomma.

Server=zabbix-node-01;zabbix-node-02
Agentconfiguratie

HA-clusterknooppunten (servers) moeten worden vermeld in de configuratie van: Zabbix-agent of Zabbix-agent 2.

Om passieve controles in te schakelen, moeten de instantie namen worden vermeld in de Server parameter, gescheiden door een komma.

Server=zabbix-node-01,zabbix-node-02

Om actieve controles in te schakelen, moeten de instantie namen worden vermeld in de ServerActive parameter. Merk op dat voor actieve controles de knooppunten moeten worden gescheiden door een komma van alle andere servers, terwijl de knooppunten zelf moeten worden gescheiden door een puntkomma, bijvoorbeeld:

ServerActive=zabbix-node-01;zabbix-node-02

Failover naar standby-knooppunt

Zabbix zal automatisch een failover naar een andere instantie uitvoeren als de actieve instantie stopt. Er moet ten minste één instantie in stand-by status zijn om de failover te laten plaatsvinden.

Hoe snel zal de failover zijn? Alle instantie werken hun laatste toegangstijd bij (en status, als het wordt gewijzigd) elke 5 seconden. Dus:

  • Als de actieve instantie wordt afgesloten en erin slaagt zijn status te rapporteren als "gestopt", zal een andere instantie het binnen 5 seconden overnemen.

  • Als de actieve instantie wordt afgesloten/niet beschikbaar wordt zonder te kunnen updaten zijn status, wachten standby-knooppunten op de failoververtraging + 5 seconden om het over te nemen

De failover-vertraging is configureerbaar, met het ondersteunde bereik tussen 10 seconden en 15 minuten (standaard één minuut). Om de failover-vertraging te wijzigen, kunt u het volgende uitvoeren:

zabbix_server -R ha_set_failover_delay=5m

Beheer van HA-cluster

De huidige status van het HA-cluster kan worden beheerd met behulp van de speciale runtimebeheer-opties:

  • ha_status - logt de HA-clusterstatus in het Zabbix-serverlogboek (en naar stdout).
  • ha_remove_node=target - verwijdert een HA-knooppunt geïdentificeerd door zijn <target> - nummer van het knooppunt in de lijst (het nummer kan worden verkregen uit de uitvoer van het commando ha_status), bijvoorbeeld:
zabbix_server -R ha_remove_node=2

Merk op dat actieve/passieve knooppunten niet kunnen worden verwijderd.

  • ha_set_failover_delay=delay - stelt de failover-vertraging in voor HA (tussen 10 seconden en 15 minuten; tijdsvoorvoegsels worden ondersteund, bijv. 10s, 1m).

De knooppuntstatus kan worden gecontroleerd:

  • in RapportenSysteeminformatie
  • in de dashboard-widget Systeeminformatie
  • met behulp van de runtimebeheeroptie ha_status van de server (zie hierboven).

Het interne item zabbix[cluster,discovery,nodes] kan worden gebruikt voor knooppuntdetectie, omdat het een JSON retourneert met informatie over de high-availability knooppunten.

Hoge beschikbaarheid uitschakelen

Een cluster met hoge beschikbaarheid uitschakelen:

  • maak reservekopieën van configuratiebestanden
  • stop standby instanties
  • verwijder de parameter HANodeName van de actieve primaire server
  • herstart de primaire server (deze start in standalone modus)

Implementatiedetails

Het high availability (HA) cluster is een opt-in oplossing en wordt ondersteund voor de Zabbix-server. De native HA-oplossing is ontworpen om eenvoudig in gebruik te zijn, werkt over verschillende locaties en heeft geen specifieke eisen voor de databases die Zabbix herkent. Gebruikers kunnen ervoor kiezen om de native Zabbix HA-oplossing te gebruiken of een HA-oplossing van een derde partij, afhankelijk van wat het beste past bij de high availability-eisen in hun omgeving.

De oplossing bestaat uit meerdere zabbix_server instanties of knooppunten. Elk knooppunt:

  • wordt apart geconfigureerd
  • gebruikt dezelfde database
  • kan verschillende modi hebben: actief, standby, niet beschikbaar, gestopt

Slechts één knooppunt kan op elk moment actief (werkend) zijn. Een standby-knooppunt voert slechts één proces uit - de HA-manager. Een standby-knooppunt voert geen gegevensverzameling, verwerking of andere reguliere serveractiviteiten uit; ze luisteren niet op poorten en hebben een minimum aan databaseverbindingen.

Zowel actieve als standby-knooppunten werken hun laatste toegangstijd bij elke 5 seconden bij. Elk standby-knooppunt bewaakt de laatste toegangstijd van het actieve knooppunt. Als de laatste toegangstijd van het actieve knooppunt langer is dan 'failover-vertraging' seconden, schakelt het standby-knooppunt zichzelf om naar het actieve knooppunt en wijst het de status 'niet beschikbaar' toe aan het eerder actieve knooppunt.

Het actieve knooppunt bewaakt zijn eigen databaseconnectiviteit - als deze gedurende meer dan failover-vertraging-5 seconden verloren gaat, moet het alle verwerking stopzetten en overschakelen naar de standby-modus. Het actieve knooppunt bewaakt ook de status van de standby-knooppunten - als de laatste toegangstijd van een standby-knooppunt langer is dan 'failover-vertraging' seconden, krijgt het standby-knooppunt de status 'niet beschikbaar' toegewezen.

De knooppunten zijn ontworpen om compatibel te zijn met kleine Zabbix-versies.