#1 Hoge beschikbaarheid
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
Er zijn twee parameters vereist in de server configuratie om een Zabbix-server als cluster instantie te starten:
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 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 Rapporten → Systeeminformatie en ook door te rennen:
zabbix_server -R ha_status
Deze runtime-opdracht registreert de huidige HA-cluster status in het Zabbix-server logboek:
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.
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
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
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
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-serverlogboekha_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:
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.
Een cluster met hoge beschikbaarheid uitschakelen:
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:
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.