View a markdown version of this page

Erfassen Sie Alarme von APMs ohne direkte Integration mit EventBridge - AWS-Benutzerhandbuch zur Erkennung und Reaktion von Vorfällen

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erfassen Sie Alarme von APMs ohne direkte Integration mit EventBridge

AWS Incident Detection and Response unterstützt die Verwendung von Webhooks für die Erfassung von Alarmen von APMs von Drittanbietern, die keine direkte Integration mit Amazon haben. EventBridge

Sie können eine CloudFormation Vorlage bereitstellen oder die Integration manuell einrichten. Stellen Sie vor dem Einrichten der Integration sicher, dass die AWS Service-Linked Role (SLR) AWSServiceRoleForHealth_EventProcessor in Ihren Konten erstellt wurde.

Option 1: Verwenden CloudFormation Vorlage

Eine CloudFormation Vorlage ist verfügbar, um den Prozess der Erstellung der Integrationsinfrastruktur zu vereinfachen, die erforderlich ist, um Alarme von Ihrem APM, das keine direkte EventBridge Amazon-Integration hat, in AWS Incident Detection and Response aufzunehmen.

Überlegungen vor der Bereitstellung dieser Vorlage CloudFormation

  • Diese Lösung verwendet einen API Gateway Lambda Authorizer, um ein geheimes Token, das in der Payload von Ihrem APM übergeben wurde, mit einem eingegebenen Token zu vergleichen. AWS Secrets Manager Wenn das Token nicht übereinstimmt, wird eine Richtlinie mit einer ausdrücklichen Ablehnung zurückgegeben. Weitere Informationen finden Sie unter Lambda Authorizers.

  • Im Rahmen des Modells der AWS gemeinsamen Verantwortung liegt es in Ihrer Verantwortung, sicherzustellen, dass Sie einen Authentifizierungsansatz verwenden, der den Sicherheitsanforderungen Ihres Unternehmens entspricht. Wir empfehlen, einen ähnlichen Dienst zu verwenden AWS Secrets Manager , anstatt vertrauliche Informationen wie API-Schlüssel oder Autorisierungstoken als fest codierte Variablen zu speichern. Weitere Informationen finden Sie unter Erstellen und Verwalten von Secrets mit AWS Secrets Manager.

  • Ein weiteres Beispiel für die Implementierung von Hash-Based Message Authentication Code (HMAC) finden Sie unter receive-webhooks auf der Github-Seite von aws-samples. Weitere Informationen zur Implementierung der Token-Autorisierung finden Sie in der API Gateway-Dokumentation unter Beispiel für die TOKEN-Authorizer-Lambda-Funktion.

  • Die Lösung verwendet RateLimit, und Quota in API Gateway BurstLimit, um das Anforderungsvolumen zu steuern. Diese Tools begrenzen, wie viele Anfragen in einer bestimmten Zeit bearbeitet werden können. Dies hilft, eine Systemüberlastung zu verhindern und den Dienst stabil zu halten. Weitere Informationen zur Drosselung finden Sie im API Gateway Developer Guide.

  • Erwägen Sie die Verwendung der AWS Web Application Firewall (WAF), um das API Gateway vor bekannten schlechten IP-Adressen zu schützen. Dies reduziert das Risiko, dass Angreifer die API mit gefälschten Anfragen überfluten, die echte Protokollereignisse blockieren könnten.

  • AWS Secrets Manager Token-Werte sollten in Ihrem APM-Tool (Application Performance Monitoring) als HTTP-Header gespeichert werden. Stellen Sie sicher, dass das Token aus Sicherheitsgründen regelmäßig rotiert wird.

  • Zusätzliche Kosten fallen für Ressourcen an, die über diese CloudFormation Vorlage bereitgestellt werden (z. B. Lambda und EventBridge). Weitere Informationen zur Preisgestaltung dieser Dienste finden Sie unter AWS Preisgestaltung.

  • Entfernen Sie nach dem Testen der Integration die Anweisungen logger.info () aus der TransformLambdaFunction (Lambda-Funktion), um zu verhindern, dass Payloads in Amazon Logs erscheinen. CloudWatch

  • Stellen Sie diese CloudFormation Vorlage in jedem AWS Konto und jeder Region bereit, aus der AWS Incident Detection and Response Alarme aufnehmen muss.

