Todos los productos
Search
Centro de documentos

Simple Log Service:Kubernetes container log collection

Última actualización: Sep 02, 2026

Aprenda a recopilar, procesar y analizar registros de contenedores Kubernetes con SLS y LoongCollector. Este tema aborda los conceptos fundamentales, los modos de despliegue, los flujos de trabajo de recopilación y las mejores prácticas.

En la consola de ACK, la vista Pod logs muestra un máximo de 500 entradas de registro. Si requiere los registros completos de sus contenedores, utilice SLS para recopilar los registros de los contenedores del clúster de Kubernetes; esto le permite conservar y consultar todos los datos de registro. Para obtener instrucciones de configuración, consulte Collect container logs from a Kubernetes cluster by using a CRD (standard output/file).

Funciones

SLS ofrece las siguientes capacidades para la recopilación de registros de contenedores Kubernetes:

  • Compatibilidad con registros de múltiples orígenes

    • Recopila diversos log types: stdout, stderr y registros de archivos de texto del contenedor.

  • Filtrado detallado de contenedores

    • Incluya o excluya contenedores según el nombre del namespace, el nombre del pod, el nombre del contenedor, las etiquetas del contenedor o las variables de entorno.

  • Procesamiento avanzado de registros

  • Asociación inteligente de metadatos

  • Fiabilidad

    • Un mecanismo de checkpoint registra la posición actual de recopilación para garantizar la integridad de los registros.

    • Handles logs when a container stops al proporcionar diferentes estrategias para diversos entornos de ejecución de contenedores.

Limitaciones

  • Entorno de ejecución de contenedores: Solo se admiten Docker y Containerd.

    Docker:

    • Requiere permisos para acceder a docker.sock.

    • Para la recopilación de salida estándar, solo se admite el controlador de registro json-file.

    • Solo se admiten los controladores de almacenamiento overlay y overlay2. Para otros controladores de almacenamiento, debe montar el directorio de registros mediante un volumen.

    Containerd:

    • Requiere permisos para acceder a containerd.sock.

  • Límite de registros multilínea:

    La última línea recopilada se almacena en búfer durante 3 segundos de forma predeterminada para evitar que los registros multilínea se dividan por retrasos en la salida. Ajuste este comportamiento con el parámetro BeginLineTimeoutMs (mínimo: 1,000 ms).

  • Salida estándar:

    El tamaño máximo predeterminado de una entrada de registro es de 512 KB (524,288 bytes), con un límite superior de 8 MB (8,388,608 bytes). Para aumentar este límite, establezca la variable de entorno max_read_buffer_size en el contenedor de LoongCollector.

    Importante

    No habilite la recopilación de stdout y stderr simultáneamente. Esto puede provocar que las entradas de registro se intercalen incorrectamente.

Descripción general del flujo de trabajo de recopilación

  1. Prepare el origen de los registros: identifique los registros de stdout o de archivos de texto que desea recopilar.

  2. Instale LoongCollector: despliegue el recopilador para transmitir los registros a SLS.

  3. Configure las reglas de recopilación: defina las reglas de recopilación de registros y los plugins de análisis.

  4. Consulte y analice los registros: supervise sus servicios con los datos de registro recopilados.

Procesos clave

Requisitos de origen de registros y punto de montaje

  • Para los registros de salida estándar, LoongCollector descubre automáticamente la ruta del archivo de registro según los metadatos del contenedor.

  • Para los registros de archivos de texto del contenedor, LoongCollector monta el directorio raíz del host en /logtail_host de forma predeterminada. Por lo general, no es necesario realizar un montaje manual. Si utiliza un punto de montaje personalizado, asegúrese de que cumpla con estos requisitos:

    Requisitos del punto de montaje personalizado

    Ruta del archivo de registro:

    • No utilice enlaces simbólicos:

      • Configuración incorrecta: /var/log -> /mnt/logs.

      • Configuración correcta: utilice directamente la ruta física /mnt/logs.

    • Regla de coincidencia de rutas de montaje: si el directorio de datos del contenedor de su aplicación se monta mediante un volumen, la ruta de recopilación debe ser igual al punto de montaje o un subdirectorio del mismo.

      1Mount point: /var/log/service
      2✅ Valid collection path: /var/log/service or /var/log/service/subdir
      3❌ Invalid collection path: /var/log (The path is not specific enough)

Instalación del recopilador

LoongCollector admite dos modos de despliegue:

