Fullmoon System

The Operations Loop 03 — Failover en herstel valideren

EdwardMoon

De maatstaf voor validatie is niet of een scherm opent, maar of data en paden daadwerkelijk met elkaar zijn verbonden. Dit artikel legt de taken en observatieresultaten vast die zijn uitgevoerd tijdens de VirtualBox-praktijktest op 2026-09-20. Er wordt onderscheid gemaakt tussen verwachte ontwerpresultaten, daadwerkelijke tests en de scope die nog niet is uitgevoerd.

Volgorde van dit artikel

1. Validatieomgeving en beoordelingscriteria

Er is gebruikgemaakt van Rocky Linux 10.2, Zabbix 7.0.30 LTS, NetBox 4.7.1 en AWX 24.6.1. Twee centrale VM’s en een quorum, Gateway, Provision en Proxy-/Bastion-omgevingen voor drie zones zijn geconfigureerd. Alle VM’s delen het geheugen, de CPU en de opslag van één fysieke pc.

Een normale onboarding slaagt alleen als PXE-installatie → goedgekeurd SSH-pad → werkelijke verzameling van assetgegevens → NetBox native IPAM → Zabbix-registratie → NetBox-gebaseerde AWX-inventarisatiesynchronisatie → bevestiging van de daadwerkelijke nieuwste waarde allemaal succesvol zijn. Een API-registratierespons en de ontvangst van de meest recente data zijn afzonderlijke controlepunten.

2. Echte normale onboarding-logboek

PROD is geïnstalleerd op een lege schijf van 32 GiB met één interne netwerkkaart. SSH via de bastion bevestigde Rocky Linux 10.2, beheer-IP 10.77.20.101/24, SELinux Enforcing en de PXE-voltooiingsmarkering. Het geheugen werd daarna van 4 naar 1 GiB verlaagd.

Bewijs Observatieresultaat
AWX Workflow 22, successful
Onboard Job 23, succesvol
NetBox-inventarisupdate 24, succesvol
Verify Job 26, succesvol
Git-commit 58bb87b9842c159b1986784062916c4d9eb97c00
NetBox-asset VM ID 1, fml-prod-app-01
IP-relatie VM Interface ID 1 → IPAddress ID 1 → primary_ip4 10.77.20.101/24
Verzamelstatus complete, collection_errors lege array
Zabbix hostid 10683, proxyid 1, templateid 10343
Daadwerkelijke verzameling system.uptime itemid 50799, state 0, geen fouten

De verificatietaak bevestigde ontvangst van actuele werkelijke uptimegegevens. Zowel registratie als werkende gegevensverzameling waren vereist om de test te laten slagen.

In NetBox zijn vCPU 1, 954MiB beschikbaar gastgeheugen, 32768MiB schijfruimte, Rocky Linux 10.2, virtualisatietype virtualbox, beheer-NIC enp0s3, de PROD-omgeving en de daadwerkelijke partitiestructuur opgeslagen. De waargenomen geheugenwaarde van de gast van 954MiB en de door VirtualBox toegewezen waarde van 1024MiB verschillen van elkaar.

In de NetBox-inventaris van AWX zijn ansible_host=10.77.20.101, ansible_user=labadmin, fml_environment=prod en fml_subnet=20 binnengekomen. Niet alleen de assetnamen zijn gesynchroniseerd, maar ook het beheer-IP en de omgevingsvariabelen die nodig zijn voor de berekening van het Bastion-pad.

Na PXE-installatie op een lege schijf voltooide DEV Workflow 30 met registratie 31, inventarisupdate 32 en verificatie 34. Monitoringhost 10684 gebruikte DEV Proxy 2, via een pad gescheiden van PROD.

STG wordt automatisch gestart bij detectie van voltooide installatie

Na het goedkeuren van de eerste SSH-identiteit van STG via de publieke sleutel en fingerprint van de VirtualBox serial console, is het installatiegeheugen verlaagd van 4GiB naar 1GiB. De installatievoltooiingscontroller heeft de goedkeuringssleutel, installatiemarkering, hostname en machine ID geverifieerd en de SCM- en bootstrap-inventaris gesynchroniseerd. Vervolgens is Job 38 gestart zonder handmatige Workflow-uitvoering.

