Grafana auf Ubuntu installieren und verwenden: Komplettanleitung
Optimierte Grafana-Konfiguration für Überwachung und Visualisierung
Grafana ist die führende Open-Source-Plattform für Überwachung und Observability, die Metriken, Protokolle und Spuren in handlungsorientierte Erkenntnisse durch beeindruckende Visualisierungen umwandelt.
Dies ist ein Screenshot von der Grafana-Website.
Was ist Grafana?
Grafana ist eine plattformübergreifende Open-Source-Analyse- und interaktive Visualisierungs-Webanwendung. Sie bietet Diagramme, Grafiken und Warnungen für das Web, wenn sie mit unterstützten Datenquellen verbunden ist. Grafana wird weit verbreitet in der DevOps zur Überwachung von Infrastruktur, Anwendungen und Diensten eingesetzt.
Wichtige Funktionen:
- Universelles Dashboard Erstellen Sie schöne, dynamische Dashboards mit flexibler Vorlagengestaltung
- Mehrere Datenquellen Verbinden Sie sich mit 150+ Datenquellen, darunter Prometheus, InfluxDB, Elasticsearch, MySQL, PostgreSQL und mehr
- Warnungen Vereinheitlichtes Warnsystem mit Benachrichtigungskanälen (Slack, PagerDuty, E-Mail, Webhooks)
- Teamzusammenarbeit Teilen Sie Dashboards, erstellen Sie Teams und verwalten Sie Benutzerberechtigungen
- Plugin-Ökosystem Erweitern Sie die Funktionalität mit Panels, Datenquellen und Apps
- Cloud-Native Perfekt für Kubernetes, Docker und Cloud-Umgebungen
Warum Grafana auf Ubuntu?
Ubuntu LTS-Versionen bieten eine stabile, sichere Grundlage für die Hosting von Grafana. Wenn Sie neu anfangen oder eine neue Ubuntu-Umgebung für Ihre Überwachungsinfrastruktur einrichten müssen, werfen Sie einen Blick auf unsere umfassende Anleitung zum Installieren von Ubuntu 24.04 mit nützlichen Tools, um Ihr System vorzubereiten.
Vorteile sind:
- Langzeitunterstützung und Sicherheitsupdates
- Große Community und umfangreiche Dokumentation
- Native APT-Repository-Unterstützung von Grafana Labs
- Exzellente Docker-Kompatibilität
- Ideal für Entwicklungs- und Produktionsumgebungen
Installationsmethoden
Methode 1: Installation über APT-Repository (Empfohlen)
Dies ist die einfachste Methode, die automatische Updates über den Ubuntu-Paketmanager bietet. Wenn Sie neu im Umgang mit dem Ubuntu-Terminal sind oder Ihre Produktivität steigern möchten, kann unser Ubuntu-Tastaturkürzel-Cheat-Sheet Ihnen helfen, das System effizienter zu navigieren.
Schritt 1: Installieren Sie Voraussetzungen
sudo apt-get install -y apt-transport-https software-properties-common wget
Schritt 2: Hinzufügen des Grafana GPG-Schlüssels
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
Schritt 3: Hinzufügen des Grafana APT-Repositorys
Für stabile Versionen:
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
Schritt 4: Aktualisieren und Installieren von Grafana
sudo apt-get update
sudo apt-get install grafana
Schritt 5: Starten und Aktivieren des Grafana-Dienstes
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl enable grafana-server.service
Schritt 6: Überprüfen der Installation
sudo systemctl status grafana-server
Grafana läuft nun auf http://localhost:3000
Methode 2: Installation mit Docker
Docker bietet Isolation und einfachere Verwaltung für containerisierte Bereitstellungen.
Schritt 1: Installieren Sie Docker (falls noch nicht installiert)
sudo apt-get update
sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker
Schritt 2: Ausführen des Grafana-Containers
docker run -d \
--name=grafana \
-p 3000:3000 \
-v grafana-storage:/var/lib/grafana \
grafana/grafana-oss
Für Persistenz mit Konfiguration:
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: Installation mit Docker Compose
Erstellen Sie eine docker-compose.yml-Datei:
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:
Starten Sie mit:
docker-compose up -d
Erste Konfiguration
Erster Login
- Navigieren Sie zu
http://your-server-ip:3000 - Standard-Anmeldedaten:
- Benutzername:
admin - Passwort:
admin
- Benutzername:
- Sie werden aufgefordert, das Passwort sofort zu ändern (stark empfohlen!)
Konfigurieren Ihrer ersten Datenquelle
Beispiel: Hinzufügen von Prometheus
- Klicken Sie auf Konfiguration (Zahnradsymbol) → Datenquellen
- Klicken Sie auf Datenquelle hinzufügen
- Wählen Sie Prometheus
- Konfigurieren Sie:
- Name: Prometheus
- URL:
http://localhost:9090(anpassen für Ihre Prometheus-Instanz) - Zugriff: Server (Standard)
- Klicken Sie auf Speichern & Testen
Beispiel: Hinzufügen von InfluxDB
- Wählen Sie InfluxDB als Datenquelle
- Konfigurieren Sie:
- Abfragesprache: Flux oder InfluxQL
- URL:
http://localhost:8086 - Datenbank: Ihr_Datenbankname
- Benutzer/Kennwort: Ihre Anmeldedaten
- Klicken Sie auf Speichern & Testen
Erstellen Ihres ersten Dashboards
- Klicken Sie auf Erstellen (+ Symbol) → Dashboard
- Klicken Sie auf Neues Panel hinzufügen
- Wählen Sie Ihre Datenquelle
- Schreiben Sie Ihre Abfrage (Beispiel für Prometheus):
rate(http_requests_total[5m])
- Anpassen der Visualisierung:
- Wählen Sie Panel-Typ (Graph, Gauge, Stat, Table, etc.)
- Konfigurieren Sie Legenden, Achsen, Schwellenwerte
- Fügen Sie Transformationen hinzu, falls erforderlich
- Klicken Sie auf Anwenden, um das Panel zu speichern
- Klicken Sie auf Dashboard speichern (Diskettensymbol)
Erweiterte Konfiguration
Konfigurieren der Grafana-Einstellungen
Bearbeiten Sie die Hauptkonfigurationsdatei:
sudo nano /etc/grafana/grafana.ini
Wichtige Einstellungen:
[server]
# Protokoll (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]
# Deaktivieren Sie die Benutzerregistrierung
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
Starten Sie neu nach Änderungen:
sudo systemctl restart grafana-server
Einrichten eines Reverse Proxy (Nginx)
Installieren Sie Nginx:
sudo apt install nginx
Erstellen Sie die Nginx-Konfiguration:
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;
}
}
Aktivieren und neu starten:
sudo ln -s /etc/nginx/sites-available/grafana /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Aktivieren von HTTPS mit Let’s Encrypt
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
Konfigurieren von Warnungen
Schritt 1: Konfigurieren Sie den Benachrichtigungskanal
- Navigieren Sie zu Warnungen → Kontaktpunkte
- Klicken Sie auf Neuer Kontaktpunkt
- Wählen Sie den Typ (E-Mail, Slack, PagerDuty, Webhook, etc.)
- Konfigurieren Sie die Einstellungen (z. B. Slack-Webhook-URL)
- Testen und speichern
Schritt 2: Erstellen Sie eine Warnregel
- Bearbeiten Sie ein Panel in Ihrem Dashboard
- Klicken Sie auf die Registerkarte Warnung
- Konfigurieren Sie die Bedingungen:
- Wenn: avg()
- Von: query(A, 5m, now)
- Ist über: 80
- Setzen Sie das Auswertungsintervall
- Fügen Sie den Benachrichtigungskanal hinzu
- Speichern
Beliebte Anwendungsfälle
Infrastrukturüberwachung
Stack: Prometheus + Node Exporter + Grafana
Überwachen Sie Systemmetriken:
- CPU-, Speicher-, Festplattennutzung
- Netzwerkverkehr
- Systemlast
- Festplatten-I/O
Für die spezifische Überwachung von NVIDIA-GPUs möchten Sie möglicherweise spezialisierte GPU-Überwachungsanwendungen für Linux/Ubuntu erkunden, die gut mit Grafana integriert sind.
Importieren Sie Dashboard-ID: 1860 (Node Exporter Full)
Kubernetes-Überwachung
Stack: Prometheus + kube-state-metrics + Grafana
Überwachen Sie den K8s-Cluster:
- Pod- und Container-Metriken
- Cluster-Ressourcennutzung
- Bereitstellungsstatus
- Ingress/Dienst-Überwachung
Importieren Sie Dashboard-ID: 15757 (Kubernetes Cluster Monitoring)
Anwendungsleistungsüberwachung
Stack: Loki + Promtail + Grafana
Überwachen Sie Anwendungsprotokolle und Metriken:
- Anforderungsraten und Latenzen
- Fehlerraten
- Protokollaggregation und -filterung
- Verteilte Rückverfolgung
Datenbanküberwachung
Überwachen Sie MySQL, PostgreSQL, MongoDB:
- Abfrageleistung
- Verbindungspools
- Langsame Abfragen
- Replikationsstatus
Dashboard-Best Practices
- Organisieren Sie nach Zweck: Erstellen Sie separate Dashboards für verschiedene Teams/Dienste
- Verwenden Sie Variablen: Erstellen Sie dynamische Dashboards mit Vorlagenvariablen
- Setzen Sie angemessene Zeitbereiche: Standardmäßig auf sinnvolle Zeitfenster setzen
- Fügen Sie Anmerkungen hinzu: Markieren Sie Bereitstellungen und Vorfälle
- Verwenden Sie Ordner: Organisieren Sie Dashboards logisch
- Aktivieren Sie die Versionskontrolle: Verfolgen Sie Dashboard-Änderungen
- Setzen Sie Aktualisierungsintervalle: Balancieren Sie Echtzeitbedürfnisse mit der Leistung
- Fügen Sie Dokumentation hinzu: Verwenden Sie Textpanels, um Metriken zu erklären
Fehlerbehebung häufiger Probleme
Grafana-Dienst startet nicht
# Protokolle überprüfen
sudo journalctl -u grafana-server -f
# Konfiguration überprüfen
sudo grafana-cli admin reset-admin-password newpassword
Datenquellen-Verbindungsprobleme
- Netzwerkverbindung überprüfen:
telnet datasource-host port - Firewall-Regeln überprüfen
- Anmeldedaten überprüfen
- Protokolle des Datenquellen-Dienstes überprüfen
Leistungsprobleme
- Abfragezeiträume reduzieren
- Datenquellen-Abfragen optimieren
- Serverressourcen erhöhen
- Caching nutzen, wo möglich
- Abfrageergebnis-Caching in Betracht ziehen
Dashboard wird nicht geladen
- Browser-Cache leeren
- Browser-Konsole auf Fehler überprüfen
- Überprüfen, ob die Dashboard-JSON nicht beschädigt ist
- Grafana-Serverprotokolle überprüfen
Backup und Wartung
Grafana-Datenbank sichern
# Grafana stoppen
sudo systemctl stop grafana-server
# SQLite-Datenbank sichern
sudo cp /var/lib/grafana/grafana.db /backup/grafana-$(date +%Y%m%d).db
# Konfiguration sichern
sudo cp /etc/grafana/grafana.ini /backup/grafana-ini-$(date +%Y%m%d).bak
# Grafana starten
sudo systemctl start grafana-server
Automatisiertes Backup-Skript
Hier ist ein Bash-Skript zur Automatisierung Ihrer Grafana-Backups. Wenn Sie eine schnelle Referenz für Bash-Skripting-Syntax und Befehle benötigen, werfen Sie einen Blick auf unseren Bash-Cheat-Sheet für hilfreiche Tipps und Beispiele.
#!/bin/bash
BACKUP_DIR="/backup/grafana"
mkdir -p $BACKUP_DIR
DATE=$(date +%Y%m%d_%H%M%S)
# Datenbank sichern
sudo cp /var/lib/grafana/grafana.db $BACKUP_DIR/grafana-$DATE.db
# Dashboards über API sichern
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
# Nur die letzten 30 Tage behalten
find $BACKUP_DIR -mtime +30 -delete
Grafana aktualisieren
# APT-Methode
sudo apt update
sudo apt upgrade grafana
# Docker-Methode
docker pull grafana/grafana-oss:latest
docker-compose down
docker-compose up -d
Sicherheitshärtung
- Standardanmeldedaten ändern sofort
- HTTPS verwenden mit gültigen Zertifikaten
- Firewall konfigurieren:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable - Anonymen Zugriff deaktivieren
- Starke Authentifizierung verwenden (LDAP, OAuth, SAML)
- Regelmäßige Updates Halten Sie Grafana aktualisiert
- Benutzerberechtigungen einschränken Verwenden Sie rollenbasierte Zugriffskontrolle
- Audit-Logging aktivieren
- Schreibgeschützte Datenquellen verwenden wo möglich
- Rate Limiting implementieren
Überwachung von Grafana selbst
Überwachen Sie Ihre Grafana-Instanz:
- Aktivieren Sie den Metriken-Endpunkt in
grafana.ini:[metrics] enabled = true - Fügen Sie Grafana als Prometheus-Ziel hinzu
- Importieren Sie das Grafana-Metriken-Dashboard
Nützliche Plugins
Installieren Sie Plugins über die CLI:
sudo grafana-cli plugins install <plugin-id>
sudo systemctl restart grafana-server
Empfohlene Plugins:
- grafana-piechart-panel: Verbesserte Kreisdiagramme
- grafana-worldmap-panel: Visualisierung geografischer Daten
- grafana-clock-panel: Anzeige von Zeit und Datum
- grafana-simple-json-datasource: Verbindung zu benutzerdefinierten JSON-APIs
- alexanderzobnin-zabbix-app: Zabbix-Integration
Integrationsbeispiele
Grafana + Prometheus + Node Exporter
Vollständige Monitoring-Stack-Einrichtung:
# Node Exporter installieren
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
# Systemd-Dienst erstellen
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 mit InfluxDB und Telegraf
Zeitreihen-Monitoring-Einrichtung:
# InfluxDB installieren
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
# Telegraf installieren
sudo apt install telegraf
sudo systemctl start telegraf
sudo systemctl enable telegraf
Leistungsoptimierung
Abfrageoptimierung
- Geeignete Zeiträume verwenden
- Anzahl der zurückgegebenen Datenpunkte begrenzen
- Caching-Strategien verwenden
- Daten an der Quelle aggregieren, wenn möglich
- Aufzeichnungsregeln in Prometheus verwenden
Serveroptimierung
[database]
# Maximale Verbindungen erhöhen
max_open_conn = 300
max_idle_conn = 100
[dataproxy]
# Timeout-Einstellungen
timeout = 30
keep_alive_seconds = 30
[rendering]
# Konkurrierende Rendering-Grenze aktivieren
concurrent_render_limit = 10
Nützliche Links
- Offizielle Dokumentation
- Grafana GitHub
- Prometheus-Dokumentation
- InfluxDB-Dokumentation
- Wie man Ubuntu 24.04 installiert & nützliche Tools
- GPU-Überwachungsanwendungen in Linux / Ubuntu
- Ubuntu-Tastenkombinationen: Komplettes Cheat-Sheet
- Bash-Cheat-Sheet
Fazit
Grafana auf Ubuntu bietet eine leistungsstarke, flexible Plattform für Monitoring und Observability. Ob Sie einen einzelnen Server oder ein massives Kubernetes-Cluster überwachen, die reichen Visualisierungsfähigkeiten von Grafana, die umfangende Unterstützung von Datenquellen und die aktive Community machen es zu einer hervorragenden Wahl für DevOps-Teams.
Beginnen Sie mit einer einfachen Einrichtung unter Verwendung der APT-Repository-Methode, verbinden Sie Ihre erste Datenquelle und erweitern Sie schrittweise Ihre Monitoring-Fähigkeiten. Vergessen Sie nicht, Sicherheit, regelmäßige Backups und Leistungsoptimierung zu priorisieren, wenn Ihre Grafana-Einrichtung wächst.
Mit der richtigen Konfiguration und Best Practices wird Grafana zu einem unverzichtbaren Werkzeug in Ihrem Observability-Stack, das Ihnen handlungsfähige Erkenntnisse liefert, die Ihnen helfen, zuverlässige und leistungsfähige Systeme aufrechtzuerhalten.