Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriversi a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Quando completi il tuo laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Utilizza Fluentd per includere i log di Oracle Cloud Infrastructure nel cloud elastico
Introduzione
Oracle Cloud Infrastructure (OCI) fornisce funzionalità di registrazione complete, ma l'integrazione di questi log con sistemi esterni come Elastic richiede un affidabile spedizioniere di log. Ci sono molti popolari raccoglitori di dati open source che ti consentono di unificare la raccolta e il consumo dei dati.
Per ulteriori informazioni, vedere: Oracle Cloud Infrastructure esegue il login a piattaforme SIEM di terze parti utilizzando gli spedizionieri di log e invia i log di Oracle Cloud Infrastructure a New Relic utilizzando Vector per determinare la soluzione più adatta al tuo caso d'uso.
In questa esercitazione verranno illustrati i task dettagliati da utilizzare Fluentd come spedizioniere di log per includere i log OCI in Elastic Cloud.
Fluente
Fluentd è un solido raccoglitore di dati open source sviluppato da Treasure Data e ora parte di CNCF, progettato per semplificare la raccolta, la trasformazione e la distribuzione dei dati di log in vari sistemi. Agisce come un livello di registrazione unificato che raccoglie i log da diverse origini, li elabora utilizzando plugin di parser e filtri e li inoltra a destinazioni come Elastic, Kafka o storage cloud. Fluentd può essere distribuito come log shipper in un'istanza di computazione per acquisire i log dal servizio OCI Logging e consegnarli a Elastic per un monitoraggio e un'analisi avanzati.
Una volta che Fluentd inoltra i log a Elastic, la potenza reale dei dati di log viene sbloccata. La sicurezza elastica indicizza e memorizza i dati di log in un formato strutturato, consentendo potenti funzionalità di ricerca, analisi e visualizzazione. Sfruttando il motore di ricerca full-text di Elastic, gli utenti possono eseguire query e aggregare i log in tempo reale, scoprire pattern, identificare anomalie e generare insight utili. Inoltre, con strumenti come Kibana, i log possono essere visualizzati attraverso dashboard interattivi, trasformando i dati di log grezzi in rappresentazioni visive intuitive che aiutano a monitorare le prestazioni delle applicazioni, a rilevare le minacce alla sicurezza e a risolvere efficacemente i problemi operativi.
Diamo un'occhiata alla rappresentazione di alto livello dell'architettura della soluzione come mostrato nell'immagine seguente.
Obiettivi
-
Impostare una pipeline di inoltro log da OCI Logging a OCI Streaming utilizzando OCI Connector Hub.
-
Installa e configura Fluentd per utilizzare in modo sicuro OCI Streaming.
-
Inoltra i log a Elastic utilizzando i plugin Kafka di input di Fluentd con JSON strutturato.
Prerequisiti
-
Account Elastic Cloud con accesso alla console Elastic Security. Per ulteriori informazioni, vedere SIEM for Elastic.
-
Un server basato su Linux, fornito per l'installazione Fluentd, con una solida connettività di rete per comunicare senza problemi con l'ambiente Elastic.
-
Gli utenti in OCI devono disporre dei criteri necessari per i servizi di streaming OCI, hub connettore OCI e log OCI per gestire le risorse. Per ulteriori informazioni sui riferimenti ai criteri di tutti i servizi, vedere Riferimento ai criteri.
Task 1: Preparare OCI per lo streaming dei log
-
Abilita log in OCI Logging.
Per questa esercitazione, verranno utilizzati i log di audit. È inoltre possibile abilitare i log di servizio o personalizzati in base al proprio caso d'uso. Per ulteriori informazioni, vedere Panoramica del log.
-
Crea flusso.
Prima che Fluentd possa avviare i log di spedizione, i dati richiedono un'origine coerente. In OCI, tale origine è un flusso compatibile con Kafka. Immagina di impostare un flusso come pipeline di dati centralizzata per i log. Ogni evento di log generato all'interno di OCI, dalle istanze di computazione ai servizi di networking, può essere indirizzato a questo flusso. Questo non solo consolida i dati di log, ma garantisce anche che Fluentd abbia un singolo endpoint da cui estrarre i dati.
-
Per creare un flusso, vedere Creazione di un flusso.
-
Passare a Stream Pool e annotare il nome struttura, il server bootstrap, il nome utente dal pool di flussi e il token di autenticazione generato per l'utente. Per ulteriori informazioni, vedere token di autenticazione.
Avremo bisogno di tutto questo nel nostro file di configurazione Fluentd.
-
-
Creare un hub connettore OCI.
OCI Connector Hub funge da orchestratore e instrada i log da vari servizi al flusso. Con OCI Connector Hub, puoi definire connettori che spostano i log dal servizio OCI Logging che dispone di log di audit, log dei servizi e log personalizzati e indirizzarli al flusso. Per creare un hub connettore, immettere le informazioni riportate di seguito.
- Origine: selezionare Log.
- Destinazione: selezionare Streaming (selezionare il flusso creato nel passo 2).
- Selezionare Crea criteri automaticamente per generare i criteri IAM OCI necessari.
Per ulteriori informazioni, vedere Creazione di un connettore con un'origine di registrazione.
Task 2: Installazione e configurazione di Fluentd
Con il flusso attivo e funzionante, è il momento di impostare Fluentd. In questo caso, l'obiettivo è distribuire Fluentd su un'istanza di OCI Compute e configurarla per utilizzare i log del flusso.
Perché un'istanza di OCI Compute? Pensalo come l'intermediario che colma il divario tra i log OCI ed Elastic Cloud. È qui che Fluentd eseguirà, includerà i dati dal flusso e li trasmetterà a Elastic.
SSH nell'istanza e installare Fluentd utilizzando il package manager Treasure Data.
curl -fsSL https://toolbelt.treasuredata.com/sh/install-redhat-fluent-package5-lts.sh | sh
Verificare la versione che conferma l'installazione di Fluentd.
fluentd --version
Nota: se si esegue l'attivazione dell'istanza di computazione in OCI, assicurarsi che il componente aggiuntivo per il log personalizzato sia disabilitato.
Task 3: Installare i plugin in Kafka ed Elasticsearch
Ora che Fluentd è pronto, deve essere dotato di plugin. In questa architettura, Fluentd funge sia da consumatore di dati di flusso che da inoltro a Elasticsearch. Ciò richiede l'installazione di due plugin chiave:
-
Plugin Kafka: consente a Fluentd di utilizzare i dati dal flusso OCI.
-
Plugin Elasticsearch: inoltra i dati di log a Elasticsearch.
Eseguire il comando seguente per installare entrambi i plugin.
fluent-gem install fluent-plugin-kafka fluent-plugin-elasticsearch
Task 4: Verificare i log di output utilizzando stdout
Prima di inoltrare i log a Elasticsearch, è consigliabile verificare che il flusso di inclusione dei log funzioni. Ecco dove entra in gioco stdout
. Garantisce che i dati fluiscano correttamente dal flusso prima di inviarli a Elastic.
-
Per implementare questo, aggiornare la configurazione Fluentd disponibile all'indirizzo
/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>
-
Sostituire
<stream_endpoint>
e<stream_topic>
con il server bootstrap e il nome del flusso di conseguenza. Sostituire anche<username>
e<password>
con i dettagli di Impostazioni di connessione Kafka in OCI raccolti nel task 1.2. Il nome utente richiede anche l'aggiunta del dominio, ad esempio<tenancy_name>/<domain_name>/<username>/ocid1.streampool.oc1.##############
.Nota:
-
ssl_ca_cert
deve essere una catena di certificati completa in formato PEM, che deve includere certificati server (certs OCI Streaming), certificati intermedi e root. -
Per stabilire una connessione TLS sicura con OCI Streaming, iniziare estraendo il server e i certificati intermedi utilizzando il comando
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
. -
In questo modo la catena di certificati viene salvata in un file denominato
kafka_chain.pem
. Successivamente, scaricare il certificato DigiCert Global Root G2 del certificato radice attendibile utilizzato da OCI Streaming dalla pagina DigiCert Root Certificates in formato PEM e salvarlo comeroot.pem
. Infine, aggiungere il certificato root al file della catena utilizzando il comandocat root.pem >> kafka_chain.pem
. -
Ciò si traduce in una catena di certificati completa in
kafka_chain.pem
, pronta per essere utilizzata dai client TLS per una connettività sicura con OCI Streaming.
-
-
Eseguire il comando seguente per avviare Fluentd e monitorare l'output.
$ sudo systemctl restart fluentd.service $ sudo systemctl status fluentd.service $ sudo cat /var/log/fluent/fluentd.log
Se tutto funziona, i log del flusso inizieranno a comparire nei log Fluentd. Ciò garantisce che la pipeline dei dati funzioni come previsto prima di procedere.
Task 5: Inoltra i log al cloud elastico
Con la pipeline verificata, è il momento di riconfigurare Fluentd per inoltrare i log a Elastic Cloud. Questa attività trasforma Fluentd da un semplice consumer di log a uno spedizioniere di log completo.
-
Aggiornare la configurazione per includere il plugin di output 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>
Nota: l'ID cloud è un ID univoco che viene assegnato al cluster Elasticsearch ospitato in Elastic Cloud. Tutte le distribuzioni ottengono automaticamente un ID cloud. Per trovare l'ID cloud e la password per l'utente elastico, vedere Trova l'ID cloud.
-
Riavviare Fluentd per applicare le modifiche.
sudo systemctl restart fluentd.service
Task 6: Convalida e sblocca approfondimenti in Elasticsearch
I log eseguono lo streaming in Elastic correttamente, i dati vengono indicizzati e strutturati per un'esecuzione efficiente delle query. Il motore di ricerca full-text di Elastic consente di cercare, aggregare e visualizzare i dati in tempo reale.
È essenziale creare una vista dati. Questa vista dati funge da livello strutturato che organizza i dati di log e ti consente di esplorare ed estrarre senza problemi insight preziosi. Per ulteriori informazioni, vedere Viste dati.
Collegamenti correlati
Conferme
- Autori - Gautam Mishra (Principal Cloud Architect), Chaitanya Chintala (Cloud Security Advisor)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.
Per la documentazione del prodotto, visitare Oracle Help Center.
Use Fluentd to Ingest Oracle Cloud Infrastructure Logs into Elastic Cloud
G35559-01
Copyright ©2025, Oracle and/or its affiliates.