Servermonitoring: Grafana, logs en alerts — grip op uw infrastructuur
Uw server draait, uw applicatie werkt — en dan wordt het stil. Tot het moment dat een klant u 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 leert u hoe u een solide monitoring-stack opzet met Grafana, hoe u logs effectief beheert en hoe u alerts configureert die écht nuttig zijn — zonder dat uw mailbox verzuipt in false positives.
We richten ons op praktische implementatie. Geen theorie voor de bühne, maar concrete stappen die u vandaag nog kunt toepassen op uw 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. U rijdt misschien prima, maar u ziet pas dat de brandstof op is als de motor stopt. Server monitoring geeft u 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 uw 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 u het merkt
- Netwerkproblemen zoals packet loss of latency die applicaties traag maken
Met goede server monitoring pakt u 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 uw servers en applicaties via zogenoemde exporters. Grafana tovert die ruwe data om naar begrijpelijke dashboards en beheert uw alerting-regels.
Stap 1: Prometheus en Node Exporter installeren
De node_exporter is uw eerste aanspreekpunt voor systeemmetrics. Installeer hem op elke server die u 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 uw systeemmetrics beschikbaar op poort 9100. Prometheus haalt ze daar op volgens het interval dat u configureert — standaard elke 15 seconden.
Stap 2: Grafana installeren en koppelen
Grafana installeert u 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 onmiddellijk het wachtwoord. Voeg Prometheus toe als datasource via Configuration → Data Sources → Add data source, vul de URL in van uw Prometheus-instantie en klik op Save & Test.
Voor een complete startset van dashboards importeert u dashboard ID 1860 — het Node Exporter Full dashboard. Dit geeft u in één klap overzicht van CPU, RAM, disk I/O, netwerk en meer, volledig opgemaakt en klaar voor gebruik.
Logs centraliseren: van chaos naar inzicht
Metrics vertellen u wat er gebeurt; logs vertellen u 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 slaat uw logs op in een geoptimaliseerd formaat dat u rechtstreeks kunt bevragen vanuit Grafana. Promtail leest uw 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 voegt u Loki toe als tweede datasource in Grafana. Daarna kunt u in het Explore-scherm rechtstreeks queries uitvoeren op uw 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-metriek die het aantal verzoeken bijhoudt en u hebt in één dashboard zowel het kwantitatieve beeld (hoeveel fouten) als het kwalitatieve beeld (welke verzoeken falen en waarom).
Alerts configureren die uw team wél serieus neemt
Servermonitoring is pas effectief als u ook tijdig verwittigd wordt. Grafana heeft een ingebouwde alerting-engine waarmee u regels kunt definiëren op basis van zowel Prometheus-metrieken 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 mist u 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 severiteitsniveaus. Gebruik
warningvoor situaties die aandacht vragen encriticalvoor situaties die onmiddellijke actie vereisen. Stuur ze via verschillende kanalen — Slack voor warnings, PagerDuty of sms voor critical. - Test uw alerts actief. Een alert die u 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 uw 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 het evaluatie-interval in op 1m en de pending period op 5m — zo voorkomt u dat een korte anomalie meteen een alarm veroorzaakt. Koppel een contact point aan de regel, configureer uw Slack-webhook of e-mailadres, en uw 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 servermonitoring met een verbluffend laag installatiegewicht. Met één commando hebt u 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 u een direct overzicht geeft van alle systeemresources in één scherm. Start u hem op met glances -w, dan draait hij als webserver en kunt u hem ook via de browser benaderen. Ideaal voor de situatie waarbij u snel iets wilt checken zonder een volledig dashboard te openen.
Conclusie: servermonitoring als fundament, niet als bijzaak
Effectieve servermonitoring bouwt u in lagen. Grafana en Prometheus vormen het fundament voor metrieken en alerts. Loki en Promtail geven u grip op uw 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 uw monitoringbehoeften
- Voeg Loki toe zodra u logs wilt correleren met metrieken
- Configureer alerts op symptomen, niet op ruwe resourcemetrieken
- Gebruik severiteitsniveaus en stuur ze via de juiste kanalen
- Test uw alerts regelmatig — een stille alert is een nutteloze alert
Servermonitoring is geen eenmalig project maar een levend systeem. Voeg nieuwe exporters toe wanneer u nieuwe services deployt, verfijn uw alertdrempelwaarden op basis van werkelijke patronen en review uw dashboards periodiek. Zo bouwt u infrastructuur die u niet verrast — maar informeert.