Zum Inhalt springen

Audit Logs vom Telemetry Router an Observability übertragen

Zuletzt aktualisiert am

Bevor Sie mit der Weiterleitung von Audit Logs an Ihre STACKIT Observability-Instanz beginnen, stellen Sie sicher, dass Sie Folgendes bereitstehen haben:

Richten Sie zunächst den Telemetry Router ein und generieren Sie einen Zugriffstoken dafür. Dieser Token wird benötigt, um den Telemetry Link zu autorisieren.

  1. Im STACKIT Portal wählen Sie Telemetry Router.
  2. Wählen Sie Telemetry Router erstellen, geben Sie einen Namen für den Router ein und wählen Sie Erstellen.
  3. Sobald der Status auf Aktiv steht, wählen Sie in der Instanz-Seitenleiste Zugriffstoken.
  4. Wählen Sie Zugriffstoken erstellen.
  5. Geben Sie einen Namen ein, wählen Sie Unbegrenzte Lebensdauer und wählen Sie Erstellen.
  6. Kopieren Sie Ihren generierten Token und Ihre Telemetry Router Instanz-ID an einen sicheren Ort.

Der Telemetry Link verbindet die Audit-Ereignisse Ihres Projekts mit Ihrem Router.

  1. Im STACKIT Portal wählen Sie Telemetry Link.
  2. Wählen Sie Telemetry Link erstellen.
  3. Tragen Sie die Instanz-ID und den Zugriffstoken ein, die Sie soeben in Ihrem Telemetry Router generiert haben.
  4. Wählen Sie Erstellen.

Weisen Sie Ihren Telemetry Router nun an, die gesammelten Audit-Daten über das OpenTelemetry-Protokoll (OTLP) unter Verwendung von Basic Authentication an Ihre Observability-Instanz zu senden.

  1. Navigieren Sie im STACKIT Portal zu Telemetry Router und wählen Sie Ihre Router-Instanz aus.
  2. Wählen Sie in der Instanz-Seitenleiste Ziele.
  3. Wählen Sie Ziel erstellen und geben Sie einen aussagekräftigen Namen ein.
  4. Wählen Sie als Typ die Option OpenTelemetry und wählen Sie Weiter.
  5. Wählen Sie für die Authentifizierung Basic Auth.
  6. Fügen Sie im Feld URI die OTLP ingest-URL Ihrer Observability-Instanz ein.
  7. Tragen Sie in den Feldern Benutzername und Passwort die technischen Zugangsdaten Ihrer Observability-Instanz ein.
  8. Wählen Sie Erstellen.

Das Erstellen des Ziels löst in der Regel automatisch ein erstes auditierbares Ereignis aus. Sie können Ihre eingehenden Audit-Trails direkt in Grafana einsehen.

Option A: Verwendung des vorkonfigurierten Audit Log Dashboards

Abschnitt betitelt „Option A: Verwendung des vorkonfigurierten Audit Log Dashboards“

Der einfachste Weg zur Analyse Ihrer Daten ist die Nutzung des speziell für Ihre Umgebung entwickelten Dashboards.

  1. Öffnen Sie Ihre Observability Instanz im STACKIT Portal.
  2. Navigieren Sie zum Reiter Grafana und öffnen Sie das Grafana Dashboard.
  3. Navigieren Sie im linken Menü zu Dashboards, öffnen Sie den Ordner STACKIT und wählen Sie das Audit Log Dashboard.

Option B: Abfragen von Rohdaten-Logs über Explore

Abschnitt betitelt „Option B: Abfragen von Rohdaten-Logs über Explore“

Um benutzerdefinierte Filter auf Ihren Rohdaten-Logstream anzuwenden, können Sie Loki direkt abfragen.

  1. Öffnen Sie Ihre Observability Instanz im STACKIT Portal und starten Sie die Grafana-Oberfläche.
  2. Navigieren Sie im linken Menü zu Explore.
  3. Wählen Sie Ihre Loki-Datenquelle aus dem Dropdown-Menü aus.
  4. Führen Sie eine Abfrage aus, die nach dem Servicenamen filtert (z. B. {(service_name = ~".+")}), um Ihre eingehenden Audit-Trails zu sehen.

Das ständige Beobachten von Dashboards ist für Betriebsteams nicht skalierbar. STACKIT Observability bietet eine leistungsstarke Alerting-Engine, um Sie automatisch zu benachrichtigen, wenn kritische Ereignisse in Ihrem Projekt auftreten.

Das folgende Beispiel zeigt, wie Sie einen Alarm einrichten, der ausgelöst wird, wenn ein ERROR in Ihren Audit-Trails protokolliert wird (zum Beispiel fehlgeschlagene Autorisierungsversuche, kritische Systemfehler oder fehlerhafte API-Aufrufe).