Modo de despliegue: DaemonSet o sidecar.

  • Modo DaemonSet: despliega un agente de LoongCollector en cada nodo automáticamente. Es adecuado para la mayoría de los escenarios.

    • En el modo DaemonSet, el método de despliegue depende del tipo de clúster y de la relación de cuentas de SLS.

      • Para clústeres de Container Service for Kubernetes (ACK), el componente loongcollector-ds viene preintegrado. Habilítelo en la consola de ACK para completar la instalación. De forma predeterminada, los registros se almacenan en el proyecto de SLS de la cuenta propietaria del clúster. Installation and configuration.

      • Para recopilar registros de un clúster de ACK en un proyecto de SLS bajo una cuenta diferente de Alibaba Cloud, instale manualmente LoongCollector y configúrelo con el ID de la cuenta de destino o su AccessKey. Installation and configuration.

      • Para clústeres autogestionados, instale manualmente LoongCollector y configúrelo con el ID de la cuenta de Alibaba Cloud de destino o su AccessKey. Installation and configuration.

      Debe instalar LoongCollector antes de comenzar la recopilación de registros. Collect container logs from a Kubernetes cluster by using a CRD (standard output/file) .
  • Modo sidecar: inyecta un contenedor de LoongCollector en cada pod de aplicación. Utilice este modo para contenedores serverless, pods de alto volumen que superan la capacidad de DaemonSet o clústeres con entornos de ejecución de contenedores seguros. Collect Kubernetes pod text logs (sidecar mode).

Reglas de recopilación

SLS admite dos métodos para definir reglas de recopilación:

Método de configuración

Funciones

Casos de uso

Notas

Kubernetes CRD

  • Integración nativa con Kubernetes: declare configuraciones como CRD para una integración perfecta con la API de Kubernetes.

  • Configuración como código: compatible con flujos de trabajo GitOps y habilita el control de versiones.

  • Actualizaciones en tiempo real: el Operator supervisa los cambios y los sincroniza automáticamente con LoongCollector.

Recomendado para clústeres de producción y entornos CI/CD.

  • Utilice solo un método para gestionar una configuración de recopilación determinada. Combinar métodos puede invalidar la configuración.

  • Si varias configuraciones tienen como objetivo el mismo archivo, habilite Allow multiple collections for a file. De lo contrario, solo una configuración surtirá efecto de forma aleatoria. Alternativamente, utilice data manipulation para procesar y almacenar múltiples copias de un registro.

Simple Log Service console

  • Operación sencilla: configuración gráfica sin código.

  • Verificación rápida: pruebas y validación ágiles.

  • Gestión centralizada: consulte todas las configuraciones en una consola unificada.

Ideal para clústeres pequeños, depuración o entornos que no son de producción.

Conceptos clave

  • Kubernetes: plataforma de orquestación de contenedores de código abierto que automatiza el despliegue, el escalado y la gestión de aplicaciones en contenedores.

  • Registros de salida estándar, error estándar y archivos de texto: Stdout captura la salida normal del programa (registros de negocio, registros operativos). Stderr captura errores y advertencias (trazas de pila, fallos de inicio). Ambos se dirigen a la terminal y son capturados por el motor de contenedores. Los registros de archivos de texto son escritos en archivos por las aplicaciones (por ejemplo, Nginx access.log) y se eliminan cuando se destruye el contenedor, a menos que se conserven mediante un volumen.

  • Mecanismo de checkpoint: registra la posición de recopilación en un archivo, guardado en /tmp/logtail_checkpoint de forma predeterminada. Garantiza una recopilación fiable tras reinicios de LoongCollector o fallos en los nodos.

  • LoongCollector (Logtail): recopilador de registros de alto rendimiento desarrollado por Alibaba Cloud que admite el despliegue mediante DaemonSet y sidecar en Kubernetes. LoongCollector es el sucesor de Logtail y es totalmente compatible con versiones anteriores.

  • CRD de Kubernetes: definición de recurso personalizado (CustomResourceDefinition) que permite definir recursos personalizados para la configuración. SLS utiliza AliyunPipelineConfig como su tipo de CRD.

  • Configuración de recopilación: define reglas para tipos de registro, rutas de recopilación, filtrado, análisis y ubicación de almacenamiento. What is a collection configuration?.

  • Plugin de análisis: unidad de procesamiento dentro de processing plugin configuration para estructurar, dividir, filtrar o desensibilizar el contenido de los registros. Admite modos de expresión regular, separador, JSON y multilínea.

