Remarques :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction à Oracle Cloud Infrastructure Free Tier.
- Il utilise des exemples de valeur pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. Lorsque vous terminez votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Utilisation de Fluentd pour assimiler les journaux Oracle Cloud Infrastructure dans Elastic Cloud
Introduction
Oracle Cloud Infrastructure (OCI) fournit des fonctionnalités de journalisation complètes, mais l'intégration de ces journaux à des systèmes externes tels qu'Elastic nécessite un expéditeur de journaux robuste. De nombreux collecteurs de données open source populaires vous permettent d'unifier la collecte et la consommation de données.
Pour plus d'informations, reportez-vous aux sections Ingest Oracle Cloud Infrastructure Logs into Third-Party SIEM Platforms using Log Shippers et Send Oracle Cloud Infrastructure Logs to New Relic using Vector afin de déterminer la solution qui convient le mieux à votre cas d'utilisation.
Dans ce tutoriel, nous passerons en revue les tâches détaillées permettant d'utiliser Fluentd en tant qu'expéditeur de journaux pour l'inclusion de journaux OCI dans Elastic Cloud.
Fluentd
Fluentd est un collecteur de données open source fiable développé par Treasure Data et désormais membre de la CNCF, conçu pour rationaliser la collecte, la transformation et la distribution des données de journal sur différents systèmes. Il agit comme une couche de journalisation unifiée qui rassemble les journaux de diverses sources, les traite à l'aide de modules d'extension d'analyseur et de filtre, et les transfère vers des destinations telles que Elastic, Kafka ou le stockage cloud. Fluentd peut être déployé en tant qu'expéditeur de journaux sur une instance de calcul pour capturer les journaux du service OCI Logging et les fournir à Elastic pour une surveillance et une analyse améliorées.
Une fois que Fluentd transfère les journaux vers Elastic, la puissance réelle des données de journal est déverrouillée. La sécurité élastique indexe et stocke les données de journal dans un format structuré, ce qui permet de puissantes fonctionnalités de recherche, d'analyse et de visualisation. En tirant parti du moteur de recherche en texte intégral d'Elastic, les utilisateurs peuvent interroger et agréger les journaux en temps réel, découvrir des modèles, identifier des anomalies et générer des informations exploitables. En outre, avec des outils tels que Kibana, les journaux peuvent être visualisés via des tableaux de bord interactifs, transformant les données brutes des journaux en représentations visuelles intuitives qui aident à surveiller les performances des applications, à détecter les menaces de sécurité et à résoudre efficacement les problèmes opérationnels.
Examinons la représentation de haut niveau de l'architecture de la solution, comme indiqué dans l'image suivante.
Objectifs
-
Configurez un pipeline de transfert de journal d'OCI Logging vers OCI Streaming à l'aide d'OCI Connector Hub.
-
Installer et configurer Fluentd pour une utilisation sécurisée à partir d'OCI Streaming.
-
Transférez les journaux à Elastic à l'aide des modules d'extension Kafka d'entrée de Fluentd avec le format JSON structuré.
Prérequis
-
Un compte Elastic Cloud avec accès à la console Elastic Security. Pour plus d'informations, reportez-vous à la section SIEM for Elastic.
-
Un serveur Linux, provisionné pour l'installation Fluentd, avec une connectivité réseau robuste pour communiquer de manière transparente avec votre environnement Elastic.
-
Les utilisateurs d'OCI doivent disposer des stratégies requises pour les services OCI Streaming, OCI Connector Hub et OCI Logging afin de gérer les ressources. Pour plus d'informations sur la référence de stratégie de tous les services, reportez-vous à Référence de stratégie.
Tâche 1 : préparation d'OCI pour la transmission en continu de journaux
-
Activez les journaux dans OCI Logging.
Pour ce tutoriel, nous allons utiliser les journaux d'audit. Vous pouvez également activer le service ou les journaux personnalisés en fonction de votre cas d'emploi. Pour plus d'informations, reportez-vous à Présentation de Logging.
-
Création d'un flux de données.
Pour que Fluentd puisse démarrer l'expédition des journaux, les données doivent disposer d'une source cohérente. Dans OCI, cette source est un flux compatible avec Kafka. Imaginez la configuration d'un flux en tant que pipeline de données centralisé pour les journaux. Chaque événement de journal généré dans OCI à partir des instances de calcul vers les services réseau peut être dirigé vers ce flux. Cela permet non seulement de consolider les données de journal, mais également de garantir que Fluentd dispose d'une adresse unique à partir de laquelle extraire les données.
-
Pour créer un flux, reportez-vous à Création d'un flux de données.
-
Accédez au pool de flux de données et notez le nom de flux de données, le serveur Bootstrap, le nom d'utilisateur du pool de flux de données et le jeton d'authentification généré pour l'utilisateur. Pour plus d'informations, reportez-vous à la section auth token.
Nous aurons besoin de tous ces éléments dans notre fichier de configuration Fluentd.
-
-
Créez un hub OCI Connector.
OCI Connector Hub agit en tant qu'orchestrateur, acheminant les journaux de divers services vers le flux. Avec OCI Connector Hub, vous pouvez définir des connecteurs qui déplacent des journaux à partir du service OCI Logging, qui contient des journaux d'audit, des journaux de service et des journaux personnalisés, et les diriger vers le flux. Pour créer un hub de connecteurs, entrez les informations suivantes.
- Source : sélectionnez Logging.
- Destination : sélectionnez Diffusion en continu (sélectionnez le flux créé à l'étape 2).
- Sélectionnez Créer automatiquement des stratégies pour générer les stratégies OCI IAM requises.
Pour plus d'informations, reportez-vous à Création d'un connecteur avec une source de journalisation.
Tâche 2 : installer et configurer Fluentd
Une fois le flux opérationnel, il est temps de configurer Fluentd. Ici, l'objectif est de déployer Fluentd sur une instance OCI Compute et de la configurer pour qu'elle utilise les journaux du flux.
Pourquoi une instance OCI Compute ? Considérez-le comme l'intermédiaire qui comble l'écart entre les journaux OCI et Elastic Cloud. C'est là que Fluentd s'exécutera, ingérera les données du flux et les transmettra à Elastic.
Connectez-vous via SSH à l'instance et installez Fluentd à l'aide du gestionnaire de packages Treasure Data.
curl -fsSL https://toolbelt.treasuredata.com/sh/install-redhat-fluent-package5-lts.sh | sh
Vérifiez la version qui confirme l'installation de Fluentd.
fluentd --version
Remarque : si vous faites tourner l'instance de calcul dans OCI, assurez-vous que l'extension pour le journal personnalisé est désactivée.
Tâche 3 : installer des modules d'extension dans Kafka et Elasticsearch
Maintenant que Fluentd est prêt, il doit être équipé de plugins. Dans cette architecture, Fluentd agit à la fois en tant que consommateur de données de flux et en tant que transitaire vers Elasticsearch. Cela nécessite l'installation de deux plug-ins clés :
-
Module d'extension Kafka : permet à Fluentd d'utiliser les données du flux OCI.
-
Module d'extension Elasticsearch : transmet les données de journal à Elasticsearch.
Exécutez la commande suivante pour installer les deux modules d'extension.
fluent-gem install fluent-plugin-kafka fluent-plugin-elasticsearch
Tâche 4 : vérifier les journaux de sortie à l'aide de stdout
Avant de transférer des journaux vers Elasticsearch, il est recommandé de vérifier que le flux d'inclusion de journaux fonctionne. C'est là qu'intervient stdout
. Il garantit que les données circulent correctement à partir du flux avant de les envoyer à Elastic.
-
Pour l'implémenter, mettez à jour la configuration Fluentd située à l'adresse
/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>
-
Remplacez
<stream_endpoint>
et<stream_topic>
par le serveur bootstrap et le nom de flux en conséquence. Remplacez également<username>
et<password>
par les détails des paramètres de connexion Kafka dans OCI collectés dans la tâche 1.2. Le nom utilisateur doit également être ajouté au domaine, comme<tenancy_name>/<domain_name>/<username>/ocid1.streampool.oc1.##############
.Remarque :
-
ssl_ca_cert
doit être une chaîne de certificats complète au format PEM, qui doit inclure des certificats de serveur (certs OCI Streaming), des certificats intermédiaires et des certificats racine. -
Pour établir une connexion TLS sécurisée avec OCI Streaming, commencez par extraire le serveur et les certificats intermédiaires à l'aide de la commande
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
. -
La chaîne de certificat est ainsi enregistrée dans un fichier nommé
kafka_chain.pem
. Ensuite, téléchargez le certificat G2 racine globale DigiCert en tant que certificat racine sécurisée utilisé par OCI Streaming à partir de la page Certificats racine DigiCert au format PEM et enregistrez-le sous le nomroot.pem
. Enfin, ajoutez le certificat racine à votre fichier chaîne à l'aide de la commandecat root.pem >> kafka_chain.pem
. -
Il en résulte une chaîne de certificats complète dans
kafka_chain.pem
, prête à être utilisée par les clients TLS pour une connectivité sécurisée avec OCI Streaming.
-
-
Exécutez la commande suivante pour démarrer Fluentd et surveiller la sortie.
$ sudo systemctl restart fluentd.service $ sudo systemctl status fluentd.service $ sudo cat /var/log/fluent/fluentd.log
Si tout fonctionne, les journaux du flux commencent à apparaître dans les journaux Fluentd. Cela garantit que le pipeline de données fonctionne comme prévu avant d'aller de l'avant.
Tâche 5 : transfert des journaux vers Elastic Cloud
Une fois le pipeline vérifié, il est temps de reconfigurer Fluentd pour transférer les journaux vers Elastic Cloud. Cette tâche transforme Fluentd d'un simple consommateur de journaux en un expéditeur de journaux à part entière.
-
Mettez à jour la configuration pour inclure le module d'extension de sortie Elastic.
<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>
Remarque : l'ID cloud est un ID unique qui est affecté à votre cluster Elasticsearch hébergé sur Elastic Cloud. Tous les déploiements obtiennent automatiquement un ID cloud. Afin de trouver votre ID cloud et votre mot de passe pour l'utilisateur élastique, reportez-vous à Recherche de votre ID cloud.
-
Relancez Fluentd pour appliquer les modifications.
sudo systemctl restart fluentd.service
Tâche 6 : validation et déverrouillage des informations clés dans Elasticsearch
Les journaux sont transmis en continu dans Elastic, les données sont indexées et structurées pour une interrogation efficace. Le moteur de recherche en texte intégral d'Elastic vous permet de rechercher, d'agréger et de visualiser des données en temps réel.
Il est essentiel de créer une vue de données. Cette vue de données sert de couche structurée qui organise les données de journal, vous permettant d'explorer et d'extraire en toute transparence des informations précieuses. Pour plus d'informations, reportez-vous aux vues de données.
Liens connexes
Accusés de réception
- Auteurs - Gautam Mishra (architecte cloud principal), Chaitanya Chintala (conseillère en sécurité cloud)
Ressources de formation supplémentaires
Explorez d'autres ateliers sur le site docs.oracle.com/learn ou accédez à d'autres contenus d'apprentissage gratuits sur le canal Oracle Learning YouTube. En outre, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, consultez Oracle Help Center.
Use Fluentd to Ingest Oracle Cloud Infrastructure Logs into Elastic Cloud
G35558-01
Copyright ©2025, Oracle and/or its affiliates.