Supervisión de datos de log de Kubernetes con OCI Logging Analytics
Un entorno basado en Kubernetes se puede dividir en tres niveles, cada uno formado por numerosos componentes en constante evolución impulsados por las necesidades empresariales.
- Nivel de infraestructura: contiene numerosos componentes, incluidos recursos de red, instancias informáticas y hosts de nodos de Kubernetes.
- Nivel de plataforma de Kubernetes: contiene los distintos servicios de Kubernetes, como red, servicio kubelet y DNS, que alimentan la plataforma de kubernetes.
- Nivel de aplicación: contiene las diferentes tecnologías, bases de datos y aplicaciones.
Arquitectura
Esta arquitectura muestra cómo puede utilizar Oracle Cloud Infrastructure Logging Analytics para supervisar una plataforma de Kubernetes y aplicaciones nativas en la nube.
En el siguiente diagrama se muestra un ejemplo de topología de un cluster de Kubernetes en una única región de Oracle Cloud Infrastructure (OCI). Muestra la capa de infraestructura y el segundo diagrama resalta los niveles de kubernetes y aplicación.

Descripción de la ilustración kubernetes-master-worker-nodes.png
kubernetes-maestro-trabajador-nodos-oracle.zip
En el siguiente diagrama se muestra la supervisión de Kubernetes para los clusters de Kubernetes locales y Oracle Cloud Infrastructure Kubernetes Engine (también conocido como Kubernetes Engine u OKE) con OCI Logging Analytics. Esta solución ofrece una recopilación de varios logs de un cluster de Kubernetes en OCI Logging Analytics y ofrece análisis enriquecidos sobre los logs recopilados. Puede personalizar la recopilación de logs modificando la configuración lista para usar.

