Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Démarrer avec le niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments d'Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles qui sont propres à votre environnement en nuage.
Utiliser Fluentd pour ingérer les connexions d'Oracle Cloud Infrastructure dans Elastic Cloud
Présentation
Oracle Cloud Infrastructure (OCI) fournit des capacité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 fiable. Il existe de nombreux collecteurs de données open source populaires qui vous permettent d'unifier la collecte et la consommation de données.
Pour plus d'informations, voir : Ingérer les journaux Oracle Cloud Infrastructure dans des plates-formes SIEM de tierce partie à l'aide d'expéditeurs de journal et Envoyer les journaux Oracle Cloud Infrastructure à New Relic à l'aide d'un vecteur pour déterminer la solution qui convient le mieux à votre cas d'utilisation.
Dans ce tutoriel, nous présenterons les tâches détaillées permettant d'utiliser Fluentd en tant qu'expéditeur de journaux pour ingérer des journaux OCI dans Elastic Cloud.
Fluentd
Fluentd est un collecteur de données robuste et à code source libre développé par Treasure Data et qui fait maintenant partie de CNCF, conçu pour rationaliser la collecte, la transformation et la distribution des données de journal dans divers systèmes. Il agit comme une couche de journalisation unifiée qui rassemble des journaux provenant de diverses sources, les traite à l'aide de plugiciels d'analyse et de filtre, et les transmet à des destinations telles que Elastic, Kafka ou le stockage en nuage. Fluentd peut être déployé en tant qu'expéditeur de journaux sur une instance de calcul pour saisir des journaux à partir du service de journalisation OCI et les transmettre à 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. Index de sécurité élastiques et stockage des données de journal dans un format structuré, permettant de puissantes fonctions 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 regrouper les journaux en temps réel, découvrir des modèles, identifier des anomalies et générer des renseignements exploitables. En outre, avec des outils tels que Kibana, les journaux peuvent être visualisés au moyen de tableaux de bord interactifs, transformant les données brutes des journaux en représentations visuelles intuitives qui facilitent la surveillance du rendement des applications, la détection des menaces à la sécurité et le dépannage efficace des problèmes opérationnels.
Examinons la représentation de haut niveau de l'architecture de la solution, comme illustré dans l'image suivante.
Objectifs
-
Configurez un pipeline de transfert de journaux du service de journalisation OCI vers le service de diffusion en continu OCI à l'aide du centre de connecteurs OCI.
-
Installez et configurez Fluentd pour une consommation sécurisée à partir du service de diffusion en continu pour OCI.
-
Transférer les journaux vers Elastic à l'aide des plugiciels Kafka d'entrée de Fluentd avec JSON structuré.
Préalables
-
Un compte Elastic Cloud avec accès à la console Elastic Security. Pour plus d'informations, voir SIEM for Elastic (SIEM pour élasticité).
-
Serveur basé sur Linux, provisionné pour l'installation de Fluentd, avec une connectivité réseau robuste pour communiquer en toute transparence avec votre environnement Elastic.
-
Les utilisateurs d'OCI doivent disposer des politiques requises pour le service de diffusion en continu pour OCI, le centre de connecteurs OCI et les services de journalisation OCI pour gérer les ressources. Pour plus d'informations sur les références aux politiques de tous les services, voir Informations de référence sur les politiques.
Tâche 1 : Préparer OCI pour la diffusion en continu des journaux
-
Activer les journaux dans le service de journalisation OCI.
Pour ce tutoriel, nous utiliserons les journaux de vérification. Vous pouvez également activer le service ou des journaux personnalisés en fonction de votre cas d'utilisation. Pour plus d'informations, voir Aperçu du service de journalisation.
-
Créer un flux.
Pour que Fluentd puisse démarrer les journaux d'expédition, les données ont besoin d'une source cohérente. Dans OCI, cette source est un flux compatible 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, des instances de calcul aux services de réseau, peut être dirigé vers ce flux. Cela consolide non seulement les données de journal, mais garantit également que Fluentd dispose d'un point d'extrémité unique à partir duquel extraire les données.
-
Pour créer un flux, voir Création d'un flux.
-
Naviguez jusqu'à Groupe de flux et notez le nom du flux, le serveur d'amorçage, le nom d'utilisateur du groupe de flux et le jeton d'authentification généré pour l'utilisateur. Pour plus d'informations, voir Jeton d'authentification.
Nous aurons besoin de tout cela dans notre fichier de configuration Fluentd.
-
-
Créez un centre de connecteurs OCI.
OCI Connector Hub agit en tant qu'orchestrateur, acheminant les journaux de divers services vers le flux. Avec le centre de connecteurs OCI, vous pouvez définir des connecteurs qui déplacent les journaux du service de journalisation OCI avec des journaux de vérification, des journaux de service et des journaux personnalisés et les diriger vers le flux. Pour créer un concentrateur de connecteurs, entrez les informations suivantes.
- Source : Sélectionnez Journalisation.
- Destination : Sélectionnez Diffusion en continu (sélectionnez le flux créé à l'étape 2).
- Sélectionnez Créer automatiquement des politiques pour générer les politiques OCI IAM requises.
Pour plus d'informations, voir Création d'un connecteur avec une source de journalisation.
Tâche 2 : Installer et configurer Fluentd
Avec le flux opérationnel, il est temps de configurer Fluentd. Ici, l'objectif est de déployer Fluentd sur une instance de calcul OCI et de la configurer pour consommer des journaux à partir du flux.
Pourquoi utiliser une instance de calcul OCI? Considérez-le comme l'intermédiaire qui comble l'écart entre les journaux OCI et Elastic Cloud. C'est là que Fluentd va s'exécuter, ingérer les données du flux et les transmettre à Elastic.
Accédez par 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
Note : Si vous configurez l'instance de calcul dans OCI, assurez-vous que le module complémentaire pour le journal personnalisé est désactivé.
Tâche 3 : Installer des plugiciels 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 transmetteur vers Elasticsearch. Cela nécessite l'installation de deux plugins clés :
-
Plugiciel Kafka : Permet à Fluentd de consommer des données à partir du flux OCI.
-
Plugiciel Elasticsearch : Transmet les données de journal à Elasticsearch.
Exécutez la commande suivante pour installer les deux plugins.
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 les journaux vers Elasticsearch, il est recommandé de vérifier que le flux d'ingestion des 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 ce faire, mettez à jour la configuration Fluentd à 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 d'amorçage et le nom du 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 d'utilisateur doit également être ajouté au domaine, par exemple<tenancy_name>/<domain_name>/<username>/ocid1.streampool.oc1.##############
.Note :
-
ssl_ca_cert
doit être une chaîne de certificats complète au format PEM, qui doit inclure le certificat de serveur (certificats du service de diffusion en continu pour OCI), les certificats intermédiaires et les certificats racines. -
Pour établir une connexion TLS sécurisée avec le service de diffusion en continu pour OCI, 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 certificats est enregistrée dans un fichier nommé
kafka_chain.pem
. Ensuite, téléchargez le certificat G2 racine globale DigiCert du certificat racine approuvé utilisé par le service de diffusion en continu pour OCI à partir de la page Certificats racine DigiCert au format PEM et enregistrez-le sousroot.pem
. Enfin, ajoutez le certificat racine à votre fichier de 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 le service de diffusion en continu pour OCI.
-
-
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 commenceront à 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 : Transférer les 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 plugiciel 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>
Note : L'ID nuage est un ID unique qui est affecté à votre grappe Elasticsearch hébergée sur Elastic Cloud. Tous les déploiements obtiennent automatiquement un ID nuage. Pour trouver votre ID nuage et votre mot de passe pour l'utilisateur élastique, voir Rechercher votre ID nuage.
-
Redémarrez Fluentd pour appliquer les modifications.
sudo systemctl restart fluentd.service
Tâche 6 : Valider et déverrouiller les données clés dans ElasticSearch
Les journaux sont diffusés en continu dans Elastic avec succès, 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 permet d'explorer et d'extraire de façon transparente des informations précieuses. Pour plus d'informations, voir Vues de données.
Liens connexes
Remerciements
- Auteurs - Gautam Mishra (architecte en nuage principal), Chaitanya Chintala (conseiller en sécurité en nuage)
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir la documentation sur le produit, visitez Oracle Help Center.
Use Fluentd to Ingest Oracle Cloud Infrastructure Logs into Elastic Cloud
G35557-01
Copyright ©2025, Oracle and/or its affiliates.