Wie pushe ich VPC-Flow-Protokolle mithilfe von Amazon Kinesis Firehose an Splunk?
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
- Richten Sie eine erreichbare HTTP Event Collector (HEC)-Instance auf Splunk ein. Weitere Informationen finden Sie unter Splunk Enterprise auf AWS und Set up and use HTTP Event Collector in Splunk Web auf der Splunk-Website.
- Konfigurieren Sie die Splunk-Dateneingaben mit dem HEC auf Splunk Web.
- Erstellen Sie einen neuen HEC-Endpunkt mit einem neuen Token zur Konfiguration des Datenstroms. Weitere Informationen finden Sie unter Set up and use HTTP Event Collector in Splunk Web (auf der Splunk-Website). Wählen Sie die Option Enable indexer acknowledgement aus.
- Installieren Sie das Splunk-Add-on für Amazon Kinesis Data Firehose von der Splunkbase-Website.
Erstellen eines Kinesis-Data-Firehose-Lieferstroms
-
Erstellen Sie Ihren Lieferstrom. Wählen Sie Direkte Eingabe als Quelle .
-
Wählen Sie Splunk als Ziel.
-
Geben Sie einen Namen für den Lieferstrom ein.
Konfigurieren der Datensatztransformation mit AWS Lambda
-
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.
-
Wählen Sie für Lambda-Funktion die Option Neu erstellen aus.
-
Wählen Sie im Fenster Choose Lambda blueprint für Lambda-Vorlage die Option Kinesis Firehose CloudWatch Logs Processor aus.
-
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. -
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.
-
Wählen Sie Allow, um die Rolle zu erstellen, und kehren Sie dann zur Konfigurationsseite der Lambda-Funktion zurück.
-
Wählen Sie Funktion erstellen.
-
Um ein Timeout der Funktion zu verhindern, erhöhen Sie das Timeout von den standardmäßigen 3 Sekunden auf 1 Minute.
-
Wählen Sie Speichern.
Finalisieren des Kinesis-Data-Firehose-Lieferstroms
-
Öffnen Sie die Amazon-Kinesis-Konsole.
-
Wählen Sie im Navigationsbereich Data Firehose.
-
Wählen Sie für Ihren Lieferstrom Lambda-Funktion und dann aus der Dropdown-Liste den Namen Ihrer neuen AWS-Lambda-Funktion.
-
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. -
Wählen Sie für Splunk-Endpunkttyp die Option Roher Endpunkt aus und geben Sie dann das Authentifizierungstoken ein.
-
Wählen Sie Weiter.
-
(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.
-
Wählen Sie unter IAM-Rolle die Option Neu erstellen.
-
Geben Sie in der sich öffnenden Registerkarte unter Rollenname einen Rollennamen ein und wählen Sie dann Allow.
-
Wählen Sie Weiter.
-
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:
-
Öffnen Sie die CloudWatch-Konsole.
-
Wählen Sie im Navigationsbereich Protokolle aus.
-
Wählen Sie für Aktionen die Option Protokollgruppe erstellen aus.
-
Geben Sie einen Protokollgruppennamen ein.
-
Wählen Sie Protokollgruppe erstellen.
-
Öffnen Sie die Amazon-VPC-Konsole.
-
Wählen Sie im Navigationsbereich unter Virtual Private Cloud die Option Ihre VPCs aus.
-
Wählen Sie im Inhaltsbereich Ihre VPC aus.
-
Wählen Sie die Ansicht Flow-Protokoll.
-
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.
-
Wählen Sie Erstellen.
-
Richten Sie einen Echtzeit-Feed von der Protokollgruppe zu Ihrem Lieferstrom ein:
- Anweisungen zu AWS Lambda finden Sie unter Zugreifen auf Amazon CloudWatch-Protokolle für AWS Lambda.
- Anweisungen zum Amazon OpenSearch Service finden Sie unter CloudWatch Logs-Daten an Amazon OpenSearch Service streamen.
- Führen Sie für Kinesis Data Firehose die Schritte im Abschnitt Erstellen eines Amazon-CloudWatch-Logs-Abonnements, um ein CloudWatch Logs-Abonnement zu erstellen.
**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
-
Gewähren Sie Zugriff auf CloudWatch, um Ihren Kinesis-Data-Firehose-Stream mit den richtigen Rollenberechtigungen zu veröffentlichen.
-
Öffnen Sie AWS CLI.
-
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" } }
- 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
- 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"] } ] }
- 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
- 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
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Jahr