Vorbereitung der CloudFormation Vorlage:

Hinweis: Bei den Integrationsschritten wird Dynatrace als Beispiel verwendet. Diese Vorlage kann jedoch für jedes APM verwendet werden, das Payloads an ein API-Gateway senden kann.

  1. Laden Sie die Vorlage herunter und öffnen Sie sie. CloudFormation

  2. Suchen Sie APIGWUsagePlan in der Vorlage. Überprüfen Sie die fürRateLimit,BurstLimit, konfigurierten Werte, Quota Limit die standardmäßig auf 20, 50 und 2000 festgelegt sind. Passen Sie die Werte an Ihre Anforderungen an.

  3. Suchen Sie AuthorizerLambdaFunction in der Vorlage. Diese Lambda-Funktion dient als Beispiel für einen Authentifizierungsmechanismus. Sie extrahiert einen Token-Wert aus einem Header namensauthorizationToken, der von Ihrem APM übergeben wird. Sie können diesen Code ändern, um ihn an die Sicherheitsrichtlinien und APM-Anforderungen Ihres Unternehmens anzupassen.

  4. Suchen Sie das TransformLambdaFunction in der Vorlage. Ersetzen Sie den Wörterbuchpfad durch den Pfad zum Namen Ihres Alarms, der in der JSON-Nutzlast von Ihrem APM gesendet wird. raw_json["detail"]["ProblemTitle"] Belassen Sie dies so, wie es für Dynatrace ist.

Bereitstellung der Vorlage: CloudFormation

  1. Öffnen Sie die CloudFormation Konsole in Ihrem Zielkonto und AWS-Region.

  2. Wählen Sie Stapel erstellen, Mit neuen Ressourcen (Standard).

    • Wählen Sie „Bestehende Vorlage auswählen“, „Eine Vorlagendatei hochladen“, „Datei auswählen“ und laden Sie dann die lokal gespeicherte CloudFormation Vorlage hoch.

  3. Geben Sie die Stack-Details an:

    • Geben Sie einen Stacknamen ein (Beispiel, DynatraceIntegrationForIDR.)

    • APMNameParameter (Beispiel, Dynatrace.)

    • Wählen Sie Weiter aus.

  4. Konfigurieren Sie die Stack-Optionen:

    • Scrollen Sie zum Ende der Seite und aktivieren Sie das Kontrollkästchen, um die Erstellung von IAM-Ressourcen mit benutzerdefinierten Namen CloudFormation zu ermöglichen.

  5. Überprüfen und erstellen

    • Vergewissern Sie sich, dass die Parameterwerte korrekt konfiguriert sind, und wählen Sie Senden.

  6. Der CloudFormation Stack stellt die Ressourcen bereit, die zur Integration Ihrer APM-Ereignisse in AWS Incident Detection and Response erforderlich sind. Warten Sie, bis der CloudFormation Stack-Status CREATE_COMPLETE lautet.

  7. Der CloudFormation Stack erstellt die folgenden Ressourcen unter der Annahme, dass der Beispielwert Dynatrace in die Parameter eingegeben und in der US-EAST-1 Region ausgeführt wurde.

    • Geheimer Name: DynatraceMySecretTokenName (Ein zufälliger geheimer Wert wird anhand des geheimen Schlüssels erstellt APMSecureToken)

    • API-Gateway-Ressourcen:

      • API-Name: Dynatrace-AWSIncidentDetectionResponse-APIGW

      • Name der Bühne: Dynatrace-Stage-Prod

      • Autorisatoren: Dynatrace-APIGW-Authorizer

      • Nutzungsplan: APIGW_ Throttling_Plan

    • Lambda-Funktionen:

      • Funktion für die Autorisierung: Dynatrace-AWSIncidentDetectionResponse-Lambda-Authorizer

      • Funktion zur Transformation: Dynatrace-AWSIncidentDetectionResponse-Lambda-Transform

    • Benutzerdefinierter EventBus Name: Dynatrace-AWSIncidentDetectionResponse-EventBus

    • IAM-Rolle:

      • TransformLambdaExecutionRole: IDR-TransformLambdaExecutionRole-us-east-1

      • AuthorizerLambdaExecutionRole: IDR-AuthorizerLambdaExecutionRole-us-east-1

  8. Notieren Sie sich die Webhook-URL und den Token-Wert:

    • Öffnen Sie die API Gateway-Konsole und wählen Sie Ihren API-Namen aus, der als Teil des CloudFormation Stacks erstellt wurde.

    • Wählen Sie in der linken Navigationsleiste Stages aus, erweitern Sie den Stagennamen mithilfe des Plus-Zeichens und wählen Sie dann POST. Notieren Sie sich die Aufruf-URL. Konfigurieren Sie diese URL in Ihrem APM als Ziel, um Webhooks für Alarmereignisse zu senden.

    • Öffnen Sie die AWS Secrets Manager Konsole und wählen Sie den Secret-Namen, der als Teil des CloudFormation Stacks erstellt wurde. (Beispiel: DynatraceMySecretTokenName. )

      • Wählen Sie auf der Registerkarte Geheimer Wert die Option Geheimen Wert abrufen aus. Sie werden den geheimen Schlüssel als sehen APMSecureToken. Notieren Sie den geheimen Wert. Teilen Sie diesen geheimen Wert mit niemandem.