Cómo funciona

  1. Un usuario crea un recurso personalizado (CR) mediante kubectl para definir una regla de recopilación.

  2. El loongcollector-operator supervisa continuamente los cambios en los CR del clúster.

  3. Cuando se detecta un cambio, el Operator convierte el CR en una configuración de LoongCollector y la aplica a Simple Log Service.

  4. El agente de LoongCollector envía periódicamente latidos a Simple Log Service para obtener actualizaciones de configuración, recupera la configuración de recopilación más reciente y la aplica dinámicamente.

  5. El agente loongcollector-ds recopila los registros según la nueva configuración y los envía a SLS a través del endpoint configurado.

Modo DaemonSet

Despliega un agente de LoongCollector en cada nodo para recopilar registros de todos los contenedores en ese nodo. Ofrece operaciones sencillas, bajo consumo de recursos y configuración flexible, pero un aislamiento de inquilinos más débil.

Cómo funciona el modo DaemonSet

  • En el modo DaemonSet, Kubernetes ejecuta exactamente un contenedor de LoongCollector en cada nodo para recopilar registros de todos los contenedores en ese nodo.

  • Kubernetes crea y destruye automáticamente los contenedores de LoongCollector a medida que los nodos se unen o abandonan el clúster, lo que elimina la necesidad de gestionar instancias manualmente.

image

Modo sidecar

Inyecta un sidecar de LoongCollector junto al contenedor de la aplicación en cada pod. El directorio de registros de la aplicación se comparte mediante un volumen de Kubernetes (emptyDir, hostPath o PVC), lo que permite a LoongCollector leer los archivos de registro directamente. Proporciona un fuerte aislamiento de inquilinos y alto rendimiento, pero consume más recursos.

Cómo funciona el modo sidecar

  • En el modo sidecar, cada pod ejecuta un contenedor dedicado de LoongCollector. La recopilación de registros está aislada entre pods.

  • Se debe montar un volumen compartido tanto en el contenedor de la aplicación como en el de LoongCollector para acceder a los archivos de registro.

  • Cuando el volumen de registros de un pod supera la capacidad de DaemonSet, el modo sidecar permite asignar recursos dedicados a LoongCollector.

  • Los entornos serverless carecen de nodos, por lo que DaemonSet no es aplicable. El modo sidecar se integra directamente con arquitecturas serverless.

image

Descubrimiento de contenedores

LoongCollector debe identificar los contenedores en ejecución en el nodo antes de recopilar sus registros. Este proceso se denomina descubrimiento de contenedores.

  • LoongCollector se comunica directamente con el daemon del entorno de ejecución de contenedores en el nodo, no con el kube-apiserver del clúster. Esto evita carga adicional en el kube-apiserver.

  • LoongCollector accede al socket del entorno de ejecución de contenedores (Docker o Containerd) en el host. Admite incluir o excluir contenedores por namespace, nombre del pod, etiquetas del pod o variables de entorno.

Recopilación de salida estándar

LoongCollector identifica automáticamente la API o el controlador de registro correcto para cada entorno de ejecución de contenedores (Docker, Containerd) según los metadatos. Lee el flujo stdout directamente sin acceder a los sistemas de archivos de los contenedores.

LoongCollector guarda periódicamente el progreso de la recopilación en un archivo de checkpoint y reanuda desde la última posición tras un reinicio.

Recopilación de registros de archivos de texto del contenedor

  • Kubernetes aísla los sistemas de archivos de los contenedores, por lo que un recopilador no puede acceder directamente a los archivos en otros contenedores. LoongCollector monta el sistema de archivos raíz del host para acceder indirectamente a los archivos del contenedor de la aplicación.

  • De forma predeterminada, el sistema de archivos raíz del host se monta en /logtail_host. Por lo general, no es necesario realizar un montaje manual. Por ejemplo, si un archivo de registro del contenedor se encuentra en /log/app.log y su ruta en el host es /var/lib/docker/containers/<container-id>/log/app.log, LoongCollector lo lee desde /logtail_host/var/lib/docker/containers/<container-id>/log/app.log.

Análisis de registros multilínea

LoongCollector utiliza una expresión regular definida por el usuario para coincidir con el inicio de una línea de registro.

  • Coincidencia exitosa: la línea se trata como el inicio de una nueva entrada de registro.

  • Coincidencia fallida: la línea se añade a la entrada de registro actual.

Cuando otra línea coincide con la expresión regular de inicio de línea, se completa la entrada de registro actual y comienza una nueva.

Procesamiento de registros cuando se detiene un contenedor

Entorno de ejecución

Riesgo de latencia de destrucción

Integridad de los registros

Optimización

Docker

