Installeer en gebruik Grafana op Ubuntu: compleet gids

Meester Grafana setup voor monitoring & visualisatie

Inhoud

Grafana is de leidende open-source platform voor monitoring en observability, die meten, logs en traces omzet in bruikbare inzichten via indrukwekkende visualisaties.

grafana 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

  1. Navigeer naar http://your-server-ip:3000
  2. Standaard referenties:
    • Gebruikersnaam: admin
    • Wachtwoord: admin
  3. Je wordt onmiddellijk gevraagd om het wachtwoord te wijzigen (zeer aanbevolen!)

Configureer je eerste gegevensbron

Voorbeeld: Prometheus toevoegen

  1. Klik op Configuratie (wielicoon) → Gegevensbronnen
  2. Klik op Gegevensbron toevoegen
  3. Selecteer Prometheus
  4. Configureer:
    • Naam: Prometheus
    • URL: http://localhost:9090 (pas aan voor je Prometheus instantie)
    • Toegang: Server (standaard)
  5. Klik op Opslaan en testen

Voorbeeld: InfluxDB toevoegen

  1. Selecteer InfluxDB als gegevensbron
  2. Configureer:
    • Querytaal: Flux of InfluxQL
    • URL: http://localhost:8086
    • Database: je_database_naam
    • Gebruiker/wachtwoord: je referenties
  3. Klik op Opslaan en testen

Maak je eerste dashboard

  1. Klik op Aanmaken (+icoon) → Dashboard
  2. Klik op Nieuwe panel toevoegen
  3. Selecteer je gegevensbron
  4. Schrijf je query (voorbeeld voor Prometheus):
rate(http_requests_total[5m])
  1. Pas de visualisatie aan:
    • Kies paneltype (Grafiek, Meter, Statistiek, Tabel, enz.)
    • Configureer legendes, assen, drempels
    • Voeg transformaties toe indien nodig
  2. Klik op Toepassen om het panel op te slaan
  3. 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

  1. Navigeer naar WaarschuwingenContactpunten
  2. Klik op Nieuw contactpunt
  3. Kies type (E-mail, Slack, PagerDuty, Webhook, enz.)
  4. Configureer instellingen (bijvoorbeeld Slack webhook URL)
  5. Test en sla op

Stap 2: Maak een waarschuwingregel aan

  1. Bewerk een panel in je dashboard
  2. Klik op Waarschuwing-tabblad
  3. Configureer voorwaarden:
    • Wanneer: avg()
    • Van: query(A, 5m, now)
    • Is boven: 80
  4. Stel evaluatieinterval in
  5. Voeg meldingskanaal toe
  6. 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

  1. Organiseer op doel: Maak aparte dashboards voor verschillende teams/diensten
  2. Gebruik variabelen: Maak dynamische dashboards met sjabloonvariabelen
  3. Stel juiste tijdsperiodes in: Standaard instellen op betekenisvolle tijdsvensters
  4. Voeg annotaties toe: Markeer implementaties en incidenten
  5. Gebruik mappen: Organiseer dashboards logisch
  6. Schakel versiebeheer in: Volg dashboardveranderingen
  7. Stel vernieuwintervallen in: Balanseer real-time behoeften met prestaties
  8. 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

  1. Wijzig standaardreferenties direct
  2. Gebruik HTTPS met geldige certificaten
  3. Configureer firewall:
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw enable
    
  4. Schakel anonieme toegang uit
  5. Gebruik sterke authenticatie (LDAP, OAuth, SAML)
  6. Regelmatige updates Houd Grafana up-to-date
  7. Beperk gebruikersrechten Gebruik rolgebaseerd toegangsbeheer
  8. Schakel auditlogboekregistratie in
  9. Gebruik alleen-lezen gegevensbronnen waar mogelijk
  10. Implementeer beperking van aanvragen

Grafana zelf monitoren

Monitor je Grafana-instantie:

  1. Schakel het metrics-eindpunt in in grafana.ini:
    [metrics]
    enabled = true
    
  2. Voeg Grafana toe als Prometheus-doel
  3. 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

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.