Wie verwende ich Filebeat und Logstash auf Amazon Linux, um mich mit OpenSearch Service zu verbinden?
Ich möchte Filebeat und Logstash auf Amazon Linux verwenden, um eine Verbindung zu einem Amazon OpenSearch Service-Cluster herzustellen, erhalte aber eine Fehlermeldung.
Lösung
Sicherheits-Ports einrichten
Um Logstash für die Verbindung zum OpenSearch Service zu verwenden, richte deine Sicherheits-Ports so ein, dass Protokolle von Logstash weitergeleitet werden.
Führe die folgenden Schritte aus:
- Starte eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance für Filebeat und starte dann eine weitere Instance, von der Logstash Protokolle senden kann.
- Vergewissere dich, dass sich deine EC2-Instances in derselben Sicherheitsgruppe wie deine Virtual Private Cloud (VPC) für OpenSearch Service befinden.
- Stelle sicher, dass die Ports 80, 443 und 5044 in deiner Sicherheitsgruppe geöffnet sind, damit du Daten zwischen Logstash und OpenSearch Service senden kannst.
Filebeat-, Logstash- und OpenSearch Service-Konfigurationen aktualisieren
Es hat sich bewährt, Filebeat- und Logstash-Versionen zu verwenden, die deinen OpenSearch Service mit einer älteren Elasticsearch-Version abgleichen. Verwende Filebeat- und Logstash-Versionen, die deiner Domain-Version entsprechen.
Wenn du beispielsweise OpenSearch Service 1.x mit Kompatibilitätsmodus verwendest, meldet OpenSearch Service die Version als 7.10. Überprüfe die Kompatibilitätsmatrix, um die richtige Version von Filebeat und Logstash auszuwählen. Weitere Informationen findest du unter Support-Matrix auf der Elastic-Website oder Kompatibilitätsmatrizen auf der OpenSearch-Website.
Wenn du OpenSearch Service Version 1.0 oder höher verwendest, aktiviere den Kompatibilitätsmodus, wenn du deine Domain startest.
Um sicherzustellen, dass die heruntergeladene Software synchronisiert bleibt, lade Red Hat Package Managers (RPMs) auf jede Instance herunter. Führe Filebeat und Logstash nicht auf derselben Instance aus, um einen einzelnen Fehlerpunkt in deiner Pipeline zu vermeiden.
Filebeat auf der Quell-EC2-Instance installieren
Gehe wie folgt vor, um Filebeat auf der Quell-Instance zu installieren:
-
Verwende SSH, um eine Verbindung zu der Instance herzustellen, die du für Filebeat gestartet hast.
-
Führe den folgenden Befehl aus, um das RPM für die kompatible Filebeat-Version herunterzuladen:
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-oss-8.15.2-x86_64.rpm -
Führe den folgenden Befehl aus, um die Filebeat-RPM-Datei zu installieren:
rpm -ivh filebeat-oss-8.15.2-x86_64.rpm
Logstash auf einer separaten EC2-Instance installieren und konfigurieren
Führe die folgenden Schritte aus:
-
Verwende SSH, um eine Verbindung zu deiner Instance herzustellen, die du für Logstash gestartet hast.
-
Führe den folgenden Befehl aus, um die kompatible Logstash-RPM-Datei herunterzuladen:
wget https://artifacts.elastic.co/downloads/logstash/logstash-oss-8.15.2-x86_64.rpm -
Führe den folgenden Befehl aus, um Java oder OpenJDK auf deiner EC2-Instance zu installieren:
yum install java-1.8.0-*Hinweis: Der vorhergehende Befehl verwendet Java Version 8 (OpenJDK 1.8). Alle Logstash-Versionen unterstützen Java Version 8.
-
Führe den folgenden Befehl aus, um die Logstash-RPM-Datei zu installieren:
rpm -ivh logstash-oss-8.15.2-x86_64.rpm -
Führe den folgenden Befehl aus, um das Logstash-Datenverzeichnis zu öffnen:
cd /usr/share/logstash/ -
Führe den folgenden Befehl aus, um das OpenSearch Service-Plugin für Logstash zu installieren:
bin/logstash-plugin install logstash-output-opensearch -
Führe den folgenden Befehl aus, um die Installation des Logstash-Plugins zu überprüfen:
bin/logstash-plugin listHinweis: Verwende für Logstash OSS 7.13 und höher nur das logstash-output-opensearch-Plugin. Version 7.12.1 unterstützt sowohl das Plugin logstash-output-elasticsearch als auch logstash-output-opensearch.
-
Um zu überprüfen, ob die Konfigurationsverzeichnisse existieren, überprüfe die Verzeichnisse /etc/filebeat und /etc/logstash.
-
Um Protokolle über Logstash zu senden, erstelle eine Filebeat-Konfigurationsdatei unter /etc/filebeat/filebeat.yml.
Beispiel für eine Filebeat-Konfigurationsdatei:filebeat.inputs: - type: log enabled: true paths: - /var/log/*.log filebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: false setup.template.settings: index.number_of_shards: 1 index.codec: best_compression #output.elasticsearch: #hosts: ["your-domain-endpoint"] #protocol: "https" output.logstash: # The Logstash hosts hosts: ["Logstash-EC2-InstanceIP:5044"] setup.ilm.enabled: false ilm.enabled: falseHinweis: Ersetze Logstash-EC2-InstanceIP:5044 durch die IP-Adresse deiner Logstash-Instance und your-domain-endpoint durch deinen Domain-Endpunkt. Du kannst Protokolle auch direkt an OpenSearch Service senden. Weitere Informationen findest du unter logstash-output-opensearch auf der GitHub-Website.
-
Erstelle eine Logstash-Konfigurationsdatei unter /etc/logstash/conf.d/logstash.conf.
Beispiel für eine Logstash-Konfigurationsdatei:
input { beats { port => 5044 } } output { opensearch { hosts => ["https://domain-endpoint:443"] ssl => true index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" user => "my-username" password => "my-password" } }
Hinweis: Ersetze domain-endpoint, my-username und my-password durch deine Werte. Führe den folgenden Befehl aus, um die Konnektivität zu deinem OpenSearch Service-Endpunkt zu testen:
curl -XGET https://your-domain-endpoint
Hinweis: Ersetze your-domain-endpoint durch deinen Domain-Endpunkt. (Optional) Wenn du Fine-Grained Access Control (FGAC) aktiviert hast, führe den folgenden Befehl aus:
curl -u my-username:my-password -XGET https://your-domain-endpoint
Hinweis: Ersetze your-domain-endpoint durch deinen Domain-Endpunkt. Führe die folgenden Befehle aus, um die Filebeat- und Logstash-Dienste zu starten:
systemctl start filebeat
systemctl start logstash
- Um zu bestätigen, dass die Filebeat-Logs gesendet werden, führe den folgenden curl-Befehl für deine OpenSearch Service-Domain aus:
curl -XGET https://your-domain-endpoint/_cat/indices
Hinweis: Ersetze your-domain-endpoint durch deinen Domain-Endpunkt.
Beispielausgaben eines Filebeat-Indexes:
green open filebeat-7.16.2-2022.01.27 f97c4WnuQ-CtsAJJaJHUlg 1 1 1511515 0 249.7mb 124.7mb green open .kibana_1 Ioco6fUoSCGkaOvHNCL39g 1 1 1 0 7.4kb 3.7kb
green open filebeat-7.16.2-2022.01.27 f97c4WnuQ-CtsAJJaJHUlg 1 1 1511515 0 249.7mb 124.7mb green open .kibana_1 Ioco6fUoSCGkaOvHNCL39g 1 1 1 0 7.4kb 3.7kb green open filebeat-7.16.2-2022.01.28 4i8W0smlRGGFcQOaDMxonA 1 1 89 0 207.1kb 118.1kb
Wenn du Filebeat-, Logstash- und OpenSearch-Dashboards erfolgreich mit Amazon EC2 Linux konfiguriert hast, ähnelt deine Pipeline dem folgenden Beispiel:
Filebeat > Logstash > Amazon OpenSearch Service/Dashboards
401-, 403- und Logstash x-pack-Installationsfehler
Fehler „401 Unauthorized“
Wenn Logstash den Fehler „401 Unauthorized“ zurückgibt, verwendet deine OpenSearch Service-Domain eine der folgenden Sicherheitsfunktionen:
- FGAC
- Amazon Cognito-Authentifizierung
Um dieses Problem zu beheben, füge deiner Logstash-Konfigurationsdatei unter /etc/logstash/conf.d/logstash.conf Anmeldeinformationen hinzu.
Beispielkonfiguration:
output { opensearch { hosts => ["https://your-domain-endpoint"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" ilm_enabled => false user => "my-username" password => "my-password" } }
Hinweis: Ersetze your-domain-endpoint, my-username und my-password durch die Werte deiner OpenSearch Service-Domain.
Fehler „403 Forbidden“
Wenn Logstash nicht über die erforderlichen AWS Identity and Access Management (IAM)-Berechtigungen für den Zugriff auf OpenSearch Service verfügt, tritt der Fehler „403 Forbidden“ auf.
Gehe wie folgt vor, um dieses Problem zu beheben:
-
Führe den folgenden Befehl aus, um das OpenSearch Service-Plugin für Logstash zu installieren:
bin/logstash-plugin install logstash-output-opensearch -
Erstelle die folgende Richtlinie und füge sie dann der IAM-Rolle hinzu:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttp*" ], "Resource": "[Amazon-OpenSearch-Domain-ARN]" } ] }Hinweis: Ersetze Amazon-OpenSearch-Domain-ARN durch den Amazon-Ressourcennamen (ARN) deiner OpenSearch Service-Domain.
-
Aktualisiere deine Logstash-Konfigurationsdatei unter /etc/logstash/conf.d/logstash.conf.
Beispiel für eine Logstash-Konfigurationsdatei:output { opensearch { hosts => ["domain-endpoint"] ssl => true region => "example_region" index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } }Hinweis: Ersetze domain-endpoint und example-region durch die Werte deiner OpenSearch Service-Domain.
Logstash x-pack-Installationsfehler
Wenn Logstash aufgrund eines „x-pack plugin“-Fehlers nicht gestartet werden kann, führe die folgenden Schritte aus:
-
Öffne die folgende Registrierungsdatei:
/usr/share/logstash/logstash-core/lib/logstash/plugins/registry.rb -
Suche nach der folgenden Code-Zeile:
load_xpack unless LogStash::OSS -
Aktualisiere den Code auf das folgende Beispiel:
#load_xpack unless LogStash::OSS -
Um x-pack-Plugin-Startup-Fehler zu vermeiden, deaktiviere die Index Life Management (ILM)-Einstellungen in deinen Konfigurationsdateien:
Konfiguriere in Filebeat ilm.enabled: false.
Konfiguriere in Logstash ilm_enabled => false.
Ähnliche Informationen
- Themen
- Analytics
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor einem Jahr