STG-bewijs Resultaat
Workflow 38 Normale werking bevestigd
Onboard / inventory / Verify 39 / 40 / 42 allemaal succesvol
Git-commit 8877198864680095a1a8b5684d3382b9034237e9
NetBox VM 3 → Interface 3 → IPAddress 3, 10.77.40.101/24
Verzamelstatus voltooid, lege array collection_errors
Zabbix host 10685, proxy 3, uptime-item 51005
Verificatiegegevens Actuele werkelijke monitoringgegevens ontvangen
Controllerstatus Bijbehorende machine-ID en Workflow 38 opgeslagen als successful

Ook STG leverde actuele monitoringgegevens. AWX bevatte de drie hosts met hun beheer-IP’s en omgevingsvariabelen. De eerste SSH-identiteitsgoedkeuring bleef een beheerderscontrole; niet-goedgekeurde sleutels werden niet omzeild.

3. Gevonden en verholpen problemen tot aan het normale pad

Uitvoering Storingspunt Oorzaak en correctie
Workflow 7 / Job 8 Downloaden van Agent RPM-metagegevens Geen BaseOS/AppStream-pad in Minimal ISO, wat resulteerde in 404. Gewijzigd naar de daadwerkelijke Minimal-repository
Workflow 12 / Job 13 Vóór het uitvoeren van de lokale NetBox API-taak De privilege-escalatievariabele van de inventaris werd eveneens toegepast op delegate_to localhost, wat leidde tot sudo-aanroepen die niet aanwezig zijn in EE
Workflow 17 / Job 18 Dezelfde lokale taak ansible_become=false in taakvariabelen en het EE Python-pad expliciet opgegeven, rekening houdend met de invloed van bestaande inventory-variabelen
Workflow 22 / Jobs 23·26 Volledig proces Registratie van assets, IPAM en monitoring, bijwerken van inventaris, succesvolle verificatie van daadwerkelijke verzameling

Mislukte taken werden niet verwijderd. Ze zijn bewaard zodat de correctiecommit kan worden vergeleken met het resultaat van de volgende Job. Gevallen waarin het mislukte vóór registratie in NetBox/Zabbix worden niet verward met situaties waarin assets dubbel zijn aangemaakt.

4. Back-up en herstel in geïsoleerde omgeving

De NetBox-database is met pg_dump geback-upt en met pg_restore naar een aparte verificatiedatabase hersteld. Het asset fml-prod-app-01 en de koppeling met zijn primaire beheer-IP zijn gecontroleerd.

De SHA-256 van de back-up is 06914eb419d88edb97245ed435177b396309a625b65eb14b72ae9fb627667390. Er is een aparte verificatiedatabase gebruikt in plaats van de bestaande database te overschrijven. Dit resultaat betreft een test voor het herstellen van een logische NetBox-database en geldt niet als een disaster recovery-test waarbij alle VM’s, media, AWX en Git in één keer worden hersteld.

5. Test van storing in centrale knooppunt

Vlak voor de eerste test was de PostgreSQL leader ops02, was ops01 een sync standby en bedroeg de replicatielag 0. Zabbix had ops01 als active en ops02 als standby. De stroom van machine 1 werd geforceerd uitgeschakeld om stroomverlies van de VM te simuleren.

VIP 10.77.10.10 verplaatste naar machine 2. Tijdens de overgangsfase gaf de NetBox-backend echter 500 en de VIP 503 terug. Zabbix startte hierna actieve taken op machine 2 en ontving de verbindingen van de drie proxyservers. Deze test werd niet aangemerkt als een ‘succesvolle HA zonder onderbreking’.

Het eerste logbestand van het observatietool werd niet aangemaakt vanwege een pad dat niet overeenkwam met het SELinux-beleid. Zodoende wordt er in die test geen nauwkeurige RTO berekend. Nadat het logpad was verplaatst naar onder /var/log en de correcte registratie was geverifieerd, is de test herhaald.