Descripción de la ilustración k8s-oke-monitoring.png
La arquitectura tiene los siguientes componentes:
- Tenancy
Un arrendamiento es una partición segura y aislada que Oracle configura en Oracle Cloud al registrarse en Oracle Cloud Infrastructure. Puede crear, organizar y administrar sus recursos en Oracle Cloud dentro de su arrendamiento. Un arrendamiento es sinónimo de una compañía u organización. Normalmente, una compañía tendrá un único arrendamiento y reflejará su estructura organizativa dentro de ese arrendamiento. Un único arrendamiento suele estar asociado a una única suscripción, y una única suscripción normalmente solo tiene un arrendamiento.
- Región
Una región de Oracle Cloud Infrastructure es un área geográfica localizada que contiene uno o más centros de datos, denominados dominios de disponibilidad. Las regiones son independientes entre sí y puede haber grandes distancias que las separen (entre países e incluso continentes).
- Compartimento
Los compartimentos son particiones lógicas entre regiones dentro de un arrendamiento de Oracle Cloud Infrastructure. Utilice compartimentos para organizar, controlar el acceso y definir cuotas de uso para los recursos de Oracle Cloud. En un compartimento determinado, defina políticas que controlen el acceso y definan privilegios para los recursos.
- Red y subredes virtuales en la nube (VCN)
Una VCN es una red personalizable y definida por software que puede configurar en una región de Oracle Cloud Infrastructure. Al igual que las redes de los centros de datos tradicionales, las redes virtuales le proporcionan el control de su entorno de red. Una VCN puede tener varios bloques de CIDR no superpuestos que puede cambiar después de crear la VCN. Puede segmentar una VCN en subredes, las cuales se pueden acotar a una región o a un dominio de disponibilidad. Cada subred está formada por un rango contiguo de direcciones que no se solapan con las demás subredes de la VCN. Puede cambiar el tamaño de una subred después de la creación. Una subred puede ser pública o privada.
- Equilibrador de carga
El servicio Oracle Cloud Infrastructure Load Balancing proporciona una distribución automatizada del tráfico desde un único punto de entrada a varios servidores en el backend.
- Gateway de servicio
El gateway de servicios proporciona acceso desde una VCN a otros servicios, como Oracle Cloud Infrastructure Object Storage. El tráfico de la VCN al servicio Oracle viaja por el tejido de red de Oracle y no atraviesa Internet.
- Logging Analytics
Oracle Cloud Infrastructure (OCI) Logging Analytics es un servicio regional SaaS totalmente gestionado disponible en más de 27 regiones que proporciona recopilación, indexación, enriquecimiento, consulta, visualización y alertas para logs de cualquier componente de TI que se ejecute en la nube local, OCI o de 3a parte.
- Origen de análisis de registro
Logging Analytics Source es un recurso de configuración que proporciona especificaciones para el análisis, las extracciones, el etiquetado, el enmascaramiento de datos y otro enriquecimiento para garantizar que los logs se ingieran e indexen correctamente para el análisis y la supervisión. Esta arquitectura utiliza más de 30 orígenes predefinidos para servicios, aplicaciones y objetos de Kubernetes. Estos orígenes se mejoran continuamente para proporcionar capacidades de análisis más profundas.
- Pods de sistema de Kubernetes
Los pods de sistema de Kubernetes son pequeñas unidades de computación desplegables que puede crear y gestionar en Kubernetes. Un pod es uno o más contenedores, con almacenamiento compartido y recursos de red, y reglas para ejecutar los contenedores.
- Pods de usuario
Aplicaciones iniciadas en el cluster de Kubernetes. Todos los logs de los pods de aplicación que escriben
STDOUT/STDERR
suelen estar disponibles en/var/log/containers/
. Las aplicaciones que tienen manejadores de logs personalizados pueden enrutar sus logs de forma diferente, pero en general están disponibles en el nodo (mediante un volumen). - Servicios y pods del plano de control
Servicios y pods del plano de control de la plataforma Kubernetes. El plano de control gestiona los nodos de trabajador y los pods del cluster de Kubernetes. Los nodos de trabajador ejecutan las aplicaciones en contenedores. Cada cluster tiene al menos un nodo de trabajador. Los nodos de trabajador alojan los pod que son los componentes de la carga de trabajo de la aplicación.
- Servicios del SO de nodo
Servicios de Linux que se ejecutan en la instancia en la que está instalado Kubernetes. Los logs se recopilan en los servicios del sistema operativo.
- Pods de recopilador de logs y objetos
Los pods de recopilador de logs y objetos están formados por juegos de réplicas, FluentD y juegos de daemon.
- Recopilador FluentD
FluentD es un recopilador de datos de código abierto que proporciona una capa de registro unificada entre los orígenes de datos y los sistemas backend. Permite la recopilación y el consumo de datos unificados para crear pipelines de procesamiento de datos. Esta arquitectura utiliza el contenedor FluentD en contenedores que se ejecuta como juego de daemon y juego de réplicas en el cluster de kubernetes. Utiliza el plugin de salida fluido de análisis de registro para cargar logs en OCI Logging Analytics.
- Plugin de Logging Analytics FluentD
Plugin de salida FluentD que se conecta al servicio OCI Logging Analytics de su arrendamiento para cargar o ingerir logs recopilados por el recopilador FluentD.
- Objetos de Kubernetes
Los objetos de Kubernetes son entidades persistentes en el sistema de Kubernetes. Kubernetes utiliza estas entidades para representar el estado del cluster. En esta arquitectura, los siguientes estados de objeto de kubernetes se recopilan como logs para realizar análisis históricos y solucionar problemas:
- Conjunto de daemon de Kubernetes
Un
DaemonSet
de Kubernetes es un tipo de carga de trabajo que se ejecuta en Kubernetes y garantiza que todos (o algunos) nodos ejecuten una copia de un pod. A medida que se agregan los nodos al cluster, se agregan los pods. A medida que se eliminan los nodos del cluster, esos pods se recopilan como basura. - Juego de réplicas de Kubernetes
Un
ReplicaSet
de Kubernetes es un tipo de carga de trabajo que se ejecuta en Kubernetes. Mantiene un conjunto estable de réplicas de pods en ejecución en cualquier momento dado. Como tal, a menudo se utiliza para garantizar la disponibilidad de un número especificado de pods idénticos.
- Recopilador FluentD
- Kubernetes Engine
Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine u OKE) es un servicio totalmente gestionado, escalable y disponible que puede utilizar para desplegar las aplicaciones en contenedores en la nube. Especifique los recursos informáticos que necesitan sus aplicaciones y Kubernetes Engine los provisionará en Oracle Cloud Infrastructure en un arrendamiento existente. OKE utiliza Kubernetes para automatizar el despliegue, la ampliación y la gestión de aplicaciones en contenedores en clusters de hosts.
- Conectores de servicio
Service Connector Hub es una plataforma de bus de mensajes en la nube. Puede utilizarlo para mover datos entre servicios de Oracle Cloud Infrastructure. Los datos se mueven mediante conectores de servicio. Un conector de servicio especifica el servicio de origen que contiene los datos que se van a mover, las tareas que se van a realizar en los datos y el servicio de destino al que se deben entregar los datos cuando se completen las tareas especificadas. En esta arquitectura se aprovisiona un conector de servicio para recopilar logs de red y equilibrador de carga.
- Servicios de OCI
Los servicios de Oracle Cloud Infrastructure (OCI) son una plataforma de servicios en la nube que permiten crear y ejecutar una amplia gama de aplicaciones en un entorno de alto rendimiento consistente y de alta disponibilidad.
- Logs de servicio y auditoría
Los logs de servicio y de auditoría se capturan en el servicio OCI Logging. OCI Logging es un servicio altamente escalable y totalmente gestionado que se utiliza para acceder a los logs del servicio VCN y Load Balancer a través del conector de servicio.
Por defecto, se recopilan los logs de servicios del sistema de Kubernetes y los datos de objeto de Kubernetes.
Oracle Cloud Infrastructure Kubernetes Engine tiene servicios integrados en los que cada uno tiene diferentes responsabilidades y se ejecutan en uno o más nodos del cluster como despliegues o DaemonSets
.
Servicios de sistema de Kubernetes | Servicios del sistema Linux | Plano de control de Kubernetes | Objetos de Kubernetes (valor por defecto: cada 15 minutos) | Logs de aplicaciones personalizadas |
---|---|---|---|---|
|
|
|
|
|
Note:
Los logs del plano de control de Kubernetes no se tratan como parte de la recopilación lista para usar, ya que estos logs no están expuestos por OCI Kubernetes Engine (también conocido como OKE). Puede activar logs de plano de control desde clusters de Kubernetes que no sean de OKE.
Recomendaciones
Utilice las siguientes recomendaciones como punto de partida. Sus requisitos pueden diferir de la arquitectura descrita aquí.
- Grupos de log
Defina varios grupos de logs para proporcionar permisos de acceso de escritura a diferentes equipos y evitar compartir datos confidenciales. Los grupos de logs se pueden basar en Oracle E-Business Suite, Database, infraestructura de OCI y logs de hosts.
- Cost Management
El servicio Oracle Cloud Infrastructure (OCI) Logging Analytics se cobra por el volumen de datos en el almacenamiento activo y de archivado. Para permitir la resolución de problemas del día a día y obtener los beneficios de la detección de anomalías, la detección de patrones y otras capacidades de aprendizaje automático, recomendamos utilizar un período de almacenamiento activo de 90 días y mover logs de más de 90 días al almacenamiento en archivo. Los logs del archivo almacenado se pueden recuperar a demanda rápidamente.
- FluentD Trabajador múltiple
Configure FluentD en modo de varios trabajadores para logs sensibles al tiempo.
- Logs de aplicaciones personalizadas
Esta solución captura automáticamente todos los logs generados por las aplicaciones que se ejecutan en un cluster de Kubernetes. Por defecto, estos logs se asignan al origen de log
Kubernetes Generic Container Logs
. Se deben crear un analizador, orígenes y enriquecimiento específicos de logs de aplicación en Oracle Cloud Infrastructure Logging Analytics para extraer los campos necesarios y asociar etiquetas de problemas a los logs. - Autenticación
Esta arquitectura soporta la autenticación basada en archivo
config
y principal de instancia de Oracle Cloud Infrastructure. Se recomienda la autenticación basada en principal de instancia para Oracle Cloud Infrastructure Kubernetes Engine (OKE).
Consideraciones
Tenga en cuenta los siguientes puntos al desplegar esta arquitectura de referencia.
- Rendimiento
El rendimiento de la consulta se basa en el rango temporal y el número de operaciones, como filtros, agrupar por, etc. Para mejorar el rendimiento de las consultas, se recomienda enriquecer los logs con etiquetas y campos específicos en el momento de la ingestión. Esto forma parte de la mejora continua de las operaciones de TI.
- Seguridad y control de acceso basado en roles (RBAC)
Personalice las definiciones de origen de log para filtrar cualquier dato de PII y activar el enriquecimiento de geolocalización.
- Disponibilidad
Oracle Cloud Infrastructure Logging Analytics es un servicio SaaS de alta disponibilidad y totalmente gestionado.
Despliegue
Los manifiestos y gráficos de timón de Kubernetes para desplegar Oracle Cloud Infrastructure Logging Analytics DaemonSets
y ReplicaSets
están disponibles en GitHub.
- Vaya a GitHub.
- Clone o descargue el repositorio en su computadora local.
- Siga las instrucciones del documento
README
.
Explorar más
- Configuración de un cluster de Kubernetes para el despliegue de aplicaciones contenedorizadas en Oracle Cloud (libro de estrategias de solución)
- Marco bien diseñado para Oracle Cloud Infrastructure
- Canal de Oracle Cloud Infrastructure Logging Analytics YouTube
- Documentación de Oracle Cloud Infrastructure Logging Analytics
- Análisis de logs de ejemplo con el laboratorio práctico de OCI Logging Analytics
- Blogs de Oracle Cloud Infrastructure Logging Analytics