Server monitoring: Grafana, logs en alerts — grip op je infrastructuur
Je server draait, je applicatie werkt — en dan is het stil. Tot het moment dat een klant je belt omdat de site al twintig minuten plat ligt. Herkenbaar? Server monitoring is het verschil tussen reageren op problemen en ze voorkomen. In dit artikel leer je hoe je een solide monitoring-stack opzet met Grafana, hoe je logs effectief beheert en hoe je alerts configureert die écht nuttig zijn — zonder dat je mailbox verzuipt in false positives.
We richten ons op praktische implementatie. Geen theorie voor de bühne, maar concrete stappen die je vandaag nog kunt toepassen op je VPS, dedicated server of on-premises infrastructuur.
Waarom server monitoring geen optie is, maar een vereiste
Een server zonder monitoring is als rijden zonder dashboard. Je rijdt misschien prima, maar je ziet pas dat de brandstof op is als de motor stopt. Server monitoring geeft je inzicht in CPU-gebruik, geheugen, schijfruimte, netwerkverkeer en applicatiegedrag — real-time en historisch.
De meest voorkomende problemen die monitoring aan het licht brengt:
- Memory leaks die langzaam maar zeker je server verstikken
- Schijven die vollopen door logs of backups die nergens naartoe gaan
- CPU-pieken door runaway processen of plotseling toegenomen traffic
- Gefaalde services die zichzelf herstarten zonder dat je het merkt
- Netwerkproblemen zoals packet loss of latency die applicaties traag maken
Met goede server monitoring pak je deze problemen aan voordat gebruikers er last van hebben. Dat is de belofte — en die is volledig waargemaakt te maken met de juiste toolstack.
De monitoring-stack: Prometheus, Grafana en exporters
De de facto standaard voor open-source server monitoring combineert Prometheus als metrics-collector met Grafana als visualisatielaag. Prometheus scrapt metrics van je servers en applicaties via zogenoemde exporters. Grafana tovert die ruwe data om naar begrijpelijke dashboards en beheert je alerting-regels.
Stap 1: Prometheus en Node Exporter installeren
De node_exporter is je eerste aanspreekpunt voor systeemmetrics. Installeer hem op elke server die je wilt monitoren:
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.1/node_exporter-1.8.1.linux-amd64.tar.gz
tar xvfz node_exporter-1.8.1.linux-amd64.tar.gz
sudo mv node_exporter-1.8.1.linux-amd64/node_exporter /usr/local/bin/
sudo useradd -rs /bin/false node_exporter
Maak vervolgens een systemd service aan zodat de exporter automatisch opstart:
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
Na systemctl enable --now node_exporter zijn je systeemmetrics beschikbaar op poort 9100. Prometheus haalt ze daar op volgens het interval dat je configureert — standaard elke 15 seconden.
Stap 2: Grafana installeren en koppelen
Grafana installeer je het eenvoudigst via de officiële apt-repository:
sudo apt-get install -y apt-transport-https software-properties-common
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt-get update && sudo apt-get install grafana
sudo systemctl enable --now grafana-server
Grafana draait nu op poort 3000. Log in met admin/admin en wijzig direct het wachtwoord. Voeg Prometheus toe als datasource via Configuration → Data Sources → Add data source, vul de URL in van je Prometheus-instantie en klik op Save & Test.
Voor een complete startset van dashboards importeer je dashboard ID 1860 — de Node Exporter Full dashboard. Dit geeft je in één klap overzicht van CPU, RAM, disk I/O, netwerk en meer, compleet opgemaakt en klaar voor gebruik.
Logs centraliseren: van chaos naar inzicht
Metrics vertellen je wat er gebeurt; logs vertellen je waarom. Een goede server monitoring-strategie omvat altijd beide. Het probleem met logs is dat ze verspreid zitten: /var/log/syslog, applicatielogs, Nginx-logs, Docker container-logs — allemaal op verschillende plekken in verschillende formaten.
De oplossing is log-aggregatie. De meest gebruikte stack hiervoor binnen het Grafana-ecosysteem is Loki in combinatie met Promtail als log-shipper.
Loki en Promtail opzetten
Loki sla je logs op in een geoptimaliseerd formaat dat je direct kunt bevragen vanuit Grafana. Promtail leest je logbestanden en stuurt ze door naar Loki. Een minimale Promtail-configuratie voor Nginx-logs ziet er zo uit:
scrape_configs:
- job_name: nginx
static_configs:
- targets: [localhost]
labels:
job: nginx
__path__: /var/log/nginx/*.log
Eenmaal actief voeg je Loki toe als tweede datasource in Grafana. Daarna kun je in het Explore-scherm direct queries uitvoeren op je logs met LogQL — de querytaal van Loki die sterk lijkt op PromQL.
Een praktische query om alle Nginx 500-errors te vinden:
{job="nginx"} |= "HTTP/1.1\" 5"
Combineer dit met een Prometheus-metric die het aantal requests bijhoudt en je hebt in één dashboard zowel het kwantitatieve beeld (hoeveel errors) als het kwalitatieve beeld (welke requests falen en waarom).
Alerts configureren die je team wél serieus neemt
Server monitoring is pas effectief als je ook tijdig gewaarschuwd wordt. Grafana heeft een ingebouwde alerting-engine waarmee je regels kunt definiëren op basis van zowel Prometheus-metrics als Loki-logs. Het grote gevaar bij alerting is alert fatigue: te veel meldingen die te weinig betekenen, waardoor mensen ze structureel negeren — en dan mis je de melding die er écht toe doet.
Basisregels voor effectieve alerts
- Alert op symptomen, niet op oorzaken. "Website reageert niet" is relevanter dan "CPU staat op 95%". CPU-pieken kunnen legitiem zijn; een onbereikbare site is altijd een probleem.
- Gebruik drempelwaarden met marge. Stel een alert in op geheugengebruik boven 85% gedurende minimaal 5 minuten, niet bij een korte piek van 90%.
- Onderscheid severity-niveaus. Gebruik
warningvoor situaties die aandacht vragen encriticalvoor situaties die directe actie vereisen. Stuur ze via verschillende kanalen — Slack voor warnings, PagerDuty of SMS voor critical. - Test je alerts actief. Een alert die je nog nooit hebt zien afgaan, werkt waarschijnlijk niet.
Een praktische Grafana Alert Rule aanmaken
Ga in Grafana naar Alerting → Alert Rules → New alert rule. Kies je Prometheus-datasource en voer als query in:
(node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) * 100 < 15
Dit triggert een alert wanneer minder dan 15% schijfruimte beschikbaar is op de root-partitie. Stel de evaluatie-interval in op 1m en de pending period op 5m — zo voorkom je dat een korte anomalie direct een alarm veroorzaakt. Koppel een contact point aan de regel, configureer je Slack webhook of e-mailadres, en je eerste serieuze alert staat live.
Aanvullende tools: Netdata en Glances voor real-time inzicht
Naast de Prometheus/Grafana-stack zijn er twee tools die het vermelden waard zijn voor specifieke use cases.
Netdata biedt real-time server monitoring met een verbluffend laag installatiegewicht. Met één commando heb je een volledig dashboard:
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh
Netdata is ideaal voor snelle diagnostiek en kleinere omgevingen. Het nadeel is dat historische data standaard beperkt is — voor langetermijntrends blijft Prometheus/Grafana de betere keuze.
Glances is een command-line tool die je een direct overzicht geeft van alle systeemresources in één scherm. Start je hem op met glances -w, dan draait hij als webserver en kun je hem ook via de browser benaderen. Ideaal voor de situatie waarbij je snel iets wil checken zonder een volledig dashboard te openen.
Conclusie: server monitoring als fundament, niet als bijzaak
Effectieve server monitoring bouw je in lagen. Grafana en Prometheus vormen het fundament voor metrics en alerts. Loki en Promtail geven je grip op je logs. Tools als Netdata en Glances vullen de gaten op voor real-time diagnostiek en snelle checks.
De belangrijkste takeaways:
- Begin met Node Exporter + Prometheus + Grafana — dit trio dekt 80% van je monitoring-behoeften
- Voeg Loki toe zodra je logs wilt correleren met metrics
- Configureer alerts op symptomen, niet op ruwe resourcemetrics
- Gebruik severity-niveaus en stuur ze via de juiste kanalen
- Test je alerts regelmatig — een stille alert is een nutteloze alert
Server monitoring is geen eenmalig project maar een levend systeem. Voeg nieuwe exporters toe als je nieuwe services deployt, verfijn je alert-drempelwaarden op basis van werkelijke patronen en review je dashboards periodiek. Zo bouw je infrastructuur die je niet verrast — maar informeert.
```json
```