Bij de eerste tests vertraagden herhaalde cacheverbindingspogingen het herstel van NetBox. Na controle van de configuratiecode kreeg de lokale Sentinel voorrang en werden verbindings- en herhaalpogingen begrensd. Daarna werd de storing opnieuw getest.

Stroomverlies op actieve machine 2 voor DB, Redis en Zabbix na correctie

Centrale node 2 werd geforceerd uitgeschakeld terwijl deze de actieve PostgreSQL-, Redis- en Zabbix-rollen droeg. Rolovername en dienstreacties op node 1 zijn bevestigd. Tijdens de overgang traden tijdelijke fouten op; dit geldt niet als onderbrekingsvrije failover.

Item Resultaat
PostgreSQL ops01 primary Normale werking bevestigd
NetBox query bestaande asset-API Normale werking bevestigd
Zabbix API-respons Normale werking bevestigd
AWX ping Normale werking bevestigd
Zabbix-waarde met verzameltijdstip na storing Normale werking bevestigd

Terwijl node 2 uit stond, is een testmarkering in NetBox geschreven, teruggelezen en teruggezet. Asset en beheer-IP bleven behouden, waarmee schrijven via de overgebleven database is bevestigd. Herstel van het AWX-statusantwoord bewijst geen continuïteit van lopende taken.

Na herstart keerde node 2 terug als synchrone PostgreSQL-standby en werd NetBox weer gezond. Beschikbaarheid van de dienst en herstel van reservecapaciteit zijn apart gecontroleerd.

Stroomuitval actieve machine 1 na wijziging VIP·DB·Zabbix

De omgekeerde richting is getest door node 1 uit te schakelen. Node 2 behield het gedeelde service-IP en de schrijvende databaserol; NetBox-opvragingen en nieuwe Zabbix-data kwamen terug. Assetidentiteit en beheer-IP bleven behouden.

AWX stond alleen op node 1 en was niet beschikbaar tijdens de uitval. Herstart van node 1 herstelde AWX, databasereplicatie en NetBox. Dit was herstel van de oorspronkelijke server, geen succesvolle AWX-HA.

Beide tests omvatten timeouts en HTTP 500/503 tijdens het omschakelingsinterval. Er wordt niet gesproken over ‘zonder onderbreking’. Cijfers van vergelijkbare tests voor en na verbeteringen mogen niet worden gebruikt om conclusies te trekken over de effectiviteit van prestatieverbeteringen op basis van een eenvoudige verhouding, aangezien de actieve database-locatie en de belasting verschilden.

6. Proxy-verbinding verbreken en vertraagde data opnieuw verzenden

Op de gateway is alleen monitoringtransport via TCP 10051 van PROD Proxy 10.77.20.10 naar het centrale netwerk geblokkeerd. SSH, lokale agentverzameling en DEV bleven werken. Centrale PROD-updates stopten terwijl DEV doorging.

Een alleen-lezencontrole van de PROD Proxy-database bevestigde opslag van nog niet centraal ontvangen data. Het totale aantal rijen gold niet als aantal onverzonden records, omdat reeds verzonden gegevens nog op opschoning kunnen wachten.

De tijdelijke blokkeerregel bleef ondanks de ingestelde vervaltijd bestaan. Deze is expliciet verwijderd en de verbinding is gecontroleerd. Vervolgtests controleren de werkelijke verwijdering in plaats van uitsluitend op de timer te vertrouwen.

Na herstel verschenen de opgeslagen gegevens centraal in de oorspronkelijke volgorde en met de oorspronkelijke verzamelintervallen. Actuele waarden werden weer bijgewerkt. Langdurige bewaring, schijfuitputting en uitval van de Proxy-VM blijven afzonderlijke tests.

7. Gegevensbescherming van assets en padverificatie

