Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zur Registrierung für einen kostenlosen Account finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. In der Übung ersetzen Sie diese Werte durch die Werte, die für Ihre Cloud-Umgebung spezifisch sind.
Oracle Cloud Infrastructure-Logs mit Fluentd in Elastic Cloud aufnehmen
Einführung
Oracle Cloud Infrastructure (OCI) bietet umfassende Loggingfunktionen, die Integration dieser Logs in externe Systeme wie Elastic erfordert jedoch einen robusten Logversender. Es gibt viele beliebte Open-Source-Datensammler, mit denen Sie die Datenerfassung und -nutzung vereinheitlichen können.
Weitere Informationen finden Sie unter: Oracle Cloud Infrastructure-Logs mit Log-Shippern in SIEM-Plattformen von Drittanbietern aufnehmen und Oracle Cloud Infrastructure-Logs mit Vector an New Relic senden, um zu bestimmen, welche Lösung am besten zu Ihrem Anwendungsfall passt.
In diesem Tutorial führen wir die detaillierten Aufgaben durch, mit denen Fluentd als Logversender verwendet werden kann, um OCI-Logs in Elastic Cloud aufzunehmen.
Fluentd
Fluentd ist ein robuster Open-Source-Datensammler, der von Treasure Data entwickelt wurde und jetzt Teil von CNCF ist, um die Erfassung, Transformation und Verteilung von Logdaten über verschiedene Systeme hinweg zu optimieren. Sie fungiert als einheitliche Logging-Ebene, die Protokolle aus verschiedenen Quellen sammelt, sie mit Parser- und Filter-Plug-ins verarbeitet und an Ziele wie Elastic, Kafka oder Cloud-Speicher weiterleitet. Fluentd kann als Logversender auf einer Compute-Instanz bereitgestellt werden, um Logs aus dem OCI Logging-Service zu erfassen und für eine verbesserte Überwachung und Analyse an Elastic bereitzustellen.
Sobald Fluentd Protokolle an Elastic weiterleitet, wird die wahre Kraft der Protokolldaten freigeschaltet. Elastische Sicherheitsindizes und speichern die Logdaten in einem strukturierten Format, sodass leistungsstarke Such-, Analyse- und Visualisierungsfunktionen möglich sind. Durch die Nutzung der Volltextsuchmaschine von Elastic können Benutzer Protokolle in Echtzeit abfragen und aggregieren, Muster aufdecken, Anomalien identifizieren und verwertbare Erkenntnisse generieren. Darüber hinaus können Protokolle mit Tools wie Kibana über interaktive Dashboards visualisiert werden. Dabei werden Rohprotokolldaten in intuitive visuelle Darstellungen umgewandelt, die bei der Überwachung der Anwendungsleistung, der Erkennung von Sicherheitsbedrohungen und der effektiven Behebung von Betriebsproblemen helfen.
Betrachten wir die allgemeine Darstellung der Lösungsarchitektur wie in der folgenden Abbildung dargestellt.
Ziele
-
Richten Sie mit OCI Connector Hub eine Logweiterleitungspipeline von OCI Logging zu OCI Streaming ein.
-
Installieren und konfigurieren Sie Fluentd für eine sichere Nutzung aus OCI Streaming.
-
Leiten Sie Logs mit den eingegebenen Kafka-Plug-ins von Fluentd mit strukturiertem JSON an Elastic weiter.
Voraussetzungen
-
Ein Elastic Cloud-Account mit Zugriff auf die Elastic Security-Konsole. Weitere Informationen finden Sie in SIEM for Elastic.
-
Ein Linux-basierter Server, der für die Fluentd-Installation bereitgestellt wird, mit robuster Netzwerkkonnektivität, um nahtlos mit Ihrer Elastic-Umgebung zu kommunizieren.
-
Benutzer in OCI müssen über die erforderlichen Policys für OCI Streaming-, OCI Connector Hub- und OCI Logging-Services verfügen, um die Ressourcen zu verwalten. Weitere Informationen zur Policy-Referenz aller Services finden Sie in der Policy-Referenz.
Aufgabe 1: OCI für Logstreaming vorbereiten
-
Aktivieren Sie Logs in OCI Logging.
Für dieses Tutorial verwenden wir Auditlogs. Sie können auch Service- oder benutzerdefinierte Logs basierend auf Ihrem Anwendungsfall aktivieren. Weitere Informationen finden Sie unter Logging - Überblick.
-
Streams erstellen
Bevor Fluentd mit dem Versand von Protokollen beginnen kann, benötigen die Daten eine konsistente Quelle. In OCI ist diese Quelle ein Kafka-kompatibler Stream. Stellen Sie sich vor, Sie richten einen Stream als zentralisierte Datenpipeline für Logs ein. Jedes Logereignis, das in OCI von Compute-Instanzen zu Networking-Services generiert wird, kann an diesen Stream weitergeleitet werden. Dadurch werden nicht nur Protokolldaten konsolidiert, sondern auch sichergestellt, dass Fluentd über einen einzigen Endpunkt verfügt, aus dem Daten abgerufen werden können.
-
Informationen zum Erstellen eines Streams finden Sie unter Streams erstellen.
-
Navigieren Sie zu Streampool, und notieren Sie sich den Streamnamen, den Bootstrap-Server, den Benutzernamen aus dem Streampool und das generierte Authentifizierungstoken für den Benutzer. Weitere Informationen finden Sie unter Authentifizierungstoken.
All dies benötigen wir in unserer Fluentd-Konfigurationsdatei.
-
-
Erstellen Sie einen OCI Connector Hub.
OCI Connector Hub fungiert als Orchestrator und leitet Logs von verschiedenen Services an den Stream weiter. Mit OCI Connector Hub können Sie Connectors definieren, die Logs aus dem OCI Logging-Service mit Auditlogs, Servicelogs und benutzerdefinierten Logs verschieben, und sie an den Stream weiterleiten. Geben Sie die folgenden Informationen ein, um einen Connector-Hub zu erstellen.
- Quelle: Wählen Sie Logging aus.
- Ziel: Wählen Sie Streaming aus (wählen Sie den in Schritt 2 erstellten Stream aus).
- Wählen Sie Policys automatisch erstellen aus, um die erforderlichen OCI-IAM-Policys zu generieren.
Weitere Informationen finden Sie unter Connector mit einer Logging-Quelle erstellen.
Aufgabe 2: Fluentd installieren und konfigurieren
Wenn der Stream läuft, ist es an der Zeit, Fluentd einzurichten. Hier besteht das Ziel darin, Fluentd auf einer OCI Compute-Instanz bereitzustellen und so zu konfigurieren, dass Logs aus dem Stream verwendet werden.
Warum eine OCI Compute-Instanz? Betrachten Sie es als den Vermittler, der die Lücke zwischen OCI-Logs und Elastic Cloud überbrückt. Hier wird Fluentd ausgeführt, Daten aus dem Stream aufgenommen und an Elastic weitergeleitet.
Stellen Sie eine SSH-Verbindung zur Instanz her, und installieren Sie Fluentd mit dem Paketmanager für Schatzdaten.
curl -fsSL https://toolbelt.treasuredata.com/sh/install-redhat-fluent-package5-lts.sh | sh
Überprüfen Sie die Version, die bestätigt, dass Fluentd installiert ist.
fluentd --version
Hinweis: Wenn Sie die Compute-Instanz in OCI hochfahren, stellen Sie sicher, dass das Add-on für das benutzerdefinierte Log deaktiviert ist.
Aufgabe 3: Plug-ins in Kafka und Elasticsearch installieren
Jetzt, da Fluentd bereit ist, muss es mit Plugins ausgestattet sein. In dieser Architektur fungiert Fluentd sowohl als Konsument von Streamdaten als auch als Spediteur von Elasticsearch. Dazu müssen zwei Schlüssel-Plugins installiert werden:
-
Kafka-Plug-in: Ermöglicht Fluentd, Daten aus dem OCI-Stream zu konsumieren.
-
Elasticsearch-Plug-in: Leiten Sie Logdaten an Elasticsearch weiter.
Führen Sie den folgenden Befehl durch, um beide Plug-ins zu installieren.
fluent-gem install fluent-plugin-kafka fluent-plugin-elasticsearch
Aufgabe 4: Ausgabelogs mit stdout
prüfen
Bevor Sie Logs an Elasticsearch weiterleiten, sollten Sie prüfen, ob der Logaufnahmefluss funktioniert. Hier kommt stdout
ins Spiel. Es stellt sicher, dass die Daten korrekt aus dem Stream fließen, bevor es an Elastic gesendet wird.
-
Um dies zu implementieren, aktualisieren Sie die Fluentd-Konfiguration unter
/etc/fluent/fluentd.conf
.<source> @type kafka_group brokers <stream_endpoint>:9092 topics <stream_topic> format json username <username> password <password> ssl_ca_cert /etc/fluent/kafka_chain.pem sasl_over_ssl true consumer_group fluentd-group <parse> @type json </parse> </source> <match **> @type stdout </match>
-
Ersetzen Sie
<stream_endpoint>
und<stream_topic>
durch den bootstrap-Server und den Streamnamen entsprechend. Ersetzen Sie außerdem<username>
und<password>
durch die Details aus den Kafka-Verbindungseinstellungen in OCI, die in Aufgabe 1.2 erfasst wurden. Der Benutzername muss ebenfalls an die Domain angehängt werden, z.B.<tenancy_name>/<domain_name>/<username>/ocid1.streampool.oc1.##############
.Hinweis:
-
Die
ssl_ca_cert
muss eine vollständige Zertifikatskette im PEM-Format sein, die Serverzertifikate (OCI Streaming-Zertifikate), Zwischen- und Root-Zertifikate umfassen sollte. -
Um eine vertrauenswürdige TLS-Verbindung mit OCI Streaming herzustellen, extrahieren Sie zunächst den Server und die Zwischenzertifikate mit dem Befehl
openssl
:openssl s_client -showcerts -connect cell-1.streaming.us-ashburn-1.oci.oraclecloud.com:9092 -servername cell-1.streaming.us-ashburn-1.oci.oraclecloud.com < /dev/null | \\nsed -n '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p' > kafka_chain.pem
. -
Dadurch wird die Zertifikatskette in einer Datei namens
kafka_chain.pem
gespeichert. Laden Sie als Nächstes das DigiCert Global Root G2-Zertifikat, das von OCI Streaming verwendet wird, von der Seite DigiCert Root Certificates im PEM-Format herunter, und speichern Sie es alsroot.pem
. Hängen Sie das Root-Zertifikat schließlich mit dem Befehlcat root.pem >> kafka_chain.pem
an Ihre Chain-Datei an. -
Dies führt zu einer vollständigen Zertifikatskette in
kafka_chain.pem
, die von TLS-Clients für eine sichere Konnektivität mit OCI Streaming verwendet werden kann.
-
-
Führen Sie den folgenden Befehl aus, um Fluentd zu starten und die Ausgabe zu überwachen.
$ sudo systemctl restart fluentd.service $ sudo systemctl status fluentd.service $ sudo cat /var/log/fluent/fluentd.log
Wenn alles funktioniert, werden Logs aus dem Stream in den Fluentd-Logs angezeigt. Dadurch wird sichergestellt, dass die Datenpipeline wie erwartet funktioniert, bevor sie weitergeht.
Aufgabe 5: Logs an Elastic Cloud weiterleiten
Nachdem die Pipeline überprüft wurde, ist es an der Zeit, Fluentd neu zu konfigurieren, um Logs an Elastic Cloud weiterzuleiten. Diese Aufgabe transformiert Fluentd von einem einfachen Log-Consumer zu einem vollwertigen Log-Shipper.
-
Aktualisieren Sie die Konfiguration, um das Elastic-Ausgabe-Plug-in einzuschließen.
<source> @type kafka_group brokers <stream_endpoint>:9092 topics <stream_topic> format json username <tenancy_name>/<domain_name>/<username>/ocid1.streampool.oc1.iad.########## password <password> ssl_ca_cert /etc/fluent/kafka_chain.pem sasl_over_ssl true consumer_group fluentd-group </source> <match **> @type elasticsearch cloud_id ########### cloud_auth 'elastic:##########' logstash_prefix fluentd logstash_format true index_name fluentd </match>
Hinweis: Die Cloud-ID ist eine eindeutige ID, die Ihrem gehosteten Elasticsearch-Cluster in Elastic Cloud zugewiesen wird. Alle Deployments erhalten automatisch eine Cloud-ID. Informationen zum Suchen Ihrer Cloud-ID und Ihres Kennworts für den elastischen Benutzer finden Sie unter Cloud-ID suchen.
-
Starten Sie Fluentd neu, um die Änderungen zu übernehmen.
sudo systemctl restart fluentd.service
Aufgabe 6: Insights in Elasticsearch validieren und entsperren
Die Logs werden erfolgreich in Elastic übertragen, die Daten werden indiziert und für eine effiziente Abfrage strukturiert. Mit der Volltextsuchmaschine von Elastic können Sie Daten in Echtzeit suchen, aggregieren und visualisieren.
Es ist wichtig, eine Datenansicht zu erstellen. Diese Datenansicht dient als strukturierte Ebene, die Logdaten organisiert und es Ihnen ermöglicht, wertvolle Erkenntnisse nahtlos zu untersuchen und zu extrahieren. Weitere Informationen finden Sie unter Datenansichten.
Verwandte Links
-
Oracle Cloud Infrastructure-Logs mit Log-Shippern in SIEM-Plattformen von Drittanbietern aufnehmen
-
Oracle Cloud Infrastructure-Logs mit Vector an New Relic senden
Bestätigungen
- Autoren - Gautam Mishra (Principal Cloud Architect), Chaitanya Chintala (Cloud Security Advisor)
Weitere Lernressourcen
Sehen Sie sich weitere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um ein Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Use Fluentd to Ingest Oracle Cloud Infrastructure Logs into Elastic Cloud
G35555-01
Copyright ©2025, Oracle and/or its affiliates.