Monitorar Dados de Log do Kubernetes com o OCI Logging Analytics
Um ambiente baseado em Kubernetes pode ser dividido em três camadas, cada uma consistindo em vários componentes em constante evolução impulsionados pelas necessidades de negócios.
- Camada de infraestrutura: contém vários componentes, incluindo recursos de rede, instâncias de computação e hosts de nós do Kubernetes.
- Camada da plataforma Kubernetes: contém os vários serviços Kubernetes, como rede, serviço kubelet e DNS, que alimentam a plataforma kubernetes.
- Camada de aplicativos: contém as diferentes tecnologias, bancos de dados e aplicativos.
Arquitetura
Essa arquitetura mostra como você pode usar o Oracle Cloud Infrastructure Logging Analytics para monitorar uma plataforma Kubernetes e aplicativos nativos da nuvem.
O diagrama a seguir é uma topologia de amostra de um Cluster do Kubernetes em uma única região do OCI (Oracle Cloud Infrastructure). Ele mostra a camada de infraestrutura e o segundo diagrama destaca o kubernetes e as camadas de aplicativos.

Descrição da ilustração kubernetes-master-worker-nodes.png
kubernetes-master-worker-nodes-oracle.zip
O diagrama a seguir ilustra o monitoramento do Kubernetes para seus clusters do Kubernetes on-premises e o Oracle Cloud Infrastructure Kubernetes Engine (também conhecido como Kubernetes Engine ou OKE) com o OCI Logging Analytics. Esta solução oferece uma coleção de vários logs de um cluster do Kubernetes no OCI Logging Analytics e oferece análises avançadas sobre os logs coletados. É possível personalizar a coleta de logs modificando a configuração pronta para uso.

Descrição da ilustração k8s-oke-monitoring.png
k8s-oke-monitoramento-oracle.zip
A arquitetura tem os seguintes componentes:
- Tenancy
Uma tenancy é uma partição segura e isolada que a Oracle configura no Oracle Cloud quando você se inscreve no Oracle Cloud Infrastructure. Você pode criar, organizar e administrar seus recursos no Oracle Cloud em sua tenancy. Uma tenancy é sinônimo de uma empresa ou organização. Normalmente, uma empresa terá uma única locação e refletirá sua estrutura organizacional dentro dessa locação. Uma única tenancy geralmente é associada a uma única assinatura, e uma única assinatura geralmente só tem uma tenancy.
- Região
Região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, denominada domínios de disponibilidade. As regiões são independentes de outras regiões, e grandes distâncias podem separá-las (entre países ou até mesmo continentes).
- Compartimento
Os compartimentos são partições lógicas entre regiões em uma tenancy do Oracle Cloud Infrastructure. Use compartimentos para organizar, controlar o acesso e definir metas de uso para seus recursos do Oracle Cloud. Em um determinado compartimento, você define políticas que controlam o acesso e definem privilégios para recursos.
- Rede virtual na nuvem (VCN) e sub-redes
Uma VCN é uma rede personalizável definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes tradicionais de data center, as VCNs oferecem controle sobre seu ambiente de rede. Uma VCN pode ter vários blocos CIDR não sobrepostos que você pode alterar após a criação da VCN. Você pode segmentar uma VCN em sub-redes, com escopo definido para uma região ou para um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contíguo de endereços que não se sobrepõem a outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.
- Balanceador de carga
O serviço Oracle Cloud Infrastructure Load Balancing fornece distribuição automatizada de tráfego de um único ponto de entrada para vários servidores no back-end.
- Gateway de serviço
O gateway de serviço fornece acesso de uma VCN a outros serviços, como o Oracle Cloud Infrastructure Object Storage. O tráfego da VCN para o serviço Oracle percorre a malha da rede Oracle e não passa pela internet.
- Logging Analytics
O Oracle Cloud Infrastructure (OCI) Logging Analytics é um serviço regional SaaS totalmente gerenciado disponível em mais de 27 regiões que fornece coleta, indexação, enriquecimento, consulta, visualização e alerta para logs de qualquer componente de TI executado na nuvem on-premises, OCI ou 3rd party.
- Origem do Serviço Logging Analytics
A Origem do Logging Analytics é um recurso de configuração que fornece especificações para análise, extrações, rotulagem, mascaramento de dados e outro enriquecimento para garantir que os logs sejam ingeridos e indexados corretamente para análise e monitoramento. Essa arquitetura usa mais de 30 origens predefinidas para serviços, aplicativos e objetos do Kubernetes. Essas fontes são continuamente aprimoradas para fornecer recursos de análise mais profundos.
- Pods do Sistema Kubernetes
Os Pods do Sistema Kubernetes são pequenas unidades de computação implantáveis que você pode criar e gerenciar no Kubernetes. Um Pod é um ou mais contêineres, com armazenamento compartilhado e recursos de rede e regras para executar os contêineres.
- Pods do Usuário
Aplicativos iniciados no cluster do Kubernetes. Todos os logs dos pods de aplicativos que gravam
STDOUT/STDERR
geralmente estão disponíveis em/var/log/containers/
. Os aplicativos que têm handlers de log personalizados podem rotear seus logs de maneira diferente, mas, em geral, estão disponíveis no nó (por meio de um volume). - Serviços e Pods do Plano de Controle
Serviços de Plano de Controle e pods da plataforma Kubernetes. O Plano de Controle gerencia os nós de trabalho e os Pods no cluster do Kubernetes. Os nós de trabalho executam os aplicativos conteinerizados. Cada cluster tem pelo menos um nó de trabalho. Os nós de trabalho hospedam os Pods que são os componentes da carga de trabalho do aplicativo.
- Serviços do SO do Nó
Serviços Linux em execução na instância na qual o Kubernetes está instalado. OS logs são coletados nos serviços do SO.
- Pods de Coleta de Objetos e Log
Os Pods de Log e Coletor de Objetos são compostos de conjuntos de réplicas, FluentD e conjuntos de daemon.
- FluentD Coletor
FluentD é um coletor de dados de código-fonte aberto que fornece uma camada de log unificada entre origens de dados e sistemas de backend. Ele permite a coleta e o consumo unificados de dados para uma construção de pipelines de processamento de dados. Essa arquitetura usa contêiner FluentD em contêiner que é executado como conjunto de daemon e conjunto de réplicas no cluster do kubernetes. Ele usa o plug-in de saída fluentd de análise de logs para fazer upload de logs para o OCI Logging Analytics.
- Plug-in FluentD do Logging Analytics
O plug-in de saída FluentD que se conecta ao serviço OCI Logging Analytics em sua tenancy para fazer upload ou ingerir logs coletados pelo coletor FluentD.
- Objetos do Kubernetes
Os objetos do Kubernetes são entidades persistentes no sistema Kubernetes. O Kubernetes usa essas entidades para representar o estado do cluster. Nesta arquitetura, os seguintes estados de objeto do kubernetes são coletados como logs para análise histórica e solução de problemas:
- Conjunto de Daemon do Kubernetes
Um Kubernetes
DaemonSet
é um tipo de carga de trabalho que é executada no Kubernetes e garante que todos (ou alguns) Nós executem uma cópia de um Pod. À medida que os nós são adicionados ao cluster, os Pods são adicionados a eles. À medida que os nós são removidos do cluster, esses Pods são coletados lixo. - Conjunto de Réplicas do Kubernetes
Um Kubernetes
ReplicaSet
é um tipo de carga de trabalho executada no Kubernetes. Ele mantém um conjunto estável de Pods de réplica em execução a qualquer momento. Como tal, é frequentemente usado para garantir a disponibilidade de um número especificado de Pods idênticos.
- FluentD Coletor
- Kubernetes Engine
O Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine ou OKE) é um serviço totalmente gerenciado, escalável e altamente disponível que você pode usar para implantar seus aplicativos em contêineres na nuvem. Você especifica os recursos de computação necessários, e o serviço Kubernetes Engine os provisiona no Oracle Cloud Infrastructure em uma tenancy existente. O OKE usa o Kubernetes para automatizar a implantação, o dimensionamento e o gerenciamento de aplicativos em contêineres entre clusters de hosts.
- Conectores de serviço
O Service Connector Hub é uma plataforma de barramento de mensagens na nuvem. Você pode usá-lo para mover dados entre serviços no Oracle Cloud Infrastructure. Os dados se movem usando conectores de serviço. Um conector de serviço especifica o serviço de origem que contém os dados a serem movidos, as tarefas a serem executadas nos dados e o serviço de destino para o qual os dados devem ser entregues quando as tarefas especificadas são concluídas. Um conector de serviço é provisionado nesta arquitetura para coletar logs de rede e balanceador de carga.
- Serviços do OCI
Os serviços do OCI (Oracle Cloud Infrastructure) são uma plataforma de serviços de nuvem que permite criar e executar uma grande variedade de aplicativos em um ambiente altamente disponível e consistentemente de alto desempenho.
- Logs de Serviço e Auditoria
Os Logs de Serviço e Auditoria são capturados no serviço OCI Logging. O OCI Logging é um serviço altamente escalável e totalmente gerenciado que é usado para acessar os logs de serviço da VCN e do Balanceador de Carga por meio do Conector de Serviço.
Por padrão, os Logs de Serviços do Sistema Kubernetes e os dados do objeto do Kubernetes são coletados.
O Oracle Cloud Infrastructure Kubernetes Engine tem serviços integrados em que cada um tem responsabilidades diferentes e são executados em um ou mais nós no cluster como Implantações ou DaemonSets
.
Serviços do Sistema Kubernetes | Serviços do sistema Linux | Plano de Controle do Kubernetes | Objetos do Kubernetes (Padrão: a cada 15 minutos) | Logs do Aplicativo Personalizado |
---|---|---|---|---|
|
|
|
|
|
Observação:
Os logs do plano de controle do Kubernetes não são cobertos como parte da coleção pronta para uso, pois esses logs não são expostos pelo OCI Kubernetes Engine (também conhecido como OKE). Você pode ativar logs do plano de controle de clusters não OKE do Kubernetes.
Recomendações
Use as recomendações a seguir como ponto de partida. Seus requisitos podem ser diferentes da arquitetura descrita aqui.
- Grupos de Logs
Defina Vários Grupos de Logs para fornecer permissões de acesso de gravação a diferentes equipes e evitar o compartilhamento de dados confidenciais. Os Grupos de Logs podem ser baseados no Oracle E-Business Suite, Banco de Dados, infraestrutura do OCI, Logs de Hosts.
- Gerenciamento de Custos
O serviço Oracle Cloud Infrastructure (OCI) Logging Analytics é cobrado no volume de dados no armazenamento ativo e de arquivamento. Para permitir a solução de problemas do dia a dia e obter benefícios da detecção de anomalias, detecção de padrões e outros recursos de ML, recomendamos o uso de um período de armazenamento ativo de 90 dias e a movimentação de logs com mais de 90 dias para armazenamento de arquivamento. Os logs de arquivamento armazenados podem ser recuperados sob demanda rapidamente.
- FluentD Vários Colaboradores
Configure FluentD no modo de vários colaboradores para logs sensíveis ao tempo.
- Logs do Aplicativo Personalizado
Esta solução captura automaticamente todos os logs gerados pelos aplicativos em execução em um cluster do Kubernetes. Por padrão, esses logs são mapeados para a origem de log
Kubernetes Generic Container Logs
. O parser, as origens e o enriquecimento específicos dos logs do aplicativo devem ser criados no Oracle Cloud Infrastructure Logging Analytics para extrair campos obrigatórios e anexar labels de problema aos logs. - Autenticação
Essa arquitetura suporta autenticação baseada em arquivo principal e
config
do Oracle Cloud Infrastructure. A autenticação baseada no controlador de instâncias é recomendada para o Oracle Cloud Infrastructure Kubernetes Engine (OKE).
Considerações
Considere os pontos a seguir ao implantar essa arquitetura de referência.
- Desempenho
O desempenho da consulta se baseia no intervalo de tempo e no número de operações, como filtros, agrupamentos, etc. Para obter melhor desempenho de consulta, é recomendável enriquecer logs com labels e campos específicos no momento da ingestão. Isso faz parte da melhoria contínua das operações de TI.
- Segurança e controle de acesso baseado em atribuição (RBAC)
Personalize definições de Origem de Log para filtrar quaisquer dados de PII e ativar o enriquecimento de geolocalização.
- Disponibilidade
O Oracle Cloud Infrastructure Logging Analytics é um serviço SaaS altamente disponível totalmente gerenciado.
Implante
Os manifestos do Kubernetes e os gráficos de helm para implantar o Oracle Cloud Infrastructure Logging Analytics DaemonSets
e ReplicaSets
estão disponíveis em GitHub.
- Vá para GitHub.
- Clone ou faça download do repositório para seu computador local.
- Siga as instruções no documento
README
.
Explorar Mais
- Configurar um cluster do Kubernetes para implantar aplicativos de contêineres no Oracle Cloud (manual de soluções)
- Estrutura bem arquitetada para o Oracle Cloud Infrastructure
- Canal YouTube do Oracle Cloud Infrastructure Logging Analytics
- Documentação do Oracle Cloud Infrastructure Logging Analytics
- Analisar Logs de Amostra com o Laboratório Prático do OCI Logging Analytics
- Blogs do Oracle Cloud Infrastructure Logging Analytics