Nota

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.

Pulsante Modifica

Obiettivi

Prerequisiti

Task 1: Preparare OCI per lo streaming dei log

  1. 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.

  2. 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.

    1. Per creare un flusso, vedere Creazione di un flusso.

      Pulsante Modifica

    2. 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.

      Pulsante Modifica

  3. 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.

    Pulsante Modifica

    Pulsante Modifica

    Pulsante Modifica

    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:

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.

  1. 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>
    
  2. 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 come root.pem. Infine, aggiungere il certificato root al file della catena utilizzando il comando cat 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.

  3. 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.

  1. 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.

  2. 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.

Pulsante Modifica

Pulsante Modifica

Conferme

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.