Zum Hauptinhalt springen

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-BlockKomponente der UDSPAufgabe
prometheusPrometheussammelt und speichert Metriken aus Kubernetes und den Plattformdiensten
grafanaGrafana Monitoringvisualisiert zentrale Metriken und Logs für den Plattformbetrieb
alertmanagerAlertmanagergruppiert Alarme und leitet sie an konfigurierte Empfänger weiter
lokiLokispeichert und durchsucht zentral gesammelte Container-Logs
alloyGrafana Alloyliest 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​

FeldBedeutungAuswirkung des Beispielwerts
prometheus.replicasAnzahl der Prometheus-Instanzen1: keine redundante Prometheus-Instanz
prometheus.storage_sizeangeforderte PVC-Größe je Prometheus-Instanz20Gi: bei einer Replik ein PVC mit 20 GiB
prometheus.retention_dayszeitliche Aufbewahrung der Metriken14d: Messwerte werden 14 Tage vorgehalten
grafana.storage_sizePVC für Grafana-Konfiguration, Plugins und lokale Zustände10Gi; die eigentlichen Prometheus-Metriken liegen nicht in diesem Volume
alertmanager.replicasAnzahl der Alertmanager-Instanzen1: keine redundante Alertmanager-Instanz
alertmanager.storage_sizeangeforderte PVC-Größe je Alertmanager-Instanz5Gi 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​

FeldBedeutungAuswirkung des Beispielwerts
loki.replicasAnzahl der Loki-Single-Binary-Instanzen1: eine Loki-Instanz; das aktuelle Profil verwendet einen Replikationsfaktor von 1
loki.retention_periodzeitliche Aufbewahrung der Logs168h: sieben Tage
loki.storage_sizeangeforderte PVC-Größe je Loki-Instanz20Gi für Index- und Logdaten
alloy.replicasim Inventory vorhandener ChartwertIm 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.

Startwerte sind keine Produktionsdimensionierung

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-PfadBedeutungErwarteter Wert
inv_ml.enable / ns_nameAktiviert den Observability-Stack und legt dessen Namespace fest.true oder false; Namespace
inv_ml.thanos.enableAktiviert die langfristige Prometheus-Ablage über Thanos.true oder false
inv_ml.thanos.unique_labels[].key / valueKennzeichnet Metriken dieser Plattforminstanz eindeutig.Mindestens ein stabiles Schlüssel-Wert-Paar
inv_ml.thanos.s3_storage.bucketBucket der Thanos-Langzeitablage.Vorhandener Bucketname
inv_ml.thanos.s3_storage.endpointS3-Endpunkt für Thanos.Hostname ohne http:// oder https:// gemäß Inventory-Vorlage
inv_ml.thanos.s3_storage.regionS3-Region für Thanos.Exakter Anbieterwert
inv_ml.thanos.s3_storage.access_key / secret_keyZugang des technischen Thanos-Kontos.Secrets mit minimalen Bucket-Rechten
inv_ml.prometheus.enable / replicasAktiviert Prometheus und legt dessen Instanzzahl fest.true oder false; positive Ganzzahl
inv_ml.prometheus.storage_sizePVC-Größe je Prometheus-Instanz.Kubernetes-Größe
inv_ml.prometheus.retention_daysZeitliche Aufbewahrung der Metriken.Prometheus-Dauer, z. B. 14d
inv_ml.grafana.enableAktiviert das Grafana des Observability-Stacks.true oder false
inv_ml.grafana.deploy_default_dashboardsInstalliert die mitgelieferten Plattformdashboards.true oder false
inv_ml.grafana.storage_sizePVC-Größe von Grafana.Kubernetes-Größe
inv_ml.grafana.deploy_dashboards.minioInstalliert die mitgelieferten MinIO-Dashboards.true oder false
inv_ml.grafana.deploy_dashboards.apisixInstalliert die mitgelieferten APISIX-Dashboards.true oder false
inv_ml.alertmanager.enable / replicasAktiviert Alertmanager und legt dessen Instanzzahl fest.true oder false; positive Ganzzahl
inv_ml.alertmanager.storage_sizePVC-Größe je Alertmanager-Instanz.Kubernetes-Größe
inv_ml.alertmanager.ingress.enableLegacy-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_backupSlack-Ziel für Backup-Alarme.Webhook-URL oder leer
inv_ml.alertmanager.receivers.slack_webhook_postgresSlack-Ziel für PostgreSQL-Alarme.Webhook-URL oder leer
inv_ml.alertmanager.receivers.slack_webhook_criticalSlack-Ziel für kritische Plattformalarme.Webhook-URL oder leer
inv_ml.alertmanager.receivers.slack_webhook_warningSlack-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 / replicasAktiviert Loki und legt dessen Instanzzahl fest.true oder false; positive Ganzzahl
inv_ml.loki.deploy_default_dashboardsInstalliert die mitgelieferten Loki-Dashboards.true oder false
inv_ml.loki.retention_periodZeitliche Aufbewahrung der Logs.Dauer, z. B. 168h
inv_ml.loki.storage_sizePVC-Größe je Loki-Instanz.Kubernetes-Größe
inv_ml.loki.memory_limitMemory-Limit der Loki-Container.Kubernetes-Speicherwert
inv_ml.loki.gateway_replicasReplikate des Loki-Gateways.Positive Ganzzahl
inv_ml.promtail.enableAktiviert den älteren Promtail-Logsammler.true oder false; im Standard durch Alloy ersetzt
inv_ml.alloy.enable / replicasAktiviert 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.enableExportiert PostgreSQL-Metriken nach Prometheus.true oder false
inv_ml.exporters.patroni_exporter.enableExportiert Patroni-Metriken nach Prometheus.true oder false