Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse en una cuenta gratuita, consulte Introducción a la cuenta gratuita de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al finalizar el laboratorio, sustituya estos valores por otros específicos de su entorno en la nube.
Utilice Fluentd para ingerir logs de Oracle Cloud Infrastructure en Elastic Cloud
Introducción
Oracle Cloud Infrastructure (OCI) proporciona capacidades de registro completas, pero la integración de estos logs con sistemas externos como Elastic requiere un remitente de logs sólido. Hay muchos recopiladores de datos de código abierto populares que le permiten unificar la recopilación y el consumo de datos.
Para obtener más información, consulte: Ingestión de logs de Oracle Cloud Infrastructure en plataformas SIEM de terceros mediante remitentes de logs y Envío de logs de Oracle Cloud Infrastructure a New Relic mediante Vector para determinar qué solución se ajusta mejor a su caso de uso.
En este tutorial, repasaremos las tareas detalladas para utilizar Fluentd como remitente de logs para ingerir logs de OCI en Elastic Cloud.
Fluentd
Fluentd es un recopilador de datos robusto y de código abierto desarrollado por Treasure Data y que ahora forma parte de CNCF, diseñado para agilizar la recopilación, transformación y distribución de datos de registro en varios sistemas. Actúa como una capa de registro unificada que recopila logs de diversos orígenes, los procesa mediante plugins de analizador y filtro y los reenvía a destinos como Elastic, Kafka o almacenamiento en la nube. Fluentd se puede desplegar como expedidor de logs en una instancia informática para capturar logs del servicio OCI Logging y entregarlos a Elastic para mejorar la supervisión y el análisis.
Una vez que Fluentd reenvía los registros a Elastic, se desbloquea la potencia real de los datos de registro. Elastic Security indexa y almacena los datos del log en un formato estructurado, lo que permite potentes capacidades de búsqueda, análisis y visualización. Al aprovechar el motor de búsqueda de texto completo de Elastic, los usuarios pueden consultar y agregar logs en tiempo real, descubrir patrones, identificar anomalías y generar estadísticas útiles. Además, con herramientas como Kibana, los registros se pueden visualizar a través de paneles interactivos, transformando los datos de registro sin procesar en representaciones visuales intuitivas que ayudan a supervisar el rendimiento de las aplicaciones, detectar amenazas de seguridad y resolver problemas operativos de manera efectiva.
Veamos la representación de alto nivel de la arquitectura de soluciones como se muestra en la siguiente imagen.
Objetivos
-
Configurar un pipeline de reenvío de logs de OCI Logging a OCI Streaming mediante OCI Connector Hub.
-
Instale y configure Fluentd para consumir de forma segura desde OCI Streaming.
-
Reenvía los logs a Elastic mediante los plugins de entrada de Kafka de Fluentd con JSON estructurado.
Requisitos
-
Una cuenta en la nube flexible con acceso a la consola de seguridad flexible. Para obtener más información, consulte SIEM for Elastic.
-
Un servidor basado en Linux, aprovisionado para la instalación de Fluentd, con una sólida conectividad de red para comunicarse sin problemas con su entorno Elastic.
-
Los usuarios de OCI deben tener las políticas necesarias para que los servicios OCI Streaming, OCI Connector Hub y OCI Logging gestionen los recursos. Para obtener más información sobre la referencia de políticas de todos los servicios, consulte Referencia de políticas.
Tarea 1: Preparación de OCI para el flujo de logs
-
Activar logs en OCI Logging.
Para este tutorial, utilizaremos los logs de auditoría. También puede activar logs de servicio o personalizados en función de su caso de uso. Para obtener más información, consulte Visión general de Logging.
-
Creación de un flujo.
Antes de que Fluentd pueda iniciar los logs de envío, los datos necesitan un origen coherente. En OCI, ese origen es un flujo compatible con Kafka. Imagine la configuración de un flujo como un pipeline de datos centralizado para logs. Cada evento de log generado en OCI desde instancias informáticas hasta servicios de red se puede dirigir a este flujo. Esto no solo consolida los datos de log, sino que también garantiza que Fluentd tenga un único punto final del que extraer datos.
-
Para crear un flujo, consulte Creación de un flujo.
-
Vaya a Stream Pool y anote Stream Name, Bootstrap Server, username del pool de flujos y el token de autenticación generado para el usuario. Para obtener más información, consulte token de autenticación.
Necesitaremos todo esto en nuestro archivo de configuración Fluentd.
-
-
Cree un OCI Connector Hub.
OCI Connector Hub actúa como el orquestador, enrutando logs de varios servicios al flujo. Con OCI Connector Hub, puede definir conectores que mueven logs del servicio OCI Logging, que tiene logs de auditoría, logs de servicio y logs personalizados, y dirigirlos al flujo. Para crear un concentrador de conector, introduzca la siguiente información.
- Origen: seleccione Registro.
- Destino: seleccione Flujo (seleccione el flujo creado en el paso 2).
- Seleccione Crear políticas automáticamente para generar las políticas de OCI IAM necesarias.
Para obtener más información, consulte Creación de un Conector con un Origen de Registro.
Tarea 2: Instalación y configuración de Fluentd
Con el flujo en funcionamiento, es hora de configurar Fluentd. Aquí, el objetivo es desplegar Fluentd en una instancia de OCI Compute y configurarla para que consuma logs del flujo.
¿Por qué una instancia de OCI Compute? Piense en ello como el intermediario que salva la brecha entre los logs de OCI y Elastic Cloud. Es donde Fluentd se ejecuta, ingiere datos del flujo y los transmite a Elastic.
Utilice SSH en la instancia e instale Fluentd mediante el gestor de paquetes Treasure Data.
curl -fsSL https://toolbelt.treasuredata.com/sh/install-redhat-fluent-package5-lts.sh | sh
Verifique la versión que confirma que Fluentd está instalado.
fluentd --version
Nota: Si está activando la instancia informática en OCI, asegúrese de que el complemento para el log personalizado está desactivado.
Tarea 3: Instalación de plugins en Kafka y Elasticsearch
Ahora que Fluentd está listo, necesita estar equipado con plugins. En esta arquitectura, Fluentd actúa como consumidor de datos de flujo y como promotor de Elasticsearch. Esto requiere la instalación de dos plugins clave:
-
Plugin de Kafka: permite a Fluentd consumir datos del flujo de OCI.
-
Plugin de Elasticsearch: reenvía los datos del log a Elasticsearch.
Ejecute el siguiente comando para instalar ambos plugins.
fluent-gem install fluent-plugin-kafka fluent-plugin-elasticsearch
Tarea 4: Verifique los logs de salida con stdout
Antes de reenviar logs a Elasticsearch, se recomienda verificar que el flujo de ingestión de logs esté funcionando. Aquí es donde entra stdout
. Asegura que los datos fluyan correctamente desde el flujo antes de enviarlos a Elastic.
-
Para implementar esto, actualice la configuración de Fluentd ubicada en
/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>
-
Sustituya
<stream_endpoint>
y<stream_topic>
por el servidor de inicialización de datos y el nombre de flujo según corresponda. Sustituya también<username>
y<password>
por los detalles de Configuración de conexión de Kafka en OCI recopilados en la tarea 1.2. El nombre de usuario también necesita el dominio agregado, como<tenancy_name>/<domain_name>/<username>/ocid1.streampool.oc1.##############
.Nota:
-
ssl_ca_cert
debe ser una cadena de certificados completa en formato PEM, que debe incluir certificados de servidor (certificados de OCI Streaming), certificados intermedios y raíz. -
Para establecer una conexión TLS de confianza con OCI Streaming, empiece por extraer el servidor y los certificados intermedios mediante el 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
. -
De esta forma, se guarda la cadena de certificados en un archivo denominado
kafka_chain.pem
. A continuación, descargue el certificado G2 raíz global DigiCert del certificado raíz de confianza utilizado por OCI Streaming desde la página DigiCert Certificados raíz en formato PEM y guárdelo comoroot.pem
. Por último, agregue el certificado raíz al archivo de cadena mediante el comandocat root.pem >> kafka_chain.pem
. -
Esto da como resultado una cadena de certificados completa en
kafka_chain.pem
, lista para ser utilizada por los clientes TLS para una conectividad segura con OCI Streaming.
-
-
Ejecute el siguiente comando para iniciar Fluentd y supervisar la salida.
$ sudo systemctl restart fluentd.service $ sudo systemctl status fluentd.service $ sudo cat /var/log/fluent/fluentd.log
Si todo funciona, los logs del flujo comenzarán a aparecer en los logs de Fluentd. Esto garantiza que el pipeline de datos funcione como se esperaba antes de avanzar.
Tarea 5: Reenvío de logs a la nube flexible
Con el pipeline verificado, es hora de volver a configurar Fluentd para reenviar logs a Elastic Cloud. Esta tarea transforma Fluentd de un simple consumidor de logs a un completo expedidor de logs.
-
Actualice la configuración para incluir el plugin de salida de 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: El ID de nube es un ID único que se asigna al cluster de Elasticsearch alojado en Elastic Cloud. Todos los despliegues obtienen automáticamente un ID de nube. Para buscar su ID de nube y contraseña para el usuario elástico, consulte Búsqueda de su ID de nube.
-
Reinicie Fluentd para aplicar los cambios.
sudo systemctl restart fluentd.service
Tarea 6: Validación y desbloqueo de estadísticas en Elasticsearch
Los logs se transfieren a Elastic correctamente, los datos se indexan y estructuran para realizar consultas eficientes. El motor de búsqueda de texto completo de Elastic permite buscar, agregar y visualizar datos en tiempo real.
Es esencial crear una vista de datos. Esta vista de datos sirve como una capa estructurada que organiza los datos de log, le permite explorar y extraer sin problemas información valiosa. Para obtener más información, consulte Vistas de datos.
Enlaces relacionados
Acuses de recibo
- Autores: Gautam Mishra (arquitecto principal de la nube), Chaitanya Chintala (asesor de seguridad en la nube)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Use Fluentd to Ingest Oracle Cloud Infrastructure Logs into Elastic Cloud
G35556-01
Copyright ©2025, Oracle and/or its affiliates.