๐ Monitoring & logging
Een stabiele Minecraft-infrastructuur begint niet alleen met een goede configuratie, maar ook met zichtbaarheid.
Tulpencraft gebruikt daarom Zabbix als centraal platform voor infrastructuurmonitoring.
Zabbix wordt gebruikt om de technische infrastructuur te bewaken en problemen zo vroeg mogelijk te signaleren.
๐ฅ๏ธ Zabbix
Zabbix is het centrale monitoringplatform binnen de infrastructuur.
De monitoring richt zich voornamelijk op:
- ๐ฅ๏ธ servers en VM's;
- โ๏ธ CPU-belasting;
- ๐ง RAM-gebruik;
- ๐พ storagegebruik;
- ๐ filesystemgebruik;
- ๐ netwerkinterfaces;
- ๐ netwerkverkeer;
- ๐ beschikbaarheid van systemen;
- ๐งฉ systeemdiensten;
- ๐๏ธ databases;
- ๐ webservices;
- ๐จ storingen en afwijkingen.
Zabbix bestaat uit verschillende componenten, waaronder een centrale server, database, webinterface en agents. De Zabbix Server vormt het centrale punt voor verzamelde monitoringgegevens.
๐๏ธ Monitoringarchitectuur
De monitoring staat los van de Minecraft-functionaliteit zelf.
Conceptueel:
๐ Zabbix
โ
โโโโโโโโโโโผโโโโโโโโโโ
โ โ โ
โผ โผ โผ
๐ฅ๏ธ Proxy ๐ฎ Survival ๐ฏ Events
โ โ โ
โโโโโโโโโโโผโโโโโโโโโโ
โ
โผ
๐ก Monitoring
Hierdoor kunnen problemen met de onderliggende infrastructuur worden vastgesteld zonder afhankelijk te zijn van de Minecraft-client.
๐ฅ๏ธ Monitoring van Linux
De Tulpencraft-servers draaien op Rocky Linux 10.
Linux-systemen kunnen met de Zabbix Agent worden gemonitord.
Daarmee kunnen onder andere systeemwaarden worden verzameld zoals:
- CPU;
- geheugen;
- swap;
- filesystemgebruik;
- netwerk;
- processen;
- systeemdiensten.
Zabbix levert hiervoor standaard monitoringmogelijkheden en templates.
๐พ Storage monitoring
Storage is een belangrijk onderdeel van de monitoring.
Er wordt onder andere gekeken naar:
- totale opslag;
- gebruikte opslag;
- vrije opslag;
- filesystemgebruik;
- inodegebruik;
- mogelijke groeitrends.
Dit is belangrijk omdat een volledig filesystem uiteindelijk kan leiden tot problemen met Minecraft, databases en systeemdiensten.
Zie ook:
โก CPU en RAM
Ook CPU- en geheugenbelasting worden gemonitord.
Dit is vooral relevant omdat meerdere VM's op dezelfde fysieke Proxmox-host draaien.
Een probleem kan bijvoorbeeld ontstaan wanneer:
๐ฎ Minecraft
โ
โผ
๐ CPU/RAM gebruik
โ
โผ
โ ๏ธ Resource pressure
โ
โผ
๐ Slechtere performance
Monitoring maakt het mogelijk om dergelijke trends te herkennen voordat een systeem daadwerkelijk onbruikbaar wordt.
๐ Netwerkmonitoring
Netwerkinterfaces en netwerkverkeer kunnen eveneens worden gemonitord.
Hierbij kan worden gekeken naar bijvoorbeeld:
- inkomend verkeer;
- uitgaand verkeer;
- interfacebelasting;
- packet errors;
- beschikbaarheid;
- netwerkcapaciteit.
Zabbix ondersteunt hiervoor zowel agent-gebaseerde monitoring als netwerkmonitoring via onder andere SNMP.
๐ฅ๏ธ Proxmox
De onderliggende virtualisatieomgeving is een belangrijk onderdeel van de infrastructuur.
De huidige Tulpencraft-omgeving draait op:
Proxmox VE โโโ hv002
De fysieke host hv002 wordt gebruikt voor meerdere VM's.
Daarom is monitoring van de onderliggende infrastructuur belangrijk naast monitoring van de individuele VM's.
Waar mogelijk worden daarom zowel:
- fysieke infrastructuur;
- virtualisatie;
- VM's;
- operating systems;
- applicaties;
in de monitoring meegenomen.
๐ฎ Minecraft
Zabbix is in eerste instantie gericht op de infrastructuurlaag.
Minecraft zelf heeft daarnaast eigen logging en monitoringmogelijkheden.
Belangrijke signalen zijn bijvoorbeeld:
- server beschikbaarheid;
- Java-processen;
- CPU-gebruik;
- RAM-gebruik;
- storage;
- serverlogs;
- crashes;
- restartgedrag.
Meer specifieke Minecraft-monitoring kan in de toekomst worden uitgebreid.
๐ Diensten
Belangrijke Linux-services kunnen worden gecontroleerd.
Bijvoorbeeld:
systemctl status minecraft-lobby
Of:
systemctl status minecraft-survival
Zabbix kan daarnaast systeemdiensten monitoren en afwijkingen signaleren.
Dit maakt het mogelijk om onderscheid te maken tussen:
๐ฅ๏ธ VM bereikbaar
โ
โโโ โ
Ja
โ
โโโ โ Nee
รฉn
โ๏ธ Minecraft-service
โ
โโโ โ
Actief
โ
โโโ โ Gestopt
Een server kan immers technisch bereikbaar zijn terwijl de Minecraft-service niet draait.
๐๏ธ Database monitoring
De huidige database draait intern op:
mc-proxy001
Databasebeschikbaarheid en prestaties kunnen onderdeel worden van de monitoring.
Zabbix beschikt hiervoor onder andere over mogelijkheden voor MySQL-monitoring via Zabbix Agent 2.
Hierbij kan bijvoorbeeld worden gekeken naar:
- databasebeschikbaarheid;
- verbindingen;
- queries;
- performance;
- databasegrootte;
- resourcegebruik.
๐ Webmonitoring
Naast servermonitoring kunnen ook webservices worden gecontroleerd.
Denk bijvoorbeeld aan:
tulpencraft.nl;- wiki;
- toekomstige webinterfaces;
- API's;
- andere netwerkdiensten.
Zabbix ondersteunt HTTP- en browsergebaseerde webmonitoring.
Hiermee kan bijvoorbeeld worden gecontroleerd of een website daadwerkelijk bereikbaar is in plaats van alleen te kijken of de onderliggende server reageert.
๐จ Alerts
Monitoring heeft pas echt waarde wanneer problemen ook daadwerkelijk worden gesignaleerd.
Zabbix werkt hiervoor met triggers en problemen.
Voorbeelden:
โ ๏ธ Filesystem bijna vol โ ๏ธ Hoge CPU-belasting โ ๏ธ Hoog RAM-gebruik โ ๏ธ Host niet bereikbaar โ ๏ธ Service gestopt โ ๏ธ Database niet bereikbaar โ ๏ธ Netwerkprobleem โ ๏ธ Webservice niet bereikbaar
Afhankelijk van de ernst kan een probleem verschillende prioriteiten krijgen.
๐ Trends
Niet ieder probleem ontstaat plotseling.
Daarom worden historische monitoringgegevens gebruikt om trends te herkennen.
Bijvoorbeeld:
Storage
100 GB โค
90 GB โค โฑ
80 GB โค โฑโโโ
70 GB โค โฑโโโ
60 GB โค โฑโโโ
50 GB โคโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
tijd โ
Wanneer blijkt dat een filesystem structureel groeit, kan actie worden ondernomen voordat de beschikbare ruimte daadwerkelijk opraakt.
๐ Logging
Naast Zabbix wordt gebruikgemaakt van de normale Linux- en applicatielogging.
Belangrijke logbronnen zijn onder andere:
journald;- Minecraft logs;
- pluginlogs;
- Java logs;
- SELinux/audit logs;
- firewall logs;
- database logs.
Voor systemd-services kunnen bijvoorbeeld logs worden bekeken met:
journalctl -u minecraft-lobby
Of:
journalctl -u minecraft-survival
Zie ook:
๐ Incidentanalyse
Monitoring en logging vullen elkaar aan.
Zabbix geeft voornamelijk antwoord op:
Wanneer en waar ging iets mis?
Logs helpen vervolgens bij:
Waarom ging het mis?
Bij een incident kan bijvoorbeeld deze volgorde worden gebruikt:
๐จ Zabbix alert
โ
โผ
๐ Monitoringdata bekijken
โ
โผ
๐ Tijdstip bepalen
โ
โผ
๐ Logs controleren
โ
โผ
๐ Oorzaak bepalen
โ
โผ
๐ ๏ธ Probleem oplossen
โ
โผ
๐ Controleren of systeem hersteld is
Dit maakt monitoring ook belangrijk voor reconstructie van incidenten.
๐ Tijd en timestamps
Correcte tijd is belangrijk voor monitoring en incidentanalyse.
Wanneer verschillende systemen verschillende tijden gebruiken, wordt correlatie van gebeurtenissen moeilijker.
Daarom is een consistente tijdsynchronisatie belangrijk.
De technische documentatie hierover staat onder:
๐ Monitoring en security
Monitoring heeft ook een belangrijke beveiligingsfunctie.
Afwijkingen kunnen bijvoorbeeld wijzen op:
- ongeautoriseerde toegang;
- brute-forcepogingen;
- onverwachte processen;
- ongebruikelijke netwerkbelasting;
- gewijzigde services;
- storageproblemen;
- onverwachte systeemwijzigingen.
Monitoring vervangt geen securitymaatregelen, maar vormt een aanvullende detectielaag.
Zie ook:
๐ Monitoringlagen
Binnen Tulpencraft wordt monitoring bij voorkeur in meerdere lagen toegepast.
| Laag | Voorbeelden |
|---|---|
| ๐ฅ๏ธ Hardware | CPU, RAM, storage, netwerk |
| ๐งฑ Virtualisatie | Proxmox, VM-status |
| ๐ง Operating system | Rocky Linux, services, filesystem |
| โ๏ธ Applicatie | Velocity, Minecraft, database |
| ๐ Netwerk | bereikbaarheid, verkeer, interfaces |
| ๐ Web | HTTP/HTTPS, certificaten, beschikbaarheid |
| ๐จ Incidenten | triggers, alerts en logging |
Hierdoor wordt voorkomen dat uitsluitend naar รฉรฉn onderdeel van de infrastructuur wordt gekeken.
๐๏ธ Toekomst
Naarmate Tulpencraft groeit kan de monitoring verder worden uitgebreid.
Mogelijke uitbreidingen zijn:
- uitgebreide Minecraft-metrics;
- tick-time monitoring;
- TPS-monitoring;
- JVM-monitoring;
- player-count monitoring;
- netwerkmonitoring;
- database monitoring;
- webmonitoring;
- automatische incidentmeldingen;
- dashboards voor verschillende beheerders;
- monitoring van meerdere Proxmox-nodes.
De monitoringarchitectuur moet daarbij meegroeien met de serverarchitectuur.
๐ Huidige situatie
| Onderdeel | Huidige situatie |
|---|---|
| ๐ Monitoringplatform | Zabbix |
| ๐ฅ๏ธ Virtualisatie | Proxmox VE |
| ๐ฅ๏ธ Huidige host | hv002 |
| ๐ง Operating system | Rocky Linux 10 |
| ๐ฎ Minecraft | Paper |
| ๐ Proxy | Velocity |
| ๐๏ธ Database | Intern op mc-proxy001 |
| ๐ Systeemlogging | systemd/journald |
| ๐ Security logging | SELinux/audit |
| ๐ Historische data | Zabbix |
๐ท Uitgangspunten
Binnen Tulpencraft gelden voor monitoring de volgende uitgangspunten:
- ๐ Zabbix is het centrale infrastructuurmonitoringplatform.
- ๐ฅ๏ธ Kritieke infrastructuur wordt gemonitord.
- ๐จ Belangrijke problemen moeten als alert zichtbaar worden.
- ๐ Historische data wordt gebruikt voor trendanalyse.
- ๐ Monitoring en logging vullen elkaar aan.
- ๐ Tijdstempels moeten onderling betrouwbaar zijn.
- ๐ Monitoring ondersteunt ook security en incidentanalyse.
- ๐ Monitoring wordt uitgebreid wanneer de infrastructuur groeit.
๐ Gerelateerde documentatie
๐ Externe documentatie
De officiรซle Zabbix-documentatie beschrijft onder andere Linux-monitoring, MySQL-monitoring, netwerkmonitoring, VMware-monitoring en webmonitoring.