Integrationstests

Testen Sie nach der Bereitstellung des Stacks die Integration, indem Sie eine Testnutzlast von Ihrem APM senden:

  1. Navigieren Sie zur Lambda-Konsole und wählen Sie die Funktion aus. APMNameParameter-AWSIncidentDetectionResponse-Lambda-Transform Wählen Sie den Tab Überwachung.

  2. Suchen Sie in den Metrikdiagrammen nach einem erfolgreichen Aufruf.

  3. Wählen Sie Amazon CloudWatch Logs anzeigen, um die Log-Streams auf Ihre Testnutzlast oder etwaige Fehler zu überprüfen.

Weitergabe Ihres Event Bus-ARN an AWS Incident Detection and Response

  1. Öffnen Sie die EventBridge Amazon-Konsole. Wählen Sie Event-Busse aus.

  2. Kopieren Sie den ARN des benutzerdefinierten Event-Busses, der als Teil des CloudFormation Stacks erstellt wurde, Beispiel: arn:aws:events:us-east-1:123456789123:event-bus/Dynatrace-AWSIncidentDetectionResponse-EventBus.

  3. Während des Onboarding-Prozesses erstellt AWS Incident Detection and Response eine verwaltete EventBridge Regel für diesen benutzerdefinierten Event-Bus, um Ihre APM-Alarme aufzunehmen.

Option 2: Manuelle Integration

Diagramm, das ein Beispiel für eine Integration mit API Gateway zeigt.

Gehen Sie wie folgt vor, um die Integration mit AWS Incident Detection and Response einzurichten.

  1. Erstellen Sie ein Amazon API Gateway, um die Payload von Ihrem APM zu akzeptieren.

  2. Definieren Sie eine Lambda-Funktion für die Autorisierung mithilfe eines Authentifizierungstokens.

  3. Führen Sie einen der folgenden Schritte aus:

    • (Empfohlen) Erstellen Sie einen EventBridge benutzerdefinierten Event-Bus mit dem Namen$YourApmName-AWSIncidentDetectionResponse-EventBus.

    • (Alternative) Verwenden Sie den EventBridge Standard-Event-Bus anstelle eines benutzerdefinierten Event-Bus.

  4. Definieren Sie eine Transform Lambda-Funktion, um die AWS Incident Detection and Response-ID an Ihre Nutzlast anzuhängen. Sie können diese Funktion auch verwenden, um nach den Ereignissen zu filtern, die Sie an AWS Incident Detection and Response senden möchten.

    • Das API Gateway muss die Transform Lambda-Funktion aufrufen, die die vom API Gateway übergebene Nutzlast transformiert.

    • Die Transform Lambda-Funktion muss transformierte Ereignisse in den in Punkt 3 oben definierten Event-Bus schreiben.

  5. Richten Sie Ihr APM so ein, dass Benachrichtigungen an die vom API Gateway generierte URL gesendet werden.