Um Alarme zu konfigurieren, verwenden Sie die Observability API. Stellen Sie sicher, dass Sie Folgendes bereitstehen haben, bevor Sie die Befehle ausführen:

  • STACKIT CLI: Sie müssen die CLI installiert haben, um den stackit curl-Wrapper zu nutzen. Anleitungen zur Authentifizierung und Nutzung finden Sie unter Interaktion mit der Observability API.
  • Alerting-Konzepte: Wenn Sie neu in der Alerting-Engine sind, empfehlen wir das Lesen der Alerting-Übersicht, um das Zusammenspiel von Regeln, Receivern und Routen zu verstehen.
  • Umgebungsvariablen: Exportieren Sie Ihre Identifiers in Ihrem Terminal, um die folgenden Konfigurationsbefehle einfach kopieren und einfügen zu können:
Terminal-Fenster
export PROJECT_ID="<ihre-projekt-id>"
export INSTANCE_ID="<ihre-instanz-id>"

Schritt 1: Erstellen der Loki-Alarmgruppe und -Regel

Abschnitt betitelt „Schritt 1: Erstellen der Loki-Alarmgruppe und -Regel“

Erstellen Sie zunächst eine Alarmgruppe, die die Auswertungslogik enthält. Da Audit Logs von Loki gespeichert und indexiert werden, senden wir diese Anfrage speziell an den Endpunkt /logs-alertgroups, damit der Loki-Ruler den LogQL-Ausdruck nativ parsen kann.

Führen Sie den folgenden Befehl aus, um die Alarmgruppe bereitzustellen:

Terminal-Fenster
stackit curl -X POST "[https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/logs-alertgroups](https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/logs-alertgroups)" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
--data '{
"name": "AuditLogAlerts",
"interval": "5m",
"rules": [
{
"alert": "AuditLogErrorDetected",
"expr": "sum(count_over_time({service_name=~\".+\"} | stackit_log_type=\"AUDIT\" | detected_level=\"ERROR\" [5m])) > 0",
"for": "1m",
"labels": {
"severity": "critical"
},
"annotations": {
"summary": "Critical Audit Log Error Detected",
"description": "An action resulting in an ERROR severity was logged in the audit trail within the last 5 minutes. Please investigate the raw logs in Grafana immediately."
}
}
]
}'
  • interval: Das System wertet Ihre Logs alle 5 Minuten aus.
  • expr: Der LogQL-Metrikausdruck prüft auf jeden Audit-Eintrag, bei dem detected_level="ERROR" gilt. Wenn die Anzahl größer als Null ist (> 0), ist die Alarmbedingung erfüllt.
  • for: Die Bedingung muss 1 Minute lang bestehen bleiben, bevor sie von Pending zu Firing wechselt, um Alarme bei kurzen, vorübergehenden Schwankungen zu vermeiden.

Definieren Sie als Nächstes, wohin die Benachrichtigung gesendet werden soll, sobald die Regel auslöst. Wir richten einen E-Mail-Empfänger für Benachrichtigungen für Ihr Betriebs- oder Sicherheitsteam ein.

Terminal-Fenster
stackit curl -X POST "[https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/receivers](https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/receivers)" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
--data '{
"name": "MyEmailReceiver",
"emailConfigs": [
{
"to": "ihre-email@beispiel.de"
}
]
}'

Der letzte Schritt besteht darin, den erstellten Alarm mit Ihrem MyEmailReceiver zu verbinden. Die Route fungiert als Schaltzentrale, die den Datenverkehr basierend auf den an die Alarmregel angehängten Labels weiterleitet.

Terminal-Fenster
stackit curl -X POST "[https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/routes](https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/routes)" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
--data '{
"receiver": "MyEmailReceiver",
"groupBy": ["job"],
"groupWait": "30s",
"groupInterval": "5m",
"repeatInterval": "4h",
"routes": [
{
"receiver": "MyEmailReceiver",
"match": {
"severity": "critical"
},
"groupBy": ["alertname"],
"groupWait": "30s",
"groupInterval": "5m",
"repeatInterval": "4h"
}
]
}'

Um sicherzustellen, dass Ihre automatisierte Alarmkonfiguration durchgängig funktioniert, sollten Sie einen Alarm auslösen und die Benachrichtigung überprüfen.

  1. Lösen Sie in Ihrem Projekt eine Aktion aus, die einen ERROR-Audit-Trail erzeugt (oder einen INFO-Trail, wenn Sie den Workaround nutzen).
  2. Warten Sie 3 bis 5 Minuten, bis die Infrastruktur das Log erfasst, den Schwellenwert auswertet und die Benachrichtigung bündelt.
  3. Überprüfen Sie Ihren angegebenen E-Mail-Posteingang, um den Erhalt des Alarms zu bestätigen.