Wie pushe ich VPC-Flow-Protokolle mithilfe von Amazon Kinesis Firehose an Splunk?

Lesedauer: 6 Minute
0

Ich möchte die Integration meiner AWS-Daten mit Splunk verbessern, wenn ich Daten aus AWS-Quellen an einen Splunk-Cluster übertrage.

Lösung

**Hinweis:**Kinesis Data Firehose unterstützt keine Application Load Balancer oder Network Load Balancer. Verwenden Sie stattdessen einen Classic Load Balancer. Stellen Sie sicher, dass Sie auf Dauer basierende Sticky-Sessions zulassen und den Ablauf von Cookies deaktivieren. Weitere Informationen zur Behebung von Zustellungsstream-Problemen mit Splunk-Endpunkten finden Sie unter Daten, die nicht an Splunk geliefert wurden.

Voraussetzungen

Erstellen eines Kinesis-Data-Firehose-Lieferstroms

  1. Erstellen Sie Ihren Lieferstrom. Wählen Sie Direkte Eingabe als Quelle .

  2. Wählen Sie Splunk als Ziel.

  3. Geben Sie einen Namen für den Lieferstrom ein.

Konfigurieren der Datensatztransformation mit AWS Lambda

  1. Konfigurieren Sie die Datensatztransformation. **Hinweis:**Wählen Sie unter Transformieren Sie Quelldatensätze mit AWS Lambda die Option Aktiviert für Record transformation aus. CloudWatch sendet die Protokolle als komprimierte GZIP-Dateien und Amazon Kinesis muss diese Dateien extrahieren, bevor Sie sie verwenden können.

  2. Wählen Sie für Lambda-Funktion die Option Neu erstellen aus.

  3. Wählen Sie im Fenster Choose Lambda blueprint für Lambda-Vorlage die Option Kinesis Firehose CloudWatch Logs Processor aus.

  4. Wählen Sie die neue Registerkarte, die sich in Ihrem Browser öffnet, um die neue Lambda-Funktion zu erstellen:
    Geben Sie unter Name einen Namen für die Lambda-Funktion ein.
    Wählen Sie unter Rolle die Option Benutzerdefinierte Rolle erstellen aus.

  5. Wählen Sie die neue Registerkarte, die in Ihrem Browser geöffnet wird, um eine neue AWS Identity and Access Management (IAM)-Rolle zu erstellen. Stellen Sie sicher, dass der Rollenname lambda_basic_execution lautet.

  6. Wählen Sie Allow, um die Rolle zu erstellen, und kehren Sie dann zur Konfigurationsseite der Lambda-Funktion zurück.

  7. Wählen Sie Funktion erstellen.

  8. Um ein Timeout der Funktion zu verhindern, erhöhen Sie das Timeout von den standardmäßigen 3 Sekunden auf 1 Minute.

  9. Wählen Sie Speichern.

Finalisieren des Kinesis-Data-Firehose-Lieferstroms

  1. Öffnen Sie die Amazon-Kinesis-Konsole.

  2. Wählen Sie im Navigationsbereich Data Firehose.

  3. Wählen Sie für Ihren Lieferstrom Lambda-Funktion und dann aus der Dropdown-Liste den Namen Ihrer neuen AWS-Lambda-Funktion.

  4. Geben Sie unter Ziel-Einstellungen die Details des Splunk-HECs ein, einschließlich des Splunk-HEC-Endpunkts, den Sie erstellt haben.
    **Hinweis:**Sie müssen den Splunk-HEC-Endpunkt mit einem gültigen SSL-Zertifikat beenden. Verwenden Sie den passenden DNS-Hostnamen, um eine Verbindung zu Ihrem HEC-Endpunkt herzustellen. Das Format für den Cluster-Endpunkt ist https://IHR-ENDPUNKT.splunk.com:8088.

  5. Wählen Sie für Splunk-Endpunkttyp die Option Roher Endpunkt aus und geben Sie dann das Authentifizierungstoken ein.

  6. Wählen Sie Weiter.

  7. (Optional) Wählen Sie einen vorhandenen Amazon Simple Storage Service (Amazon S3)-Bucket oder erstellen Sie einen neuen, um fehlgeschlagene Ereignisse oder alle Ereignisse zu sichern. Stellen Sie sicher, dass Sie Amazon-S3-bezogene Einstellungen wie Pufferbedingungen, Komprimierungs- und Verschlüsselungseinstellungen sowie Optionen zur Fehlerprotokollierung im Delivery Stream Wizard konfigurieren.

  8. Wählen Sie unter IAM-Rolle die Option Neu erstellen.

  9. Geben Sie in der sich öffnenden Registerkarte unter Rollenname einen Rollennamen ein und wählen Sie dann Allow.

  10. Wählen Sie Weiter.

  11. Wählen Sie Lieferstrom erstellen aus.

Konfigurieren von Amazon VPC Flow-Protokollen

