Zum Hauptinhalt springen
Version: Weekly Build

Cluster Monitoring

title: "Cluster Monitoring" slug: /private-cloud/cluster-monitoring sidebar_position: 1

Cluster Monitoring

Codesphere bietet zwei Monitoring-Optionen für die Private Cloud Installation: Cluster-Level Monitoring für die Überwachung einzelner Cluster sowie aggregiertes Monitoring über mehrere Cluster hinweg für unternehmensweite Transparenz. Wähle die Option, die am besten zu den betrieblichen Anforderungen passt.

Bestehender monitoring Namespace

Codesphere stellt seinen Monitoring-Stack in einem Namespace mit dem Namen monitoring bereit und geht davon aus, dass er diesen Namespace besitzt. Wenn ein Cluster bereits einen monitoring-Namespace hat (zum Beispiel durch ein zentrales Platform-Team), sollte dies vor der Installation geprüft werden – der Name ist in interne Cluster-URLs eingebunden und lässt sich nach der Installation nicht einfach umbenennen.

Cluster-Level Monitoring (Grafana)

Im Rahmen der regulären Codesphere-Installation wird automatisch eine Grafana-Instanz mit vordefinierten Dashboards im Cluster bereitgestellt. Die Login-Zugangsdaten werden automatisch generiert. Die Grafana-Oberfläche kann über Port-Forwarding auf localhost erreicht werden.

Schritte für den Zugriff auf die Grafana-Instanz:

  1. Zugangsdaten abrufen:
    1. Benutzername: admin
    2. Passwort: kubectl get secret grafana -n monitoring -o jsonpath={.data.admin-password} | base64 -d
  2. Zugriff auf Grafana im lokalen Browser:
    1. Port-Forward starten mit kubectl port-forward deployment/grafana 3000:3000 -n monitoring
    2. Im lokalen Browser localhost:3000 aufrufen
    3. Mit den Zugangsdaten aus dem vorherigen Schritt anmelden.
  3. Hinweis: Wenn der kubectl-Zugriff nur z. B. über einen Jumphost möglich ist, kann SSH-Port-Forwarding genutzt werden, um bis zum lokalen Rechner weiterzuleiten: ssh -L 3000:localhost:3000 user@jumphost

Aggregiertes Multi-Cluster-Monitoring

Für Organisationen, die mehrere Codesphere-Cluster verwalten, bietet aggregiertes Monitoring eine zentrale Übersicht über alle Installationen. Diese Option ermöglicht Prometheus Remote Write für Metriken, zentralen OpenTelemetry-Export für Traces und aus Spans abgeleitete Metriken sowie Grafana-Alloy-basierte Weiterleitung von Logs an Loki.

Codesphere empfiehlt Thanos als zentrales Monitoring-System für aggregierte Metriken. Thanos passt direkt zur OMS-Remote-Write-Konfiguration und ist gut geeignet für die Prometheus-Aufnahme über mehrere Cluster hinweg, Langzeitspeicherung und zentrale Abfragen.

Aktivieren des aggregierten Monitorings

Um aggregiertes Monitoring zu aktivieren, konfiguriere die folgenden Einstellungen in der Installations-Values-Datei, wie im Installationsleitfaden beschrieben:

cluster:
monitoring:
prometheus:
remoteWrite:
enabled: true
clusterName: production-eu-west
url: https://thanos-receive.example.com/api/v1/receive
grafanaAlloy:
enabled: true
loki:
endpoint: https://loki.example.com/loki/api/v1/push
user: loki-user
centralOtelExport:
enabled: true

codesphere:
telemetryExport:
remoteEndpoint: https://otel.example.com
remoteExport: true
traces: true
traceEndpoint: https://tempo.example.com/v1/traces
spanMetrics: true

Konfigurationsparameter

  • cluster.monitoring.prometheus.remoteWrite.enabled: Aktiviert Prometheus Remote Write.
  • cluster.monitoring.prometheus.remoteWrite.clusterName: Eindeutige Kennung für diesen Cluster im zentralen Monitoring-System.
  • cluster.monitoring.prometheus.remoteWrite.url: Remote-Write-Endpunkt des zentralen Metriken-Backends. Bei Thanos ist dies in der Regel der Thanos-Receive-Endpunkt.
  • cluster.monitoring.grafanaAlloy.enabled: Aktiviert Grafana Alloy, um Cluster-Logs an Loki zu exportieren.
  • cluster.monitoring.grafanaAlloy.loki.endpoint: Loki-Push-Endpunkt für die zentrale Log-Aggregation.
  • cluster.monitoring.grafanaAlloy.loki.user: Optionaler Basic-Auth-Benutzername für Loki.
  • cluster.monitoring.centralOtelExport.enabled: Aktiviert die Anbindung der Zugangsdaten für zentralen OpenTelemetry-Export.
  • codesphere.telemetryExport.remoteEndpoint: Optionaler OTLP/HTTP-Endpunkt des zentralen OpenTelemetry-Collectors, der Telemetrie-Exporte empfängt.
  • codesphere.telemetryExport.remoteExport: Optionaler Boolean, der den Export an codesphere.telemetryExport.remoteEndpoint aktiviert.
  • codesphere.telemetryExport.traces: Optionaler Boolean, der den Trace-Export an ein externes Tracing-Backend wie Tempo aktiviert.
  • codesphere.telemetryExport.traceEndpoint: Optionaler OTLP-Endpunkt des externen Tracing-Backends. Erforderlich, wenn codesphere.telemetryExport.traces auf true gesetzt ist.
  • codesphere.telemetryExport.spanMetrics: Optionaler Boolean, der die Erzeugung und den Export von Span-basierten Metriken über den spanmetrics-Connector aktiviert.

Zugangsdaten

OMS speichert die Passwörter für Prometheus Remote Write, Loki und zentrales OpenTelemetry im generierten Secrets-Vault und nicht im Klartext in YAML. In der Praxis bedeutet das:

Füge diese Einträge zu prod.vault.yaml hinzu:

secrets:
- name: promRemoteWriteUser
fields:
password: <prometheus-remote-write-user>
- name: promRemoteWritePassword
fields:
password: <prometheus-remote-write-password>
- name: lokiGatewayBasicAuthPassword
fields:
password: <loki-password>
- name: centralOtelCreds
fields:
username: <central-otel-export-username>
password: <central-otel-export-password>

hinweis

Aggregiertes Monitoring erfordert eine vorherige Abstimmung mit dem Codesphere SRE-Team. Kontaktiere den zuständigen Codesphere-Ansprechpartner, um die zentrale Monitoring-Infrastruktur einzurichten, bevor diese Funktion aktiviert wird.