Prometheus #
Prometheus is an open-source monitoring and alerting toolkit designed for reliability and efficiency, particularly in cloud-native environments. It collects and stores metrics as time series data.
Components #
This Prometheus deployment includes:
- Prometheus Server: The core component for scraping, storing, and querying metrics.
- Prometheus Node Exporter: Collects host-level metrics (CPU, memory, disk I/O, network statistics) from Kubernetes nodes.
- Kube-State-Metrics: Exposes metrics about the state of Kubernetes objects (e.g., deployments, pods, nodes).
- Prometheus Pushgateway: Ermöglicht kurzlebigen und Batch-Jobs, ihre Metriken Prometheus zur Verfügung zu stellen.
Quelle #
- Prometheus: Prometheus Official Website
- Prometheus Community Helm Charts: GitHub Repository
Dokumentation #
Die offizielle Dokumentation von Prometheus ist unter prometheus.io/docs zu finden.
Funktion #
Prometheus ist ein Pull-basiertes Monitoring-System. Es fragt in regelmäßigen Abständen Metrik-Endpunkte von verschiedenen Zielen (targets) ab, speichert die Ergebnisse und stellt eine leistungsstarke Abfragesprache (PromQL) zur Analyse dieser Daten bereit. In diesem Cluster wird es verwendet, um Metriken von:
- Kubernetes-Komponenten: API-Server, kubelet, etc.
- Node Exporter: Stellt Hardware- und Betriebssystem-Metriken der einzelnen Nodes bereit.
- Anwendungen: Viele der im Cluster laufenden Anwendungen (z.B. ArgoCD, cert-manager) stellen eigene Prometheus-kompatible Metrik-Endpunkte bereit, die automatisch über
ServiceMonitor-Ressourcen erkannt werden.
Der Alertmanager ist in diesem Setup deaktiviert.
Lokale Anpassungen #
Die Konfiguration erfolgt über die values.yaml-Datei.
Wichtige Einstellungen #
- Speicher: Die Zeitreihendatenbank liegt auf einem Longhorn-Volume.
retentionSizesteht auf 5 GB — Prometheus verwirft ältere Blöcke selbst, sobald diese Größe erreicht ist, das Volume läuft also nicht voll. - Ingress: Der direkte Zugriff auf die Prometheus-Weboberfläche über einen Ingress ist derzeit deaktiviert. Die Daten werden typischerweise über ein Dashboard-Tool wie Grafana visualisiert.
- Komponenten: Neben dem Prometheus-Server installiert das Chart den
prometheus-node-exporterals DaemonSet undkube-state-metrics. - Alertmanager: Abgeschaltet (
alertmanager.enabled: false). Prometheus sammelt hier nur; alarmiert wird über Uptime Kuma.
Installation #
Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/prometheus-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:
1kubectl kustomize --enable-helm apps/prometheus | kubectl apply -n prometheus -f -Abhängigkeiten #
- Ein laufender Kubernetes-Cluster.
- Eine konfigurierte StorageClass (
nfs-clientin diesem Fall) für persistenten Speicher.