This is a translation of the original English documentation page. Help us make it better.

#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

Zabbix-server starten als clusterknooppunt

Er zijn twee parameters vereist in de server configuratie om een Zabbix-server als cluster instantie te starten:

  • HANodeName-parameter moet worden opgegeven voor elke Zabbix-server dat zal een HA-cluster instantie zijn.

Dit is de naam waarnaar de server wordt verwezen in agent en proxy configuraties (bijv. zabbix-node-01). Als u geen HANodeName opgeeft, wordt de server gestart in zelfstandige modus.

  • De parameter NodeAddress moet voor elke instantie worden opgegeven.

De NodeAddress-parameter (adres:poort) wordt door de Zabbix-frontend gebruikt om verbinding te maken naar het actieve server instantie. NodeAddress moet overeenkomen met de IP- of FQDN-naam van de respectieve Zabbix-server.

Start alle Zabbix-servers opnieuw nadat u wijzigingen in de configuratiebestanden hebt aangebracht. Ze zullen nu worden gestart als clusterknooppunten. De nieuwe status van de servers is te zien in RapportenSysteeminformatie en ook door te rennen:

zabbix_server -R ha_status

Deze runtime-opdracht registreert de huidige HA-cluster status in het Zabbix-server logboek:

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.

Proxyconfiguratie

HA-cluster instantie (servers) moeten worden vermeld in de configuratie van de passieve of actieve Zabbix-proxy.

Voor een passieve proxy moeten de instantie namen 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 instantie namen worden vermeld in de Server parameter van de proxy, gescheiden door een puntkomma.

ServerActive=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

HA-cluster beheren

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

  • ha_status - log HA-cluster status in het Zabbix-serverlogboek
  • ha_remove_node=target - verwijder een HA-instantie geïdentificeerd door zijn <doel> - nummer van de instantie in de lijst (het nummer kan zijn verkregen uit de uitvoer van het uitvoeren van ha_status), bijvoorbeeld:
zabbix_server -R ha_remove_node=2

Houd er rekening mee dat actieve/standby- instanties niet kunnen worden verwijderd.

  • ha_set_failover_delay=delay - stel HA failover-vertraging in (tussen 10 seconden en 15 minuten; tijd achtervoegsels worden ondersteund, b.v. 10s, 1m)

De status van het knooppunt kan worden gecontroleerd:

  • in RapportenSysteeminformatie
  • in de dashboardwidget Systeeminformatie
  • gebruik van de ha_status runtime control optie van de server (zie bovenstaande).

Het interne item zabbix[cluster,discovery,nodes] kan worden gebruikt voor node discovery, omdat het een JSON retourneert met de instantie informatie met hoge beschikbaarheid.

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)

Implementatie details

Het cluster met hoge beschikbaarheid (HA) is een opt-in-oplossing en het is ondersteund voor Zabbix-server. De native HA-oplossing is ontworpen om eenvoudig in gebruik, het werkt op verschillende sites en heeft geen specifieke vereisten voor de databases die Zabbix herkent. Gebruikers zijn vrij om gebruik de native Zabbix HA-oplossing of een HA-oplossing van derden, afhankelijk van wat het beste past bij de hoge beschikbaarheids vereisten in hun omgeving.

De oplossing bestaat uit meerdere zabbix_server-instanties. Elke instantie:

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

Er kan slechts één knooppunt tegelijk actief (werkend) zijn. Een standby- instantie draait er maar één proces - de HA-manager. Een standby- instantie verzamelt geen gegevens, verwerking of andere reguliere server activiteiten; ze luisteren niet op poorten; ze hebben minimale database verbindingen.

Zowel actieve als standby- instanties werken hun laatste toegangstijd elke 5 seconde bij. Elke standby- instantie bewaakt de laatste toegangstijd van de actieve instantie. Als de laatste toegangstijd van het actieve instantie voorbij de 'failover' vertraging' is, schakelt het standby- instantie zichzelf over naar het actieve instantie en wijst de status 'niet beschikbaar' toe aan het eerder actieve instantie.

De actieve instantie bewaakt zijn eigen database connectiviteit - als deze verloren gaat voor meer dan failover delay-5 seconden, moet het alle verwerking stoppen en schakel over naar de stand-by modus. De actieve instantie bewaakt ook de status van de standby nodes - als de laatste toegangstijd van een standby node voorbij is 'failover delay' seconden, wordt de standby-node toegewezen aan de 'unavailable' toestand.

De instanties zijn ontworpen om compatibel te zijn binnen kleine Zabbix-versies.