# ๐Ÿ“Š 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: ```text ๐Ÿ“Š 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: * [[technische-infrastructuur:storage|Storage]] --- ## โšก 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: ```text ๐ŸŽฎ 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: ```text 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: ```bash systemctl status minecraft-lobby ``` Of: ```bash systemctl status minecraft-survival ``` Zabbix kan daarnaast systeemdiensten monitoren en afwijkingen signaleren. Dit maakt het mogelijk om onderscheid te maken tussen: ```text ๐Ÿ–ฅ๏ธ 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: ```text 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: ```text โš ๏ธ 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: ```text 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: ```bash journalctl -u minecraft-lobby ``` Of: ```bash journalctl -u minecraft-survival ``` Zie ook: * [[technische-infrastructuur:systemd|systemd]] * [[technische-infrastructuur:selinux|SELinux]] --- ## ๐Ÿ”Ž 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: ```text ๐Ÿšจ 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: * [[technische-infrastructuur:os-installatie|OS-installatie]] * [[technische-infrastructuur:server-hardening|Server hardening]] --- ## ๐Ÿ” 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: * [[technische-infrastructuur:server-hardening|Server hardening]] * [[technische-infrastructuur:firewall|Firewall]] * [[technische-infrastructuur:selinux|SELinux]] --- ## ๐Ÿ“Š 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: 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 * [[technische-infrastructuur:overzicht|Technische infrastructuur]] * [[technische-infrastructuur:os-installatie|OS-installatie]] * [[technische-infrastructuur:rocky-linux-10|Rocky Linux 10]] * [[technische-infrastructuur:server-hardening|Server hardening]] * [[technische-infrastructuur:firewall|Firewall]] * [[technische-infrastructuur:selinux|SELinux]] * [[technische-infrastructuur:systemd|systemd]] * [[technische-infrastructuur:storage|Storage]] * [[technische-infrastructuur:backups|Backups]] * [[serverinfrastructuur:overzicht|Serverinfrastructuur]] --- ## ๐Ÿ“– Externe documentatie De officiรซle Zabbix-documentatie beschrijft onder andere Linux-monitoring, MySQL-monitoring, netwerkmonitoring, VMware-monitoring en webmonitoring. * [Zabbix documentatie](https://www.zabbix.com/documentation/current/en/?utm_source=chatgpt.com) * [Zabbix โ€“ Linux monitoring](https://www.zabbix.com/documentation/current/en/manual/quickstart/monitor_linux?utm_source=chatgpt.com)