Inhoud

๐Ÿ“Š 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:

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:

Zabbix levert hiervoor standaard monitoringmogelijkheden en templates.


๐Ÿ’พ Storage monitoring

Storage is een belangrijk onderdeel van de monitoring.

Er wordt onder andere gekeken naar:

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:

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:

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:

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:


๐ŸŒ Webmonitoring

Naast servermonitoring kunnen ook webservices worden gecontroleerd.

Denk bijvoorbeeld aan:

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.


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:

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:

Monitoring vervangt geen securitymaatregelen, maar vormt een aanvullende detectielaag.

Zie ook:


๐Ÿ“Š Monitoringlagen

Binnen Tulpencraft wordt monitoring bij voorkeur in meerdere lagen toegepast.

LaagVoorbeelden
๐Ÿ–ฅ๏ธ HardwareCPU, RAM, storage, netwerk
๐Ÿงฑ VirtualisatieProxmox, VM-status
๐Ÿง Operating systemRocky Linux, services, filesystem
โš™๏ธ ApplicatieVelocity, Minecraft, database
๐ŸŒ Netwerkbereikbaarheid, verkeer, interfaces
๐ŸŒ WebHTTP/HTTPS, certificaten, beschikbaarheid
๐Ÿšจ Incidententriggers, 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:

De monitoringarchitectuur moet daarbij meegroeien met de serverarchitectuur.


๐Ÿ“Œ Huidige situatie

OnderdeelHuidige situatie
๐Ÿ“Š MonitoringplatformZabbix
๐Ÿ–ฅ๏ธ VirtualisatieProxmox VE
๐Ÿ–ฅ๏ธ Huidige hosthv002
๐Ÿง Operating systemRocky Linux 10
๐ŸŽฎ MinecraftPaper
๐Ÿš€ ProxyVelocity
๐Ÿ—„๏ธ DatabaseIntern op mc-proxy001
๐Ÿ“‹ Systeemloggingsystemd/journald
๐Ÿ” Security loggingSELinux/audit
๐Ÿ“ˆ Historische dataZabbix

๐ŸŒท Uitgangspunten

Binnen Tulpencraft gelden voor monitoring de volgende uitgangspunten:

  1. ๐Ÿ“Š Zabbix is het centrale infrastructuurmonitoringplatform.
  2. ๐Ÿ–ฅ๏ธ Kritieke infrastructuur wordt gemonitord.
  3. ๐Ÿšจ Belangrijke problemen moeten als alert zichtbaar worden.
  4. ๐Ÿ“ˆ Historische data wordt gebruikt voor trendanalyse.
  5. ๐Ÿ“‹ Monitoring en logging vullen elkaar aan.
  6. ๐Ÿ• Tijdstempels moeten onderling betrouwbaar zijn.
  7. ๐Ÿ” Monitoring ondersteunt ook security en incidentanalyse.
  8. ๐Ÿ“ˆ 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.