b'nerd GmbH b'nerd GmbH

Monitoring & Logging Monitoring Grundlagen - Grafana

Kubernetes Monitoring mit Grafana. Wichtige Funktionen, Installation und erste Schritte.

Einführung

In modernen IT-Umgebungen, insbesondere bei containerisierten Anwendungen, entstehen immense Mengen an Daten. Diese Daten müssen nicht nur gesammelt, sondern auch verarbeitet und analysiert werden. Die Herausforderung liegt darin, diese Datenflut in aussagekräftige Metriken und Visualisierungen zu überführen, die es ermöglichen, den Zustand und die Leistungsfähigkeit einer Infrastruktur kontinuierlich zu überwachen.

Für das Monitoring von Metriken in Kubernetes-Clustern hat sich Grafana als eine hervorragende Wahl erwiesen. Grafana bietet nicht nur die Möglichkeit, Zeitreihendaten aus verschiedenen Quellen zu visualisieren, sondern stellt auch leistungsstarke Analysewerkzeuge und Alert-Funktionen zur Verfügung. Diese Eigenschaften machen es zu einem mächtigen Werkzeug, um die komplexen und dynamischen Umgebungen von Kubernetes-Clustern effizient zu überwachen.

Warum ist das wichtig? Kubernetes verwaltet containerisierte Anwendungen, die oft über viele Knoten verteilt sind. Dies bedeutet, dass der Zustand eines Clusters von vielen verschiedenen Faktoren abhängt – von der CPU-Auslastung über die Speicherverwendung bis hin zur Netzwerkleistung. Ein Ausfall eines einzelnen Pods kann Auswirkungen auf die gesamte Anwendung haben, und ohne ein robustes Monitoring-Tool könnten solche Probleme leicht übersehen werden.

Grafana hebt sich dabei durch seine Flexibilität und Anpassungsfähigkeit hervor. Es kann mit verschiedenen Datenquellen wie Prometheus, InfluxDB und vielen anderen integriert werden, sodass es sich nahtlos in viele IT-Infrastrukturen einfügt. Darüber hinaus ermöglicht es die Erstellung von maßgeschneiderten Dashboards, die genau die Metriken und Daten visualisieren, die für die Überwachung eines spezifischen Setups am wichtigsten sind.

Hauptmerkmale von Grafana

  • Anpassbare Dashboards: Dashboards können nach Bedarf gestaltet, Metriken visualisiert und Datenquellen integriert werden
  • Alerting: Grafana ermöglicht die Konfiguration von Alerts, die bei bestimmten Bedingungen ausgelöst werden und Benachrichtigungen an verschiedene Kommunikationskanäle senden.
  • Datenquellenintegration: Grafana unterstützt eine breite Palette von Datenquellen, darunter Prometheus, InfluxDB, Elasticsearch und andere.
  • Flexibilität und Erweiterbarkeit: Dank des Open-Source-Ansatzes von Grafana können Benutzer eigene Plugins entwickeln oder vorhandene anpassen.
  • Visualisierungen: Grafana bietet verschiedene Diagrammtypen, Heatmaps und Grafiken zur Darstellung von Zeitreihendaten.

Installation

Im Folgenden zeigen wir, wie Grafana in einem Kubernetes-Cluster installiert werden kann. Dabei kommt ein Helm-Chart zum Einsatz, das die Installation vereinfacht.

Voraussetzungen

  • Ein laufendes Kubernetes-Cluster.
  • Helm, ein Paketmanager für Kubernetes.

Schritt 1: Helm-Repository hinzufügen

Zuerst muss das Helm-Repository für Grafana hinzugefügt werden:

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update

Schritt 2: Grafana installieren

Mit dem folgenden Befehl wird Grafana im Kubernetes-Cluster installiert:

helm install grafana grafana/grafana --namespace monitoring --create-namespace

Dieser Befehl installiert Grafana im Namespace monitoring. Der Namespace kann angepasst werden.

Schritt 3: Zugriff auf das Grafana-Dashboard

