Prometheus Prometheus

Metriken in Grafana visualisieren: Datenquellen, Panels und Community-Dashboards

Verbinde Grafana mit Prometheus, baue ein Panel von Grund auf und importiere dann ein fertiges Dashboard, statt alles von Hand zu bauen.

12 min Anfänger

Prometheus speichert und fragt Metriken ab; es ist nicht dazu gedacht, der Ort zu sein, an dem du sie im Alltag ansiehst. Grafana ist die Dashboard-Schicht, die am häufigsten damit kombiniert wird. Diese Anleitung verbindet beide, baut ein Panel von Hand, um zu verstehen, was darunter passiert, und importiert dann ein Community-Dashboard, statt alles von Grund auf zu bauen, so wie die meiste echte Grafana-Nutzung tatsächlich abläuft.

Prometheus als Datenquelle hinzufügen

# docker-compose.yml (zum Stack der vorherigen Anleitung hinzufügen)
  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    ports:
      - "3000:3000"
    volumes:
      - grafana-data:/var/lib/grafana

Öffne nach docker compose up -d http://localhost:3000 und melde dich mit dem Standard admin / admin an (du wirst aufgefordert, es zu ändern). Füge unter Connections → Data sources → Add new data source eine Datenquelle hinzu, wähle Prometheus und richte ihre URL auf http://prometheus:9090, den Compose-Service-Namen aus der vorherigen Anleitung, da Grafana und Prometheus dasselbe Docker-Netzwerk teilen. Speichern und testen; eine erfolgreiche Verbindung bestätigt, dass Grafana Prometheus erreichen kann, bevor du etwas darauf aufbaust.

Ein Panel von Hand bauen

Erstelle ein neues Dashboard, füge eine Visualisierung hinzu und wähle die Prometheus-Datenquelle. Statt PromQL direkt zu tippen, lässt dich Grafanas Query Builder eine Abfrage Feld für Feld konstruieren, was ein vernünftiger Weg ist zu lernen, was eine Abfrage tatsächlich tut:

  1. Metrik: wähle node_cpu_seconds_total.
  2. Label-Filter: füge mode != "idle" hinzu, da CPU-Zeit im Modus idle nicht der Teil ist, den du visualisieren willst. Hast du nur eine Instanz von node_exporter, unterscheiden die Labels job und instance nichts und können weggelassen werden; sie zählen, sobald du mehr als einen Host überwachst.
  3. Grafana weist darauf hin, dass ein Counter wie dieser eine Ratenfunktion braucht. Wechsle zu rate() (oder irate(), obwohl wie in der PromQL-Anleitung behandelt rate() der stetigere Standard ist) über ein Fenster wie 1m.
  4. Ändere unter Options die Legende von Auto auf ein eigenes Format, {{mode}}, damit die resultierenden Linien system, user, iowait und so weiter heißen statt den vollständigen, repetitiven Label-Satz zu zeigen.

Speichere das Panel mit einem Namen und füge es einem Dashboard hinzu. Unter dem Builder zeigt eine Code-Ansicht das tatsächliche PromQL, das Grafana konstruiert hat, was sich einmal anzusehen lohnt, damit du irgendwann den Builder überspringen und Abfragen direkt schreiben kannst.

Ein zweites Panel: Disk-Nutzung aus einem Ausdruck

Nicht jedes Panel stammt aus einer einzelnen Metrik; manche aus der Kombination einiger:

node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_free_bytes{mountpoint="/"}

Das berechnet die tatsächlich auf dem Root-Dateisystem genutzten Bytes, indem es die freien Bytes von der Gesamtgröße abzieht, gefiltert auf den Root-Mountpoint, damit temporäre und virtuelle Dateisysteme das Ergebnis nicht verstopfen. Füge das direkt in die Code-Ansicht des Panels ein, statt zu versuchen, es Feld für Feld zu bauen; alles mit Arithmetik zwischen zwei Metriken ist meist schneller zu schreiben, als sich durch einen Builder zu klicken.

Ein Community-Dashboard importieren, statt von Grund auf zu bauen

Jedes Panel von Hand zu bauen skaliert nicht, sobald du Dutzende Metriken hast, die es wert sind, verfolgt zu werden, und für gängige Exporter hat mit ziemlicher Sicherheit schon jemand anderes ein umfassendes Dashboard gebaut und veröffentlicht. Grafanas Dashboard-Bibliothek ist nach Exporter-Namen durchsuchbar, und jedes Dashboard hat eine numerische ID:

  1. Durchsuche die Bibliothek nach dem Exporter, den du nutzt (node exporter, cadvisor), und wähle eines mit guten Bewertungen und einer aktuellen Aktualisierung.
  2. Kopiere seine Dashboard-ID.
  3. Gehe in Grafana zu Dashboards → New → Import, füge die ID ein und lade es.
  4. Wähle auf Nachfrage deine Prometheus-Datenquelle und importiere.

Das gibt dir einen vollständigen, vorgefertigten Satz an Panels, CPU, Speicher, Swap, Disk-I/O, Netzwerkfehler, Uptime und mehr, ohne jedes einzeln von Hand zu bauen. Es ist auch ein wirklich nützlicher Weg, PromQL zu lernen: Öffne den Editor eines importierten Panels und lies die Abfragen, die es für eine Metrik nutzt, die du gut verstehst, was oft klarer ist, als Dokumentation isoliert zu lesen.

Von dort anpassen

Ein importiertes Dashboard ist ein Ausgangspunkt, keine endgültige Antwort. Jedes Panel bleibt vollständig bearbeitbar: Passe Label-Filter an, ändere Visualisierungstypen, justiere Schwellen und Farben oder lösche Panels, die du nicht brauchst. Behandle den Import als Gerüst, auf dem du aufbaust, statt als etwas, das du entweder unverändert nutzt oder ganz meidest.

Beliebte Anleitungen