Zum Hauptinhalt springen
Version: Weekly Build

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 jeweiligen operativen Anforderungen passt.

Cluster-Level-Monitoring (Grafana)

Im Rahmen der regulären Codesphere-Installation wird automatisch eine Grafana-Instanz mit vordefinierten Dashboards in den Cluster deployt. Die Login-Zugangsdaten werden automatisch generiert. Die Grafana-UI ist über Port-Forwarding zu localhost erreichbar.

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. Grafana im lokalen Browser aufrufen:
    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 einloggen.
  3. Hinweis: Falls der kubectl-Zugriff nur über z. B. einen Jumphost erfolgt, kann SSH-Port-Forwarding verwendet werden, um bis zur lokalen Maschine durchzureichen: 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 hinweg. 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 Multi-Cluster-Prometheus-Aufnahme, Langzeitspeicherung und zentralisierte Abfragen.

Aktivierung 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 dieses Clusters 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 Benutzername für die Basic Authentication bei Loki.
  • cluster.monitoring.centralOtelExport.enabled: Aktiviert die Zugangsdaten-Verknüpfung für den zentralen OpenTelemetry-Export.
  • codesphere.telemetryExport.remoteEndpoint: Optionaler OTLP/HTTP-Endpunkt des zentralen OpenTelemetry-Collectors, der Telemetrie-Exporte empfängt.
  • codesphere.telemetryExport.remoteExport: Optionaler Boolean-Wert, der den Export zu codesphere.telemetryExport.remoteEndpoint aktiviert.
  • codesphere.telemetryExport.traces: Optionaler Boolean-Wert, 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-Wert, der die Generierung 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 der YAML-Datei. In der Praxis bedeutet das:

Füge diese Einträge zur 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. Wende dich an deinen Codesphere-Ansprechpartner, um die zentrale Monitoring-Infrastruktur einzurichten, bevor diese Funktion aktiviert wird.