Hinweis: Wenn Sie über ein Amazon VPC Flow-Protokoll verfügen, fahren Sie mit dem nächsten Abschnitt fort: Erstellen eines Amazon-CloudWatch-Logs-Abonnements. Wenn Sie kein VPC-Flow-Protokoll haben, führen Sie die folgenden Schritte aus:

  1. Öffnen Sie die CloudWatch-Konsole.

  2. Wählen Sie im Navigationsbereich Protokolle aus.

  3. Wählen Sie für Aktionen die Option Protokollgruppe erstellen aus.

  4. Geben Sie einen Protokollgruppennamen ein.

  5. Wählen Sie Protokollgruppe erstellen.

  6. Öffnen Sie die Amazon-VPC-Konsole.

  7. Wählen Sie im Navigationsbereich unter Virtual Private Cloud die Option Ihre VPCs aus.

  8. Wählen Sie im Inhaltsbereich Ihre VPC aus.

  9. Wählen Sie die Ansicht Flow-Protokoll.

  10. Wählen Sie Flow-Protokoll erstellen:

  • Wählen Sie für Filter die Option Alle.
  • Wählen Sie für Zielprotokollgruppe die Protokollgruppe aus, die Sie gerade erstellt haben.
  • Wählen Sie eine IAM-Rolle, die es Ihrer Amazon VPC ermöglicht, Protokolle in CloudWatch zu veröffentlichen. Wenn Sie keine entsprechende IAM-Rolle haben, wählen Sie unter IAM-Rolle die Option Berechtigungen einrichten und dann Neue IAM-Rolle erstellen. Behalten Sie die Standardeinstellungen bei.
  • Wählen Sie Erlauben, um die Rolle VPCFlowLogs zu erstellen und der Zielprotokollgruppe zuzuordnen.
  1. Wählen Sie Erstellen.

  2. Richten Sie einen Echtzeit-Feed von der Protokollgruppe zu Ihrem Lieferstrom ein:

**Hinweis:**Wenn beim Ausführen von Befehlen in AWS CLI Fehler auftreten, vergewissern Sie sich, dass Sie eine aktuelle Version von AWS CLI verwenden.

Erstellen eines Amazon-CloudWatch-Logs-Abonnements

  1. Gewähren Sie Zugriff auf CloudWatch, um Ihren Kinesis-Data-Firehose-Stream mit den richtigen Rollenberechtigungen zu veröffentlichen.

  2. Öffnen Sie AWS CLI.

  3. Verwenden Sie die folgende JSON-Datei, um Ihre Vertrauensrichtlinie zu erstellen (z. B. TrustPolicyforCWLToFireHose.json). Ersetzen Sie YOUR-RESOURCE-REGION durch die AWS-Region Ihrer Ressource.

{
  "Statement": {
    "Effect": "Allow",
    "Principal": { "Service": "logs.YOUR-RESOURCE-REGION.amazonaws.com" },
    "Action": "sts:AssumeRole"
  }
}
  1. Führen Sie den folgenden Befehl aus, um die Rolle mit den Berechtigungen aus der Vertrauensrichtlinie zu erstellen:
$ aws iam create-role --role-name CWLtoKinesisFirehoseRole --assume-role-policy-document file://TrustPolicyForCWLToFireHose.json
  1. Verwenden Sie die folgende JSON-Datei, um Ihre IAM-Richtlinie zu erstellen (z. B. PermissionPolicyForCWLToFireHose.json). Ersetzen Sie YOUR-AWS-ACCT-NUM durch Ihre AWS-Kontonummer, YOUR-RESOURCE-REGION durch die Region Ihrer Ressource und FirehoseSplunkDeliveryStream durch den Namen Ihres Lieferstroms.
{
    "Statement":[
      {
        "Effect":"Allow",
        "Action":["firehose:PutRecord"],
        "Resource":["arn:aws:firehose:YOUR-RESOURCE-REGION:YOUR-AWS-ACCT-NUM:deliverystream/FirehoseSplunkDeliveryStream"]
      },
      {
        "Effect":"Allow",
        "Action":["iam:PassRole"],
        "Resource":["arn:aws:iam::YOUR-AWS-ACCT-NUM:role/CWLtoKinesisFirehoseRole"]
      }
    ]
}
  1. Führen Sie den folgenden Befehl aus, um die IAM-Richtlinie an die Rolle anzuhängen:
$ aws iam put-role-policy
    --role-name CWLtoKinesisFirehoseRole
    --policy-name Permissions-Policy-For-CWL
    --policy-document file://PermissionPolicyForCWLToFireHose.json
  1. Führen Sie den folgenden Befehl aus, um einen Abonnementfilter zu erstellen. Ersetzen Sie YOUR-AWS-ACCT-NUM durch Ihre AWS-Kontonummer, YOUR-RESOURCE-REGION durch die Region Ihrer Ressource und FirehoseSplunkDeliveryStream durch den Namen Ihres Lieferstroms.
$ aws logs put-subscription-filter
   --log-group-name " /vpc/flowlog/FirehoseSplunk"
   --filter-name "Destination"
   --filter-pattern ""
   --destination-arn "arn:aws:firehose:YOUR-RESOURCE-REGION:YOUR-AWS-ACCT-NUM:deliverystream/FirehoseSplunkDeliveryStream"
   --role-arn "arn:aws:iam::YOUR-AWS-ACCT-NUM:role/CWLtoKinesisFirehoseRole"

Weitere Informationen zu Abonnementfiltern finden Sie unter Example 3: Subscription filters with Amazon Kinesis Data Firehose.

Verwandte Informationen

Unterstützung der Datenerfassung in Splunk mithilfe von Amazon Kinesis Data Firehose

Einstellungen für das Ziel

Steuern des Zugriffs mit Amazon Kinesis Data Firehose

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr