Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever em uma conta gratuita, consulte Conceitos básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Use o Fluentd para Ingerir Logs do Oracle Cloud Infrastructure na Nuvem Elástica
Introdução
A Oracle Cloud Infrastructure (OCI) fornece recursos abrangentes de registro em log, mas a integração desses logs com sistemas externos, como Elastic, requer um expedidor de log robusto. Existem muitos coletores de dados de código aberto populares que permitem unificar a coleta e o consumo de dados.
Para obter mais informações, consulte: Ingerir Logs do Oracle Cloud Infrastructure em Plataformas SIEM de Terceiros usando Entregadores de Logs e Enviar Logs do Oracle Cloud Infrastructure para o New Relic usando o Vector para determinar qual solução melhor se adapta ao seu caso de uso.
Neste tutorial, analisaremos as tarefas detalhadas para usar o Fluentd como um remetente de logs para ingerir logs do OCI no Elastic Cloud.
Fluentd
A Fluentd é um coletor de dados robusto e de código aberto desenvolvido pela Treasure Data e agora parte da CNCF, projetado para agilizar a coleta, a transformação e a distribuição de dados de log em vários sistemas. Ele atua como uma camada de registro unificada que reúne logs de diversas fontes, processa-os usando plug-ins de analisador e filtro e os encaminha para destinos como Elastic, Kafka ou armazenamento em nuvem. O Fluentd pode ser implantado como um remetente de logs em uma instância de computação para capturar logs do serviço OCI Logging e entregá-los ao Elastic para monitoramento e análise aprimorados.
Quando o Fluentd encaminha os logs para o Elastic, o poder real dos dados de log é desbloqueado. O Elastic Security indexa e armazena os dados de log em um formato estruturado, permitindo recursos avançados de pesquisa, análise e visualização. Ao aproveitar o mecanismo de pesquisa de texto completo da Elastic, os usuários podem consultar e agregar logs em tempo real, descobrir padrões, identificar anomalias e gerar insights acionáveis. Além disso, com ferramentas como o Kibana, os logs podem ser visualizados por meio de painéis interativos, transformando dados brutos de log em representações visuais intuitivas que ajudam no monitoramento do desempenho do aplicativo, na detecção de ameaças à segurança e na solução eficaz de problemas operacionais.
Vejamos a representação de alto nível da arquitetura da solução, conforme mostrado na imagem a seguir.
Objetivos
-
Configurar um pipeline de encaminhamento de log do OCI Logging para o OCI Streaming usando o OCI Connector Hub.
-
Instale e configure o Fluentd para consumir com segurança do OCI Streaming.
-
Encaminhe logs para o Elastic usando os plug-ins Kafka de entrada do Fluentd com JSON estruturado.
Pré-requisitos
-
Uma conta do Elastic Cloud com acesso à console do Elastic Security. Para obter mais informações, consulte SIEM para Elastic.
-
Um servidor baseado em Linux, provisionado para instalação Fluentd, com conectividade de rede robusta para se comunicar perfeitamente com seu ambiente Elastic.
-
Os usuários no OCI devem ter as políticas necessárias para que os serviços OCI Streaming, OCI Connector Hub e OCI Logging gerenciem os recursos. Para obter mais informações sobre a referência de política de todos os serviços, consulte Referência de Política.
Tarefa 1: Preparar o OCI para o Streaming de Logs
-
Ativar logs no OCI Logging.
Para este tutorial, usaremos os logs de Auditoria. Você também pode ativar logs de serviço ou personalizados com base no seu caso de uso. Para obter mais informações, consulte Visão Geral do Serviço Logging.
-
Criar um Stream.
Antes que a Fluentd possa começar a enviar logs, os dados precisam de uma fonte consistente. Na OCI, essa origem é um fluxo compatível com Kafka. Imagine configurar um fluxo como um pipeline de dados centralizado para logs. Todos os eventos de log gerados no OCI de instâncias de computação a serviços de rede podem ser direcionados a esse fluxo. Isso não apenas consolida os dados de log, mas também garante que o Fluentd tenha um único ponto final para extrair dados.
-
Para criar um fluxo, consulte Criando um Fluxo.
-
Navegue até Pool de Streams e anote o Nome do Stream, o Servidor de Inicialização, o nome de usuário do pool de streams e gere o token de autenticação para o usuário. Para obter mais informações, consulte token de autenticação.
Vamos precisar de tudo isso em nosso arquivo de configuração Fluentd.
-
-
Crie um OCI Connector Hub.
O OCI Connector Hub atua como o orquestrador, roteando logs de vários serviços para o stream. Com o OCI Connector Hub, você pode definir conectores que movem logs do serviço OCI Logging que tem logs de Auditoria, logs de Serviço e logs Personalizados e os direcionam para o stream. Para criar um hub de conector, insira as informações a seguir.
- Origem: Selecione Log.
- Destino: Selecione Streaming (selecione o stream criado na etapa 2).
- Selecione Criar políticas automaticamente para gerar as políticas obrigatórias do OCI IAM.
Para obter mais informações, consulte Criando um Conector com uma Origem de Log.
Tarefa 2: Instalar e Configurar o Fluentd
Com o fluxo em funcionamento, é hora de configurar o Fluentd. Aqui, o objetivo é implantar o Fluentd em uma instância do OCI Compute e configurá-lo para consumir logs do fluxo.
Por que uma instância do OCI Compute? Pense nisso como o intermediário que preenche a lacuna entre os logs da OCI e a Elastic Cloud. É onde o Fluentd será executado, ingerirá dados do fluxo e os transmitirá para o Elastic.
Estabeleça SSH na instância e instale o Fluentd usando o gerenciador de pacotes do Treasure Data.
curl -fsSL https://toolbelt.treasuredata.com/sh/install-redhat-fluent-package5-lts.sh | sh
Verifique a versão que confirma que o Fluentd está instalado.
fluentd --version
Observação: Se você estiver girando a instância de computação no OCI, certifique-se de que o complemento do Log personalizado esteja desativado.
Tarefa 3: Instalar Plug-ins no Kafka e no Elasticsearch
Agora que o Fluentd está pronto, ele precisa ser equipado com plugins. Nesta arquitetura, a Fluentd atua como consumidor de dados de fluxo e encaminhador para o Elasticsearch. Isso requer a instalação de dois plug-ins principais:
-
Plug-in Kafka: Permite que o Fluentd consuma dados do stream da OCI.
-
Plug-in Elasticsearch: encaminha os dados de log para o Elasticsearch.
Execute o comando a seguir para instalar os dois plug-ins.
fluent-gem install fluent-plugin-kafka fluent-plugin-elasticsearch
Tarefa 4: Verificar os Logs de Saída usando stdout
Antes de encaminhar logs para o Elasticsearch, é uma boa prática verificar se o fluxo de ingestão de log está funcionando. É aqui que entra o stdout
. Ele garante que os dados estejam fluindo corretamente do fluxo antes de enviá-los para o Elastic.
-
Para implementar isso, atualize a configuração do Fluentd localizada em
/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>
-
Substitua
<stream_endpoint>
e<stream_topic>
pelo servidor de inicialização e pelo nome de fluxo de acordo. Substitua também o<username>
e o<password>
pelos detalhes das Definições de Conexão do Kafka no OCI coletados na Tarefa 1.2. O nome de usuário também precisa do domínio anexado, como<tenancy_name>/<domain_name>/<username>/ocid1.streampool.oc1.##############
.Observação:
-
O
ssl_ca_cert
deve ser uma cadeia de certificados completa no formato PEM, que deve incluir certificados de servidor (Certificados OCI Streaming), intermediários e raiz. -
Para estabelecer uma conexão TLS confiável com o OCI Streaming, comece extraindo o servidor e os certificados intermediários usando o 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
. -
Isso salva a cadeia de certificados em um arquivo chamado
kafka_chain.pem
. Em seguida, faça download do certificado raiz global DigiCert G2 do certificado raiz confiável usado pelo OCI Streaming na página DigiCert Root Certificates no formato PEM e salve-o comoroot.pem
. Por fim, anexe o certificado raiz ao seu arquivo de cadeia usando o comandocat root.pem >> kafka_chain.pem
. -
Isso resulta em uma cadeia de certificados completa no
kafka_chain.pem
, pronta para ser usada por clientes TLS para conectividade segura com o OCI Streaming.
-
-
Execute o comando a seguir para iniciar o Fluentd e monitorar a saída.
$ sudo systemctl restart fluentd.service $ sudo systemctl status fluentd.service $ sudo cat /var/log/fluent/fluentd.log
Se tudo estiver funcionando, os logs do stream começarão a aparecer nos logs do Fluentd. Isso garante que o pipeline de dados esteja funcionando conforme o esperado antes de avançar.
Tarefa 5: Encaminhar Logs para o Elastic Cloud
Com o pipeline verificado, é hora de reconfigurar o Fluentd para encaminhar logs para o Elastic Cloud. Essa tarefa transforma o Fluentd de um simples consumidor de log em um remetente de log completo.
-
Atualize a configuração para incluir o plug-in de saída 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>
Observação: O ID do Cloud é um ID exclusivo que é designado ao cluster do Elasticsearch hospedado no Elastic Cloud. Todas as implantações obtêm automaticamente um ID de Nuvem. Para localizar o ID da Nuvem e a senha do usuário elástico, consulte Localizar o seu ID da Nuvem.
-
Reinicie o Fluentd para aplicar as alterações.
sudo systemctl restart fluentd.service
Tarefa 6: Validar e Desbloquear Insights no Elasticsearch
Os logs são transmitidos para o Elastic com sucesso, os dados são indexados e estruturados para consultas eficientes. O mecanismo de pesquisa de texto completo da Elastic permite pesquisar, agregar e visualizar dados em tempo real.
É essencial criar uma view de dados. Essa exibição de dados serve como uma camada estruturada que organiza dados de log e permite que você explore e extraia insights valiosos de forma integrada. Para obter mais informações, consulte Views de dados.
Links Relacionados
-
Ingerir Logs do Oracle Cloud Infrastructure em Plataformas SIEM de Terceiros usando Log Shippers
-
Enviar Logs do Oracle Cloud Infrastructure para o New Relic usando o Vector
Confirmações
- Autores - Gautam Mishra (Arquiteto de Nuvem Principal), Chaitanya Chintala (Consultor de Segurança na Nuvem)
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal do Oracle Learning YouTube. Além disso, acesse education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Use Fluentd to Ingest Oracle Cloud Infrastructure Logs into Elastic Cloud
G35562-01
Copyright ©2025, Oracle and/or its affiliates.