Op basis van de daadwerkelijke PROD-verzamelresultaten is dezelfde NetBox-registratie opnieuw uitgevoerd. VM-ID 1 en IPAddress ID 1 bleven behouden en dezelfde naam en hetzelfde adres bestonden elk slechts eenmaal. Het bijwerken van het verzameltijdstip en het aanmaken van dubbele assets werden van elkaar onderscheiden.

Geïnjecteerde voorwaarde / werkelijk pad Oordeel
Doorsturen van DEV-beheer-IP naar PROD-asset Weigering vóór API-wijziging, mutatie 0
Machine-ID doorgeven die afwijkt van bestaande asset Weigering vóór API-wijziging, mutatie 0
IP doorgeven dat in gebruik is voor een asset met een andere naam Weigering vóór aanmaken van nieuwe asset, mutatie 0
Expliciet mislukken van verzamelen van CPU, schijf en netwerk injecteren Bestaande velden voor CPU, partitie en product behouden, markeren als gedeeltelijk
Normaal verzamelresultaat opnieuw toepassen Status complete herstellen
Productproces in andere mount namespace Roept geen opzoekacties aan voor uitvoerbare hostversies of JAR-bestanden
Centraal → Directe SSH naar PROD Geweigerd
Centraal → Bastion-SSH voor elke omgeving Toegestaan
PROD → DEV SSH Geweigerd
PROD → Extern 1.1.1.1:443 Geweigerd
PROD → Lokale proxy / interne RPM-repository Toegestaan

Gedeeltelijke verzamelfouten zijn invoer gemaakt voor testdoeleinden en worden niet gepresenteerd als echte gevallen van schijfstoringen. Voorwaarden voor weigering worden eerst gecontroleerd en daarna pas gewijzigd, en situaties waarin slechts sommige API’s succesvol waren, leiden er niet toe dat succesvolle objecten onvoorwaardelijk worden verwijderd, maar maken heruitvoering mogelijk.

8. Installatie op doelen zonder internet en pakketverificatie

Het PXE-doel heeft slechts één interne netwerk-NIC en geen NAT- of bridge-NIC. Het besturingssysteem is verkregen uit de minimale installatieboom van Provision voor Rocky 10.2. Nadat de agent-RPM-cache van PROD was geleegd, werden slechts twee interne repositories ingeschakeld om zabbix-agent2 7.0.30 opnieuw te installeren. De werkelijke download van 6.4 MB, GPG-verificatie en actieve status van de service zijn geverifieerd.

NetBox HTTPS die interne repo-metagegevens en CA-verificatie gebruikt op hetzelfde doel waar externe verbindingen zijn geweigerd, retourneerde 200. Een volledige herinstallatie van het centrale netwerk in een nieuw geïsoleerd netwerk valt buiten de scope. Wat deze keer is geverifieerd, is de OS-installatie, agentimplementatie en interne API-integratie voor doelen zonder internet.

9. Verificatie van architectuurscherm

Scherm / functie Resultaat
1920×1080 volledig scherm Centrale service en twaalf nodes in drie omgevingen, tabbladen, beschrijvingen en procesweergave onderaan worden binnen het scherm weergegeven
Schermaanpassing schaal graph-scroll client 1590×740, scroll 1590×740. Geen afsnijding bij standaard schaal
Hoofdtekstbreedte 784 px Volledige structuur weergegeven, alleen het beschrijvingspaneel scrolt onafhankelijk
Mobiel 390×844 Geen horizontale tekstoverflow, kleine componenten worden onder het beschrijvingsgebied geplaatst
Totaal/Automatisering/Monitoring/Storing Controleer de tabbladen en NetBox-IPAM-stappen, en de beschrijving van Witness/NFS-storingen
Inzoomen en herstellen 125% zoom, volledige weergave 100%, controleer of volledig scherm wordt geopend en gesloten
Browserfout Geen consolefouten verzameld

De storingsstatus en het afspelen van het proces in de architectuur zijn uitsluitend ter illustratie. Het is geen operationeel dashboard waarmee opdrachten naar servers worden verzonden of de werkelijke status wordt weergegeven.

10. Verificatiechecklist en grenzen

