Grafana-Dashboards fuer Infrastruktur-Monitoring

Grafana ist die fuehrende Open-Source-Plattform fuer Monitoring und Observability. In Kombination mit Prometheus als Datenquelle koennen Sie leistungsstarke Dashboards erstellen, die Ihnen einen umfassenden Ueberblick ueber Ihre gesamte Infrastruktur bieten. Dieser Leitfaden zeigt Ihnen, wie Sie von der Installation bis zu produktionsreifen Dashboards mit Alerting gelangen.

Grafana und Prometheus Installieren

Installieren Sie zunaechst Prometheus und den Node Exporter auf Ihren Zielservern:

sudo apt update && sudo apt install -y prometheus prometheus-node-exporter

Fuegen Sie dann das Grafana-Repository hinzu und installieren Sie es:

sudo apt install -y apt-transport-https software-properties-common
wget -q -O - https://apt.grafana.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/grafana-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/grafana-archive-keyring.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt update && sudo apt install -y grafana
sudo systemctl enable --now grafana-server

Grafana ist nun unter http://localhost:3000 erreichbar (Standard-Login: admin/admin).

PromQL-Abfragen fuer Infrastruktur-Metriken

Die Staerke von Grafana liegt in der Faehigkeit, PromQL-Abfragen zu visualisieren. Hier sind die wichtigsten Abfragen fuer das Infrastruktur-Monitoring:

# CPU-Auslastung in Prozent
100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

# Speicherverbrauch in Prozent
(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100

# Festplatten-Auslastung
(1 - (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"})) * 100

# Netzwerk-Durchsatz (Empfangen)
rate(node_network_receive_bytes_total{device="eth0"}[5m]) * 8

Erstellen Sie fuer jede Abfrage ein eigenes Panel im Dashboard. Verwenden Sie Time-Series-Panels fuer zeitbasierte Metriken und Gauge-Panels fuer aktuelle Auslastungswerte.

Template-Variablen und Dynamische Dashboards

Template-Variablen machen Ihre Dashboards wiederverwendbar. Erstellen Sie eine Variable instance mit folgender Abfrage:

label_values(node_cpu_seconds_total, instance)

Verwenden Sie diese Variable in Ihren Panel-Abfragen als Filter:

100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle", instance="$instance"}[5m])) * 100)

So koennen Benutzer den gewuenschten Server ueber ein Dropdown-Menue auswaehlen, ohne separate Dashboards fuer jeden Server pflegen zu muessen.

Alerting und Benachrichtigungen

Grafana bietet ein integriertes Alerting-System. Erstellen Sie Alert-Regeln direkt in Ihren Panels:

# Beispiel: Alert bei hoher CPU-Auslastung
Bedingung: WHEN avg() OF query(A) IS ABOVE 90
Dauer: 5m
Benachrichtigung: Slack-Kanal #infrastructure-alerts

Konfigurieren Sie Contact Points unter Alerting > Contact Points fuer Ihre bevorzugten Benachrichtigungskanaele. Grafana unterstuetzt E-Mail, Slack, Microsoft Teams, PagerDuty, Webhooks und viele weitere Integrationen.

Fazit

Mit Grafana und Prometheus haben Sie eine leistungsstarke, kostenlose Monitoring-Loesung, die mit Ihrer Infrastruktur skaliert. Beginnen Sie mit den grundlegenden System-Metriken und erweitern Sie Ihre Dashboards schrittweise um anwendungsspezifische Metriken und geschaeftskritische Kennzahlen.