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.
Deployment #
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 Prometheus-Datenbank (TSDB) wird auf einem Persistent Volume mit einer Größe von 5 GB gespeichert, das über den
nfs-client(NFS) bereitgestellt wird. - 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: Das Helm-Chart installiert neben dem Prometheus-Server auch den
prometheus-node-exporter(als DaemonSet auf jedem Node) undkube-state-metrics, um eine umfassende Überwachung des Clusters zu gewährleisten.
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.