Cuando se detiene un contenedor, LoongCollector libera inmediatamente el manejador de archivos del contenedor, lo que permite que el contenedor finalice normalmente.

Si la recopilación se retrasa antes de que se detenga el contenedor, por ejemplo, debido a latencia de red o alto uso de recursos, es posible que se pierdan algunos registros generados justo antes de la detención.

Aumente la frecuencia de envío de registros (disminuya flush_interval).

Containerd

Si la recopilación se retrasa, por ejemplo, debido a latencia de red o alto uso de recursos, es posible que el contenedor de la aplicación no se destruya de inmediato.

Cuando se detiene un contenedor, LoongCollector continúa reteniendo los manejadores de archivos del contenedor, manteniendo abiertos los archivos de registro hasta que se haya enviado todo el contenido.

Configure max_hold_buffer_size para limitar el uso de memoria.

Después de eliminar un pod, los registros que ya se han recopilado en el LogStore de Simple Log Service no se ven afectados. Los registros se conservan durante el período de retención de datos del LogStore y permanecen consultables dentro de ese período. Puede modificar el período de retención en la consola de Simple Log Service.

Después de eliminar un pod, las configuraciones de recopilación basadas en etiquetas o en namespaces se aplican automáticamente a los nuevos pods que tengan las mismas etiquetas. Cuando una actualización continua de Deployment elimina pods antiguos y crea nuevos, Simple Log Service recopila automáticamente los registros de los nuevos pods, por lo que no es necesario volver a configurar las reglas de recopilación.

Obtención de metadatos del contenedor

LoongCollector obtiene los metadatos de Kubernetes directamente a través de la API de CRI (Container Runtime Interface), lo que permite el etiquetado de metadatos en tiempo real y sin intrusiones durante la recopilación.

  • Docker: LoongCollector utiliza el cliente de Docker para comunicarse con el daemon de Docker y obtener metadatos. Las principales API incluyen:

    • ContainerList: enumera los contenedores en ejecución en el nodo.

    • ContainerInspect: devuelve la configuración detallada y el estado del contenedor.

    • Events: escucha eventos del ciclo de vida del contenedor en tiempo real.

    Campos de metadatos clave obtenidos a través del cliente de Docker:

    • LogPath: la ruta en el host del archivo de registro stdout del contenedor.

    • GraphDriver.Data: la ruta en el host del rootfs del contenedor, utilizada para el acceso al sistema de archivos y la solución de problemas.

  • Containerd: LoongCollector utiliza la CRI para ser compatible con entornos containerd y CRI-O, recopilando metadatos de entornos de ejecución subyacentes como runc o Kata Containers.

    • La CRI proporciona la ruta en el host del archivo de registro stdout, pero no la ruta del rootfs del contenedor. LoongCollector utiliza estos métodos para encontrarla:

      • Búsqueda de ruta de archivo: busca la ruta del rootfs del contenedor en el sistema de archivos del host utilizando el ID del contenedor.

      • Interacción directa con containerd: LoongCollector puede omitir la CRI y comunicarse directamente con containerd para obtener la ruta del rootfs y otros metadatos no disponibles a través de la CRI.

Mejores prácticas

Consulta unificada entre entornos

Para consultar registros en distintos entornos (por ejemplo, pruebas y producción), utilice uno de estos métodos:

  • Almacene todos los datos de los entornos en el mismo LogStore y añada etiquetas para distinguirlos. Collect container logs from a cluster by using the console (standard output/file).

  • Recopile datos en LogStores o proyectos separados. Cree un StoreView para consultas entre LogStores. Este método no tiene costos de almacenamiento adicionales, pero es de solo lectura y no admite alertas. Utilice un campo tag para identificar el LogStore de origen de cada entrada de registro.

  • (Recomendado) Recopile datos en LogStores o proyectos separados. Utilice data manipulation para copiar datos seleccionados a un LogStore centralizado. Admite análisis previo al almacenamiento y alertas, pero es una función de pago.

Recopilación de registros de múltiples orígenes

Cada configuración de recopilación tiene como objetivo un único origen. Cree una configuración independiente para cada origen de registros.

Recopilación detallada y aislamiento multiinquilino

En un entorno multiinquilino, utilice proyectos separados para aislar los datos. Los datos entre proyectos son inaccesibles entre sí, y cada proyecto puede tener permisos de acceso independientes.

Operaciones automatizadas e integración CI/CD

Utilice el método CRD para incorporar configuraciones de recopilación en flujos de trabajo GitOps o IaC, logrando una gestión de la recopilación de registros automatizada y rastreable.