Installeer en gebruik Grafana op Ubuntu: compleet gids
Meester Grafana setup voor monitoring & visualisatie
Grafana is de leidende open-source platform voor monitoring en observability, die meten, logs en traces omzet in bruikbare inzichten via indrukwekkende visualisaties.
Dit is een screenshot van de Grafana website.
Wat is Grafana?
Grafana is een multi-platform open-source analytics en interactieve visualisatie webtoepassing. Het biedt grafieken, grafieken en waarschuwingen voor het web wanneer het is verbonden met ondersteunde gegevensbronnen. Grafana wordt veel gebruikt in DevOps voor het monitoren van infrastructuur, toepassingen en diensten.
Belangrijke functies:
- Universel dashboard Maak prachtige, dynamische dashboards met flexibele sjablonen
- Meerdere gegevensbronnen Verbind met 150+ gegevensbronnen, waaronder Prometheus, InfluxDB, Elasticsearch, MySQL, PostgreSQL en meer
- Waarschuwingen Geïntegreerd waarschuwingssysteem met meldingskanalen (Slack, PagerDuty, e-mail, webhooks)
- Team samenwerking Deel dashboards, maak teams aan en beheer gebruikersrechten
- Plugin-ecosysteem Breid de functionaliteit uit met panels, gegevensbronnen en apps
- Cloud native Ideaal voor Kubernetes, Docker en cloudomgevingen
Waarom Grafana op Ubuntu?
Ubuntu LTS-versies bieden een stabiele, beveiligde basis voor het hosten van Grafana. Als je vanaf het begin start of een nieuwe Ubuntu-omgeving nodig hebt voor je monitoringinfrastructuur, raadpleeg dan onze uitgebreide gids over hoe je Ubuntu 24.04 installeert met nuttige tools om je systeem voor te bereiden.
Voordelen zijn onder andere:
- Lange termijnondersteuning en beveiligingsupdates
- Grote gemeenschap en uitgebreide documentatie
- Native APT-repositoryondersteuning van Grafana Labs
- Uitstekende compatibiliteit met Docker
- Perfect voor zowel ontwikkelomgevingen als productieomgevingen
Installatiemethoden
Methode 1: Installeer via APT-repository (Aanbevolen)
Dit is de eenvoudigste methode, die automatische updates biedt via de Ubuntu-pakketbeheerder. Als je nieuw bent met het werken met de Ubuntu-terminal of je wilt je productiviteit verhogen, kan onze Ubuntu toetsenbordkortingen cheat sheet je helpen om het systeem efficiënter te navigeren.
Stap 1: Installeer vereisten
sudo apt-get install -y apt-transport-https software-properties-common wget
Stap 2: Voeg de Grafana GPG-sleutel toe
sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
Stap 3: Voeg de Grafana APT-repository toe
Voor stabiele releases:
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Stap 4: Werk bij en installeer Grafana
sudo apt-get update
sudo apt-get install grafana
Stap 5: Start en schakel Grafana-service in
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl enable grafana-server.service
Stap 6: Controleer de installatie
sudo systemctl status grafana-server
Grafana wordt nu uitgevoerd op http://localhost:3000
Methode 2: Installeer met behulp van Docker
Docker biedt isolatie en eenvoudiger beheer voor containerimplementaties.
Stap 1: Installeer Docker (indien nog niet geïnstalleerd)
sudo apt-get update
sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker
Stap 2: Voer Grafana-container uit
docker run -d \
--name=grafana \
-p 3000:3000 \
-v grafana-storage:/var/lib/grafana \
grafana/grafana-oss
Voor duurzaamheid met configuratie:
docker run -d \
--name=grafana \
-p 3000:3000 \
-v grafana-storage:/var/lib/grafana \
-v $(pwd)/grafana.ini:/etc/grafana/grafana.ini \
-e "GF_SERVER_ROOT_URL=http://your-domain.com" \
-e "GF_SECURITY_ADMIN_PASSWORD=your-secure-password" \
grafana/grafana-oss
Methode 3: Installeer met behulp van Docker Compose
Maak een docker-compose.yml-bestand aan:
version: '3.8'
services:
grafana:
image: grafana/grafana-oss:latest
container_name: grafana
restart: unless-stopped
ports:
- '3000:3000'
volumes:
- grafana-storage:/var/lib/grafana
- ./grafana/provisioning:/etc/grafana/provisioning
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=your-secure-password
- GF_USERS_ALLOW_SIGN_UP=false
- GF_SERVER_ROOT_URL=http://your-domain.com
volumes:
grafana-storage:
Start met:
docker-compose up -d
Eerste configuratie
Eerste aanmelding
- Navigeer naar
http://your-server-ip:3000 - Standaard referenties:
- Gebruikersnaam:
admin - Wachtwoord:
admin
- Gebruikersnaam:
- Je wordt onmiddellijk gevraagd om het wachtwoord te wijzigen (zeer aanbevolen!)
Configureer je eerste gegevensbron
Voorbeeld: Prometheus toevoegen
- Klik op Configuratie (wielicoon) → Gegevensbronnen
- Klik op Gegevensbron toevoegen
- Selecteer Prometheus
- Configureer:
- Naam: Prometheus
- URL:
http://localhost:9090(pas aan voor je Prometheus instantie) - Toegang: Server (standaard)
- Klik op Opslaan en testen
Voorbeeld: InfluxDB toevoegen
- Selecteer InfluxDB als gegevensbron
- Configureer:
- Querytaal: Flux of InfluxQL
- URL:
http://localhost:8086 - Database: je_database_naam
- Gebruiker/wachtwoord: je referenties
- Klik op Opslaan en testen
Maak je eerste dashboard
- Klik op Aanmaken (+icoon) → Dashboard
- Klik op Nieuwe panel toevoegen
- Selecteer je gegevensbron
- Schrijf je query (voorbeeld voor Prometheus):
rate(http_requests_total[5m])
- Pas de visualisatie aan:
- Kies paneltype (Grafiek, Meter, Statistiek, Tabel, enz.)
- Configureer legendes, assen, drempels
- Voeg transformaties toe indien nodig
- Klik op Toepassen om het panel op te slaan
- Klik op Dashboard opslaan (schijficoon)
Geavanceerde configuratie
Configureer Grafana-instellingen
Bewerk het hoofdconfiguratiebestand:
sudo nano /etc/grafana/grafana.ini
Belangrijke instellingen:
[server]
# Protocol (http, https, h2, socket)
protocol = http
http_port = 3000
domain = your-domain.com
root_url = http://your-domain.com
[security]
admin_user = admin
admin_password = your-secure-password
secret_key = your-secret-key
[users]
# Gebruikersregistratie uitschakelen
allow_sign_up = false
allow_org_create = false
[auth.anonymous]
enabled = false
[smtp]
enabled = true
host = smtp.gmail.com:587
user = your-email@gmail.com
password = your-app-password
from_address = your-email@gmail.com
from_name = Grafana
Herstart na wijzigingen:
sudo systemctl restart grafana-server
Stel omgekeerde proxy in (Nginx)
Installeer Nginx:
sudo apt install nginx
Maak Nginx-configuratie aan:
sudo nano /etc/nginx/sites-available/grafana
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Schakel in en herstart:
sudo ln -s /etc/nginx/sites-available/grafana /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
HTTPS inschakelen met Let’s Encrypt
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
Configureer waarschuwingen
Stap 1: Configureer meldingskanaal
- Navigeer naar Waarschuwingen → Contactpunten
- Klik op Nieuw contactpunt
- Kies type (E-mail, Slack, PagerDuty, Webhook, enz.)
- Configureer instellingen (bijvoorbeeld Slack webhook URL)
- Test en sla op
Stap 2: Maak een waarschuwingregel aan
- Bewerk een panel in je dashboard
- Klik op Waarschuwing-tabblad
- Configureer voorwaarden:
- Wanneer: avg()
- Van: query(A, 5m, now)
- Is boven: 80
- Stel evaluatieinterval in
- Voeg meldingskanaal toe
- Sla op
Populaire toepassingsgevallen
Infrastructuurmonitoring
Stack: Prometheus + Node Exporter + Grafana
Monitor systeemmetingen:
- CPU, geheugen, schijfgebruik
- Netwerkverkeer
- Systeembelasting
- Schijf I/O
Voor specifieke NVIDIA GPU-monitoring, wil je mogelijk GPU-monitoringtoepassingen voor Linux/Ubuntu verkennen die goed werken met Grafana.
Import dashboard ID: 1860 (Node Exporter Full)
Kubernetes monitoring
Stack: Prometheus + kube-state-metrics + Grafana
Monitor K8s cluster:
- Pod- en containermetingen
- Clusterresourcegebruik
- Deploymentstatus
- Ingress/service monitoring
Import dashboard ID: 15757 (Kubernetes Cluster Monitoring)
Toepassing prestatie monitoring
Stack: Loki + Promtail + Grafana
Monitor toepassingslogboeken en metingen:
- Aanvraagfrequenties en latenties
- Foutpercentages
- Logboekaggregatie en filtering
- Gedistribueerde tracing
Database monitoring
Monitor MySQL, PostgreSQL, MongoDB:
- Queryprestaties
- Verbindingspools
- Slang queries
- Replicatiestatus
Dashboard best practices
- Organiseer op doel: Maak aparte dashboards voor verschillende teams/diensten
- Gebruik variabelen: Maak dynamische dashboards met sjabloonvariabelen
- Stel juiste tijdsperiodes in: Standaard instellen op betekenisvolle tijdsvensters
- Voeg annotaties toe: Markeer implementaties en incidenten
- Gebruik mappen: Organiseer dashboards logisch
- Schakel versiebeheer in: Volg dashboardveranderingen
- Stel vernieuwintervallen in: Balanseer real-time behoeften met prestaties
- Voeg documentatie toe: Gebruik tekstpanels om metingen te verklaren
Probleemoplossing van veelvoorkomende problemen
Grafana-service start niet
# Controleer logboeken
sudo journalctl -u grafana-server -f
# Controleer configuratie
sudo grafana-cli admin reset-admin-password newpassword
Problemen met gegevensbronverbinding
- Controleer netwerkconnectiviteit:
telnet datasource-host port - Controleer firewallregels
- Controleer referenties
- Controleer logboeken van de gegevensbron-service
Prestatieproblemen
- Verminder querytijdsperiodes
- Optimaliseer gegevensbronqueries
- Verhoog serverresources
- Gebruik caching waar mogelijk
- Overweeg caching van queryresultaten
Dashboard laadt niet
- Wis browsercache
- Controleer browserconsole op fouten
- Controleer of dashboard JSON niet beschadigd is
- Controleer Grafana-serverlogboeken
Back-up en onderhoud
Back-up Grafana-database
# Stop Grafana
sudo systemctl stop grafana-server
# Back-up SQLite-database
sudo cp /var/lib/grafana/grafana.db /backup/grafana-$(date +%Y%m%d).db
# Back-up configuratie
sudo cp /etc/grafana/grafana.ini /backup/grafana-ini-$(date +%Y%m%d).bak
# Start Grafana
sudo systemctl start grafana-server
Automatische back-upscript
Hieronder staat een bashscript om je Grafana-back-ups te automatiseren. Als je snel een verwijzing nodig hebt voor bashscript syntaxis en commando’s, raadpleeg dan onze Bash cheat sheet voor nuttige tips en voorbeelden.
#!/bin/bash
BACKUP_DIR="/backup/grafana"
mkdir -p $BACKUP_DIR
DATE=$(date +%Y%m%d_%H%M%S)
# Back-up database
sudo cp /var/lib/grafana/grafana.db $BACKUP_DIR/grafana-$DATE.db
# Back-up dashboards via API
curl -H "Authorization: Bearer YOUR_API_KEY" \
http://localhost:3000/api/search?type=dash-db | \
jq -r '.[] | .uid' | \
xargs -I{} curl -H "Authorization: Bearer YOUR_API_KEY" \
http://localhost:3000/api/dashboards/uid/{} > $BACKUP_DIR/dashboards-$DATE.json
# Bewaar alleen de laatste 30 dagen
find $BACKUP_DIR -mtime +30 -delete
Grafana bijwerken
# APT-methode
sudo apt update
sudo apt upgrade grafana
# Docker-methode
docker pull grafana/grafana-oss:latest
docker-compose down
docker-compose up -d
Beveiliging verbeteren
- Wijzig standaardreferenties direct
- Gebruik HTTPS met geldige certificaten
- Configureer firewall:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable - Schakel anonieme toegang uit
- Gebruik sterke authenticatie (LDAP, OAuth, SAML)
- Regelmatige updates Houd Grafana up-to-date
- Beperk gebruikersrechten Gebruik rolgebaseerd toegangsbeheer
- Schakel auditlogboekregistratie in
- Gebruik alleen-lezen gegevensbronnen waar mogelijk
- Implementeer beperking van aanvragen
Grafana zelf monitoren
Monitor je Grafana-instantie:
- Schakel het metrics-eindpunt in in
grafana.ini:[metrics] enabled = true - Voeg Grafana toe als Prometheus-doel
- Importeer Grafana-metrics-dashboard
Nuttige plugins
Installeer plugins via CLI:
sudo grafana-cli plugins install <plugin-id>
sudo systemctl restart grafana-server
Aanbevolen plugins:
- grafana-piechart-panel: Versterkte taartdiagrammen
- grafana-worldmap-panel: Geografische datavisualisatie
- grafana-clock-panel: Toon tijd en datum
- grafana-simple-json-datasource: Verbind met aangepaste JSON-apis
- alexanderzobnin-zabbix-app: Zabbix-integratie
Integratievoorbeelden
Grafana + Prometheus + Node Exporter
Volledige monitoringstack setup:
# Installeer Node Exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xvfz node_exporter-1.7.0.linux-amd64.tar.gz
sudo cp node_exporter-1.7.0.linux-amd64/node_exporter /usr/local/bin/
sudo useradd -rs /bin/false node_exporter
# Maak systemd-service aan
sudo tee /etc/systemd/system/node_exporter.service << EOF
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl start node_exporter
sudo systemctl enable node_exporter
Grafana met InfluxDB en Telegraf
Tijdreeksmonitoring setup:
# Installeer InfluxDB
wget -q https://repos.influxdata.com/influxdata-archive_compat.key
echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
sudo apt update && sudo apt install influxdb
sudo systemctl start influxdb
sudo systemctl enable influxdb
# Installeer Telegraf
sudo apt install telegraf
sudo systemctl start telegraf
sudo systemctl enable telegraf
Prestatieoptimalisatie
Queryoptimalisatie
- Gebruik geschikte tijdsperiodes
- Beperk het aantal geretourneerde datapunten
- Gebruik cachingstrategieën
- Aggregeer data op bron wanneer mogelijk
- Gebruik opname-regels in Prometheus
Serveroptimalisatie
[database]
# Verhoog max connecties
max_open_conn = 300
max_idle_conn = 100
[dataproxy]
# Timeout-instellingen
timeout = 30
keep_alive_seconds = 30
[rendering]
# Schakel concurrent renderlimiet in
concurrent_render_limit = 10
Nuttige links
- Officiële documentatie
- Grafana GitHub
- Prometheus documentatie
- InfluxDB documentatie
- Hoe je Ubuntu 24.04 installeert & nuttige tools
- GPU-monitoringtoepassingen in Linux / Ubuntu
- Ubuntu toetsenbordkortingen: Volledige cheat sheet
- Bash Cheat Sheet
Conclusie
Grafana op Ubuntu biedt een krachtige, flexibele platform voor monitoring en observability. Of je nu een enkele server of een grote Kubernetes-cluster monitort, de rijke visualisatiefunctionaliteiten, uitgebreide ondersteuning voor gegevensbronnen en actieve gemeenschap van Grafana maken het een uitstekende keuze voor DevOps-teams.
Begin met een eenvoudige installatie via de APT-repositorymethode, verbind je eerste gegevensbron en breid geleidelijk je monitoringfunctionaliteiten uit. Herinner jezelf eraan om beveiliging, regelmatige back-ups en prestatieoptimalisatie te prioriteren naarmate je Grafana-implementatie groeit.
Met correcte configuratie en best practices wordt Grafana een onmisbaar hulpmiddel in je observability-stack, die bruikbare inzichten biedt die helpen bij het onderhouden van betrouwbare, prestatiesterke systemen.