Audit Logs vom Telemetry Router an Observability übertragen
Zuletzt aktualisiert am
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“Bevor Sie mit der Weiterleitung von Audit Logs an Ihre STACKIT Observability-Instanz beginnen, stellen Sie sicher, dass Sie Folgendes bereitstehen haben:
- STACKIT Benutzerkonto: Benutzerkonto erstellen
- STACKIT Kundenkonto: Kundenkonto erstellen
- STACKIT Projekt: Projekt erstellen
- Aktive Observability-Instanz: Sie benötigen eine laufende STACKIT Observability-Instanz.
- Technische Zugangsdaten: Sie benötigen einen technischen
<USERNAME>und ein<PASSWORD>für Ihre spezifische Instanz. Wenn Sie diese noch nicht erstellt haben, folgen Sie den Anweisungen zum Erhalt Ihrer technischen Zugangsdaten. - OTLP-Ingest-URL: Diese können Sie direkt aus dem STACKIT Portal kopieren. Öffnen Sie Ihre Observability Instanz im STACKIT Portal, wechseln Sie in den Reiter API und suchen Sie unter dem Abschnitt Logs nach OTLP ingest.
Erstellen Sie Ihre Telemetry Router-Instanz
Abschnitt betitelt „Erstellen Sie Ihre Telemetry Router-Instanz“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.
- Im STACKIT Portal wählen Sie Telemetry Router.
- Wählen Sie Telemetry Router erstellen, geben Sie einen Namen für den Router ein und wählen Sie Erstellen.
- Sobald der Status auf Aktiv steht, wählen Sie in der Instanz-Seitenleiste Zugriffstoken.
- Wählen Sie Zugriffstoken erstellen.
- Geben Sie einen Namen ein, wählen Sie Unbegrenzte Lebensdauer und wählen Sie Erstellen.
- Kopieren Sie Ihren generierten Token und Ihre Telemetry Router Instanz-ID an einen sicheren Ort.
Erstellen Sie einen Telemetry Link
Abschnitt betitelt „Erstellen Sie einen Telemetry Link“Der Telemetry Link verbindet die Audit-Ereignisse Ihres Projekts mit Ihrem Router.
- Im STACKIT Portal wählen Sie Telemetry Link.
- Wählen Sie Telemetry Link erstellen.
- Tragen Sie die Instanz-ID und den Zugriffstoken ein, die Sie soeben in Ihrem Telemetry Router generiert haben.
- Wählen Sie Erstellen.
Ziel des Routers auf Observability ausrichten
Abschnitt betitelt „Ziel des Routers auf Observability ausrichten“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.
- Navigieren Sie im STACKIT Portal zu Telemetry Router und wählen Sie Ihre Router-Instanz aus.
- Wählen Sie in der Instanz-Seitenleiste Ziele.
- Wählen Sie Ziel erstellen und geben Sie einen aussagekräftigen Namen ein.
- Wählen Sie als Typ die Option OpenTelemetry und wählen Sie Weiter.
- Wählen Sie für die Authentifizierung Basic Auth.
- Fügen Sie im Feld URI die OTLP ingest-URL Ihrer Observability-Instanz ein.
- Tragen Sie in den Feldern Benutzername und Passwort die technischen Zugangsdaten Ihrer Observability-Instanz ein.
- Wählen Sie Erstellen.
Audit-Daten in Grafana anzeigen
Abschnitt betitelt „Audit-Daten in Grafana anzeigen“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.
- Öffnen Sie Ihre Observability Instanz im STACKIT Portal.
- Navigieren Sie zum Reiter Grafana und öffnen Sie das Grafana Dashboard.
- 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.
- Öffnen Sie Ihre Observability Instanz im STACKIT Portal und starten Sie die Grafana-Oberfläche.
- Navigieren Sie im linken Menü zu Explore.
- Wählen Sie Ihre Loki-Datenquelle aus dem Dropdown-Menü aus.
- Führen Sie eine Abfrage aus, die nach dem Servicenamen filtert (z. B.
{(service_name = ~".+")}), um Ihre eingehenden Audit-Trails zu sehen.
Alarme für Audit Logs einrichten
Abschnitt betitelt „Alarme für Audit Logs einrichten“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).
Voraussetzungen für das Alerting
Abschnitt betitelt „Voraussetzungen für das Alerting“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:
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:
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 demdetected_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.
Schritt 2: Erstellen des Alert Receivers
Abschnitt betitelt „Schritt 2: Erstellen des Alert Receivers“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.
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" } ] }'Schritt 3: Erstellen der Alert Route
Abschnitt betitelt „Schritt 3: Erstellen der Alert Route“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.
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" } ] }'Konfigurierten Alarm testen
Abschnitt betitelt „Konfigurierten Alarm testen“Um sicherzustellen, dass Ihre automatisierte Alarmkonfiguration durchgängig funktioniert, sollten Sie einen Alarm auslösen und die Benachrichtigung überprüfen.
- Lösen Sie in Ihrem Projekt eine Aktion aus, die einen
ERROR-Audit-Trail erzeugt (oder einenINFO-Trail, wenn Sie den Workaround nutzen). - Warten Sie 3 bis 5 Minuten, bis die Infrastruktur das Log erfasst, den Schwellenwert auswertet und die Benachrichtigung bündelt.
- Überprüfen Sie Ihren angegebenen E-Mail-Posteingang, um den Erhalt des Alarms zu bestätigen.