De gezondheid van ons platform waarop jouw websites en e-mails staan, houden we continu in de gaten. Dit doen we onder andere met Zabbix. Dit is zeer waardevolle opensourcesoftware voor het monitoren van servers en netwerken. De afgelopen tijd zijn we bezig geweest om dit systeem van een flinke update te voorzien. Graag vertel ik je daarom wat meer over dit proces en het belang van monitoring!
Waarom monitoring
24/7 monitoring is voor ons essentieel. We moeten altijd weten wat de status is van onze servers waarop je website en e-mail draait. Hoe beter we kunnen anticiperen, hoe betrouwbaarder en stabieler onze dienstverlening voor jou wordt. Mogelijke problemen willen we ver van tevoren zien aankomen, zodat het niet escaleert. Zabbix stelt ons hiertoe in staat en controleert samen – alle servers bij elkaar opgeteld – continu op 1.236 punten per seconde. Gaat iets niet zoals het hoort, dan krijgt Systeembeheer direct een notificatie.
Al deze controles vergen rekenkracht. Ons monitoringssysteem draait daarom op een eigen server. Nu wilden we dit systeem verplaatsen naar een nog krachtigere omgeving, zodat checks sneller kunnen worden gedaan, verwerkt en opgeslagen. Nu doe je zo’n overstap je niet zomaar even. Monitoring is immers een cruciaal onderdeel van onze dienstverlening. Dat moet zorgvuldig gebeuren en met een goed uitgedacht plan. Zeker wanneer je best een sprong maakt in softwareversies en de omgeving waarop het draait.
Voorbereiden op een update
We gingen met elkaar om de tekentafel en lieten de hersens kraken. Hoe stappen we over naar een nieuwe server en tegelijk ook een nieuwe versie van Zabbix? Met behoud van data en zonder dat iemand er ook maar een seconde hinder van ondervindt. Het globale plan werd al snel duidelijk. Nieuwe server optuigen, alles overzetten en veelvuldig testen. Klinkt op papier goed allemaal, maar het moet natuurlijk nog wel even gebeuren… Aan het werk dus!
Kom ook werken bij Antagonist
Op zoek naar een leuke, uitdagende baan en benieuwd naar wat Antagonist je kan bieden? Neem eens een kijkje bij onze vacatures.
Zabbix-server opzetten met Puppet
De oude Zabbix-server was met de hand geïnstalleerd. Om onszelf het gemakkelijker te maken, besloten we om de nieuwe server te gaan beheren met Puppet. Dit is een softwarepakket om serverinfrastructuren mee te op te zetten en te configureren. Zo kun je de configuratie van servers centraliseren en automatiseren. Als eerste stap maakten we daarom een Puppet-manifest. Daarin beschreven we de configuratie van onze nieuwe Zabbix-server.
Op maat gemaakte scripts omschrijven
In onze monitoring zitten een aantal op maat gemaakte controles. Die zijn volledig toegespitst op de situatie bij Antagonist. Deze checks worden uitgevoerd door middel van scripts die we zelf hebben geschreven in Python en Bash. Ga je aan de slag met een nieuwe server, dan wil je uiteraard de meeste recente softwareversies gebruiken. Dit resulteerde erin dat we onze scripts moesten omschrijven.
Vooral de Python-scripts vereisten aandacht. Op de oude server werd Python 2 gebruikt en op de nieuwe Python 3. Tussen die versies zitten belangrijke verschillen in syntax. Code die je met inachtneming van de syntax voor Python 2 hebt geschreven, werkt veelal niet in Python 3. Voor het omschrijven konden we bij eenvoudigere scripts een hiervoor bestaande tool gebruiken. Bij de complexere scripts ging dat helaas niet op. Zo’n tool doet weliswaar een goede poging, maar dat is niet altijd genoeg. We ontkwamen er dus niet aan om een deel van de scripts met de hand om te schrijven.
De database-export
Bij een migratie als deze wil je historische data graag meenemen. We maakten daarom een zogeheten dump van de database op de oude server. In feite is dat een bestand waarin alle informatie van de database staat. Met behulp van Postgres konden we dit exportbestand vervolgens importeren op de nieuwe server. Zabbix detecteert daarbij automatisch wanneer er in een configuratie gebruik wordt gemaakt van een oude database. De database wordt dan vanzelf geconverteerd en geschikt gemaakt voor de nieuwste Zabbix-versie.
Monitoring testen
Goed, we hadden nu een nieuwe server en Puppet-manifest. Ook waren alle gegevens overgezet en hadden we de scripts netjes omgeschreven. Nu werd het tijd om te testen of alle onderdelen van de monitoring werkten – niet geheel onbelangrijk. We vergeleken daarom de oude server met de nieuwe. Zagen we verschillen, dan losten we dat op. Bijvoorbeeld door een aanpassing te doen aan de serverconfiguratie of een script. Zo’n testfase duurt al gauw een aantal weken. Voordat je definitief overstapt, wil je immers absoluut zeker weten dat je monitoring volledig accuraat is. Net als een piloot die niet opstijgt, voordat alle instrumenten zijn gecontroleerd.
De sprong maken
Op dit punt hadden we de nieuwe Zabbix-server in gebruik genomen. Deze draaide naast de oude server en werd dus gecontroleerd op afwijkingen. Nu kwam het moment om de sprong maken en de oude server uit te schakelen. Dat blijft altijd een beetje spannend. Na jaren trouwe dienst neem je afscheid en stap je over op wat nieuws. Gelukkig ging dit dankzij het zorgvuldig testen vooraf zonder noemenswaardige problemen. Hiermee komen we aan het einde van deze migratie en ook dit blog. Hopelijk heb je zo inzicht gekregen in dit proces en wat je bezighoudt als systeembeheerder bij Antagonist!
P.S. Blijf op de hoogte en volg ons via Facebook, X, Instagram, e-mail en RSS. Heb je vragen, tips of opmerkingen? Laat het achter als reactie. Vond je het artikel nuttig? Deel het dan met anderen!