Nach der Installation kann auf das Grafana Dashboard zugegriffen werden. Das Passwort des Admin-Benutzers kann mit folgendem Befehl abgefragt werden

kubectl get secret --namespace monitoring grafana -o jsonpath="{.data.admin-password}" | base64 --decode

Um das Dashboard zugänglich zu machen, verwenden wir ein Portforwarding:

kubectl port-forward --namespace monitoring svc/grafana 3000:80

Nun im Browser http://localhost:3000 öffnen und mit dem Benutzernamen admin sowie dem zuvor abgerufenen Passwort anmelden.

Monitoring eines Kubernetes-Clusters mit Grafana

Nachdem Grafana installiert ist, können wir mit der Konfiguration beginnen, um die Überwachung unseres Kubernetes-Clusters einzurichten. Dazu verwenden wir Prometheus als Datenquelle, das speziell für das Monitoring von Kubernetes entwickelt wurde.

Schritt 1: Prometheus als Datenquelle hinzufügen

  1. Im Grafana-Dashboard zu Configuration > Data Sources navigieren.
  2. Auf Add data source klicken und Prometheus aus der Liste der verfügbaren Datenquellen auswählen.
  3. Die URL von Prometheus eingeben, z.B. http://prometheus-server.monitoring.svc.cluster.local:9090.
  4. Auf Save & Test klicken, um die Konfiguration zu überprüfen.

Schritt 2: Kubernetes-Dashboards importieren

Grafana bietet vorgefertigte Dashboards für Kubernetes, die ihr einfach importieren könnt:

  1. Zu Dashboards > Manage navigieren.
  2. Auf Import klicken.
  3. Die ID eines Kubernetes-Dashboards aus der Grafana-Dashboard-Gallery eingeben (z.B. 6417 für ein Kubernetes Cluster Monitoring Dashboard).
  4. Prometheus als Datenquelle auswählen und auf Import klicken.

Das Dashboard wird nun importiert und zeigt eine Vielzahl von Metriken wie CPU-Auslastung, Arbeitsspeicherverbrauch, Pod-Status und Netzwerkaktivitäten an.

Alerts sind ein wesentliches Feature, um über kritische Ereignisse im Cluster informiert zu bleiben. So lässt sich ein einfacher Alert konfigurieren:

  1. Zu einem Dashboard navigieren, das eine Metrik anzeigt, die überwacht werden soll.
  2. Auf den Titel der Metrik klicken und Edit auswählen.
  3. Zum Tab Alert wechseln und auf Create Alert klicken.
  4. Die Bedingung festlegen, die den Alert auslöst, z.B. wenn die CPU-Auslastung über 80 % steigt.
  5. Den Kommunikationskanal konfigurieren, z.B. E-Mail oder Slack, und den Alert speichern.

Fazit

Grafana ist ein vielseitiges Tool, das sich hervorragend für das Monitoring von Kubernetes-Clustern eignet. Es bietet leistungsstarke Visualisierungen, benutzerdefinierte Dashboards und Alarmfunktionen, die es ermöglichen, den Zustand und die Performance einer containerisierten Infrastruktur effizient zu überwachen. Durch die Integration mit Datenquellen wie Prometheus wird ein umfassender Überblick über die IT-Umgebung ermöglicht, sodass Probleme frühzeitig erkannt und behoben werden können.

Wer sich tiefer mit der Auswertung von Log-Daten beschäftigen möchte, sollte einen Blick auf Kibana werfen. Es bietet umfassende Möglichkeiten zur Analyse von Logs und ergänzt die Monitoring-Funktionen von Grafana perfekt.

Sie haben Fragen oder wünschen ein individuelles Angebot? Wir beraten Sie gerne.

Kontakt

Unsere Cloud Experten beraten Sie gerne und individuell.

Unser Büro

Sartoriusstraße 22

20257 Hamburg, Deutschland


Mo - Fr: 09.00 - 18.00 Uhr

Telefon
+49 40 239 69 754 0
Email
hello@bnerd.com