Observability
Metriken, Logs, Monitoring-Dashboards und Plattformalarme konfigurieren.
← Zur Übersicht der Plattformkonfiguration
Der Block inv_ml installiert den Observability-Stack. Legen Sie Aufbewahrungszeiten und Speicherbedarf für Metriken und Logs gemeinsam fest. Globale Sicherungspläne werden separat unter Backups konfigurieren eingerichtet.
Das Beispiel zeigt die wichtigsten Stellgrößen. Behalten Sie die übrigen Felder aus dem default_inventory.yml des verwendeten Releases bei.
inv_ml:
enable: true
ns_name: "{{ ENVIRONMENT }}-observability-stack"
prometheus:
enable: true
replicas: 1
storage_size: 20Gi
retention_days: 14d
grafana:
enable: true
storage_size: 10Gi
alertmanager:
enable: true
replicas: 1
storage_size: 5Gi
loki:
enable: true
replicas: 1
retention_period: "168h"
storage_size: 20Gi
alloy:
enable: true
replicas: 1
Welche Komponenten damit konfiguriert werden
| Inventory-Block | Komponente der UDSP | Aufgabe |
|---|---|---|
prometheus | Prometheus | sammelt und speichert Metriken aus Kubernetes und den Plattformdiensten |
grafana | Grafana Monitoring | visualisiert zentrale Metriken und Logs für den Plattformbetrieb |
alertmanager | Alertmanager | gruppiert Alarme und leitet sie an konfigurierte Empfänger weiter |
loki | Loki | speichert und durchsucht zentral gesammelte Container-Logs |
alloy | Grafana Alloy | liest Logs auf den Cluster-Nodes und sendet sie an Loki |
inv_ml.ns_name bestimmt den gemeinsamen Namespace des Observability-Stacks, beispielsweise prd-observability-stack. Prometheus, Grafana und Alertmanager werden gemeinsam über den Prometheus-Kube-Stack installiert. Wird Prometheus deaktiviert, werden dadurch auch Grafana und Alertmanager aus diesem Helm-Release nicht ausgerollt. Loki und Alloy werden dagegen separat installiert.
Metriken, Dashboards und Alarmierung
| Feld | Bedeutung | Auswirkung des Beispielwerts |
|---|---|---|
prometheus.replicas | Anzahl der Prometheus-Instanzen | 1: keine redundante Prometheus-Instanz |
prometheus.storage_size | angeforderte PVC-Größe je Prometheus-Instanz | 20Gi: bei einer Replik ein PVC mit 20 GiB |
prometheus.retention_days | zeitliche Aufbewahrung der Metriken | 14d: Messwerte werden 14 Tage vorgehalten |
grafana.storage_size | PVC für Grafana-Konfiguration, Plugins und lokale Zustände | 10Gi; die eigentlichen Prometheus-Metriken liegen nicht in diesem Volume |
alertmanager.replicas | Anzahl der Alertmanager-Instanzen | 1: keine redundante Alertmanager-Instanz |
alertmanager.storage_size | angeforderte PVC-Größe je Alertmanager-Instanz | 5Gi für Alarmzustände und Silences |
retention_days begrenzt die Aufbewahrungszeit, nicht automatisch den maximal belegten Speicher. Ist das PVC vorher voll, gehen keine zusätzlichen 14 Tage hinein. Dimensionieren Sie storage_size deshalb anhand der Anzahl überwachter Targets, der Scrape-Intervalle und des gemessenen Wachstums in einer Testumgebung.
Logs sammeln und speichern
| Feld | Bedeutung | Auswirkung des Beispielwerts |
|---|---|---|
loki.replicas | Anzahl der Loki-Single-Binary-Instanzen | 1: eine Loki-Instanz; das aktuelle Profil verwendet einen Replikationsfaktor von 1 |
loki.retention_period | zeitliche Aufbewahrung der Logs | 168h: sieben Tage |
loki.storage_size | angeforderte PVC-Größe je Loki-Instanz | 20Gi für Index- und Logdaten |
alloy.replicas | im Inventory vorhandener Chartwert | Im aktuellen UDSP-Profil läuft Alloy als DaemonSet. Die tatsächliche Pod-Anzahl folgt daher den geeigneten Cluster-Nodes und nicht diesem Wert. |
Loki und Alloy erfüllen unterschiedliche Aufgaben: Alloy sammelt, Loki speichert und durchsucht. Wird Loki aktiviert, Alloy aber deaktiviert, entsteht dadurch noch kein automatischer Logfluss. Umgekehrt benötigt Alloy ein konfiguriertes Ziel für die gesammelten Logs.
Die angegebenen Replik- und Speicherwerte eignen sich als Ausgangspunkt für eine kleine Umgebung. Für Produktion müssen Ausfallsicherheit, PVC-Gesamtbedarf, Metrik- und Logwachstum, Aufbewahrungsfristen sowie das Backupziel gemeinsam geplant werden. Mehrere Repliken ersetzen kein Backup.
Konfigurationsfelder
Diese Felder gehören zu den globalen Blöcken außerhalb von inv_tenants. Verwenden Sie die vollständige Vorlage des ausgewählten Releases; optionale und mitgeführte Kompatibilitätsfelder sind in der Tabelle gekennzeichnet.
| Inventory-Pfad | Bedeutung | Erwarteter Wert |
|---|---|---|
inv_ml.enable / ns_name | Aktiviert den Observability-Stack und legt dessen Namespace fest. | true oder false; Namespace |
inv_ml.thanos.enable | Aktiviert die langfristige Prometheus-Ablage über Thanos. | true oder false |
inv_ml.thanos.unique_labels[].key / value | Kennzeichnet Metriken dieser Plattforminstanz eindeutig. | Mindestens ein stabiles Schlüssel-Wert-Paar |
inv_ml.thanos.s3_storage.bucket | Bucket der Thanos-Langzeitablage. | Vorhandener Bucketname |
inv_ml.thanos.s3_storage.endpoint | S3-Endpunkt für Thanos. | Hostname ohne http:// oder https:// gemäß Inventory-Vorlage |
inv_ml.thanos.s3_storage.region | S3-Region für Thanos. | Exakter Anbieterwert |
inv_ml.thanos.s3_storage.access_key / secret_key | Zugang des technischen Thanos-Kontos. | Secrets mit minimalen Bucket-Rechten |
inv_ml.prometheus.enable / replicas | Aktiviert Prometheus und legt dessen Instanzzahl fest. | true oder false; positive Ganzzahl |
inv_ml.prometheus.storage_size | PVC-Größe je Prometheus-Instanz. | Kubernetes-Größe |
inv_ml.prometheus.retention_days | Zeitliche Aufbewahrung der Metriken. | Prometheus-Dauer, z. B. 14d |
inv_ml.grafana.enable | Aktiviert das Grafana des Observability-Stacks. | true oder false |
inv_ml.grafana.deploy_default_dashboards | Installiert die mitgelieferten Plattformdashboards. | true oder false |
inv_ml.grafana.storage_size | PVC-Größe von Grafana. | Kubernetes-Größe |
inv_ml.grafana.deploy_dashboards.minio | Installiert die mitgelieferten MinIO-Dashboards. | true oder false |
inv_ml.grafana.deploy_dashboards.apisix | Installiert die mitgelieferten APISIX-Dashboards. | true oder false |
inv_ml.alertmanager.enable / replicas | Aktiviert Alertmanager und legt dessen Instanzzahl fest. | true oder false; positive Ganzzahl |
inv_ml.alertmanager.storage_size | PVC-Größe je Alertmanager-Instanz. | Kubernetes-Größe |
inv_ml.alertmanager.ingress.enable | Legacy-Option für einen Alertmanager-Ingress. | false im Gateway-API-Standardpfad beibehalten; für eine Veröffentlichung zuerst einen unterstützten Routenweg festlegen |
inv_ml.alertmanager.receivers.slack_webhook_backup | Slack-Ziel für Backup-Alarme. | Webhook-URL oder leer |
inv_ml.alertmanager.receivers.slack_webhook_postgres | Slack-Ziel für PostgreSQL-Alarme. | Webhook-URL oder leer |
inv_ml.alertmanager.receivers.slack_webhook_critical | Slack-Ziel für kritische Plattformalarme. | Webhook-URL oder leer |
inv_ml.alertmanager.receivers.slack_webhook_warning | Slack-Ziel für Warnungen. | Webhook-URL oder leer |
inv_ml.alertmanager.critical_alerts[] | Alarmnamen, die als kritisch weitergeleitet werden. | Liste vorhandener Prometheus-Alertnamen |
inv_ml.alertmanager.warning_alerts[] | Alarmnamen, die als Warnung weitergeleitet werden. | Liste vorhandener Prometheus-Alertnamen |
inv_ml.loki.enable / replicas | Aktiviert Loki und legt dessen Instanzzahl fest. | true oder false; positive Ganzzahl |
inv_ml.loki.deploy_default_dashboards | Installiert die mitgelieferten Loki-Dashboards. | true oder false |
inv_ml.loki.retention_period | Zeitliche Aufbewahrung der Logs. | Dauer, z. B. 168h |
inv_ml.loki.storage_size | PVC-Größe je Loki-Instanz. | Kubernetes-Größe |
inv_ml.loki.memory_limit | Memory-Limit der Loki-Container. | Kubernetes-Speicherwert |
inv_ml.loki.gateway_replicas | Replikate des Loki-Gateways. | Positive Ganzzahl |
inv_ml.promtail.enable | Aktiviert den älteren Promtail-Logsammler. | true oder false; im Standard durch Alloy ersetzt |
inv_ml.alloy.enable / replicas | Aktiviert Grafana Alloy; der aktuelle Rollout betreibt es als DaemonSet. | true oder false; replicas ist im Inventory vorhanden, bestimmt aber nicht die Podzahl |
inv_ml.exporters.postgres_exporter.enable | Exportiert PostgreSQL-Metriken nach Prometheus. | true oder false |
inv_ml.exporters.patroni_exporter.enable | Exportiert Patroni-Metriken nach Prometheus. | true oder false |