Controleer item Resultaat en grondslag
Werkelijke installatie van Rocky / SELinux Enforcing Controleer werkelijke gasten voor PROD, DEV en STG
NetBox-gedetailleerde velden, IPAM en primair IP Controleer de relatie tussen werkelijke assets, interfaces en IP-adressen
AWX-inventaris op basis van NetBox Controleer de bronupdate van de workflow en verbindingsvariabelen
Werkelijke gegevens na registratie via Zabbix API Controleer uptime en lastclock voor PROD, DEV en STG
Voltooiing van de installatie gedetecteerd → AWX automatisch uitgevoerd Na verificatie van de goedkeuringsidentiteit is STG Workflow 38 automatisch uitgevoerd en geslaagd
Assets opnieuw uitvoeren, adresconflicten, identificatiewijzigingen Geen duplicaten, invoer van conflicten geweigerd voordat deze wordt gewijzigd
Behoud van bestaande waarden bij gedeeltelijke verzamelingsfouten Hersteld naar normale observatie nadat de injectietest is doorstaan
Stroomverlies op elk van de twee central nodes afzonderlijk DB-promotie, API hervat, nieuwe bewakingsgegevens, schrijven bevestigd
Herstel van storingsknooppunt PostgreSQL sync standby, vertraging 0, app gezond
Verbreking van proxy-transmissie SQLite-opslag en achterstandsaanvulling van centrale geschiedenis bevestigd
Omgevingscommunicatiebeperkingen / Bastion-pad Verbinding per toegestaan en geweigerd pad gecontroleerd
Interne RPM-download / ondertekening Werkelijke opnieuw downloaden met geleegde cache en herinstallatie geslaagd
Logische DB-back-up en -herstel van NetBox Verificatie van dezelfde asset- en IP-referentie in een afzonderlijke DB
Volledig scherm en mobiele architectuur FHD 1920×1080, hoofdtekst 784px, mobiel 390px gecontroleerd
Fysieke server UEFI/BMC/RAID Niet uitgevoerd
Volledige herbouw van een gloednieuw centraal geïsoleerd netwerk Procedure opgesteld, volledige herinstallatietest niet uitgevoerd
Interne storingen in NFS, quorum, Gateway en Proxy VM Gevolgenanalyse, injectie van de betreffende storing niet uitgevoerd
Rampenherstel, belasting en langdurige duurzaamheidstests van het hele systeem Niet uitgevoerd

UEFI PXE van echte fysieke servers, BMC- en RAID-automatisering, storingen tussen twee fysieke hosts, totale storingsopslag en detectie van alle commerciële DB/WAS-productversies worden niet geacht te zijn geverifieerd door deze VM-oefening. De implementatie van elke functie en het werkelijke testbereik worden van elkaar gescheiden.

Er wordt tevens onderscheid gemaakt tussen online initiële installatie en installatie/agentdistributie voor doelsystemen zonder internet. Tests waarbij de volledige centrale omgeving vanaf nul opnieuw wordt geïnstalleerd in een nieuw geïsoleerd netwerk, moeten ook de afhankelijkheidsverificatie van het importpakket omvatten. Dit wordt niet vervangen door het resultaat van het verbreken van alleen de externe NIC van een bestaande service.

De items die in deze oefening zijn doorstaan en de volgende verificatietaken staan in dezelfde tabel vermeld. De resultaten van één persoonlijke pc mogen niet worden voorgesteld als een operationele SLA of een garantie voor no data loss bij alle storingen.

Verder lezen en configuratiemateriaal

Originele portfolio · Gids voor het bouwen van online en geïsoleerde netwerken · Storingsscenario’s en verificatielogboeken

ZIP met oefenconfiguratie en automatiseringsbronnen · ZIP SHA-256

De openbare ZIP bevat configuratiesjablonen en automatiseringsbronnen. OS-, RPM-, containerimages en inloggegevens zijn niet inbegrepen. Configureer met uw eigen adres, openbare CA, geautoriseerde SSH-sleutel en geheime opslagplaats voordat u toepast.