Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Container Insights almacena los datos de registro que recopila en una tabla denominada ContainerLogV2 en un área de trabajo de Log Analytics. En este artículo se describe el esquema de esta tabla y sus opciones de configuración. También compara esta tabla con la tabla ContainerLog heredada y proporciona detalles para migrar desde ella.
Comparación de tablas
ContainerLogV2 es el esquema predeterminado para la versión 2.54.0 de la CLI y versiones posteriores. Esta es la tabla predeterminada para los clientes que incorporan Container Insights con la autenticación de identidad administrada. ContainerLogV2 se puede habilitar explícitamente a través de la versión 2.51.0 o posterior de la CLI mediante la configuración de recopilación de datos.
Importante
La compatibilidad con la tabla ContainerLog se retirará el 30 de septiembre de 2026.
En la tabla siguiente se destacan las principales diferencias entre el uso de los esquemas ContainerLogV2 y ContainerLog.
| Diferencias de características | ContainerLog | ContainerLogV2 |
|---|---|---|
| Schema | Detalles en ContainerLog. | Detalles en ContainerLogV2. Las columnas adicionales son: - ContainerName- PodName- PodNamespace- LogLevel
1- KubernetesMetadata
2 |
| Incorporación | Configurable solamente a través de ConfigMap. | Configurable a través de ConfigMap y DCR. 3 |
| Precios | Solo compatible con los registros de análisis de precio completo. | Admite el nivel de registros básicos de bajo costo además de los registros de análisis. |
| Consultas | Requiere varias operaciones de combinación con tablas de inventario para las consultas estándar. | Incluye metadatos adicionales de pod y contenedor para reducir la complejidad de las consultas y las operaciones de combinación. |
| Multilínea | No se admite, las entradas de varias líneas se dividen en varias filas. | Compatibilidad con el registro de varias líneas para permitir entradas únicas y consolidadas para la salida de varias líneas. |
1 Si LogMessage es json válido y tiene una clave denominada level, se usará su valor. De lo contrario, la coincidencia de palabras clave basada en regex se usa para inferir LogLevel de LogMessage. Esta inferencia puede dar lugar a algunas clasificaciones incorrectas.
LogLevel es un campo de cadena con un valor de mantenimiento como CRITICAL, ERROR, WARNING, INFO, DEBUG, TRACE o UNKNOWN.
2KubernetesMetadata es una columna opcional habilitada con metadatos de Kubernetes. El valor de este campo es JSON con los campos podLabels, podAnnotations, podUid, Image, ImageTag y Image repo.
3 La configuración de DCR requiere autenticación de identidad administrada.
Nota:
El LogMessage campo es dinámico y admite la ingesta de formatos de cadena JSON y texto no cifrado.
La exportación de datos de registro a Event Hubs y la cuenta de almacenamiento se admite si el valor entrante LogMessage es JSON válido o una cadena sin formato válida.
Si el archivo LogMessage JSON tiene un formato incorrecto, esos mensajes de registro se ingerirán con escape. De forma predeterminada, los mensajes de registro de más de 16 KB se truncan. Con el registro de varias líneas habilitado, los mensajes de registro de más de 64 KB se truncan.
Habilitar el esquema ContainerLogV2
Habilite el esquema ContainerLogV2 para un clúster utilizando el perfil de logs del clúster o el ConfigMap del clúster. Si ambas opciones están habilitadas, ConfigMap tiene prioridad. La tabla ContainerLog se usa solo cuando ambos se configuran explícitamente en desactivado.
Importante
La configuración ContainerLogV2 no controla si los datos se recopilan o no. Solo especifica a qué tabla se envían los datos cuando se recopilan.
Antes de habilitar el esquema ContainerLogsV2 , debe evaluar si tiene alguna regla de alerta que dependa de la tabla ContainerLog . Todas estas alertas deben actualizarse para usar la nueva tabla. Ejecute la siguiente consulta Azure Resource Graph para buscar reglas de alerta que hagan referencia a la tabla ContainerLog.
resources
| where type in~ ('microsoft.insights/scheduledqueryrules') and ['kind'] !in~ ('LogToMetric')
| extend severity = strcat("Sev", properties["severity"])
| extend enabled = tobool(properties["enabled"])
| where enabled in~ ('true')
| where tolower(properties["targetResourceTypes"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["targetResourceType"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["scopes"]) matches regex 'providers/microsoft.operationalinsights/workspaces($|/.*)?'
| where properties contains "ContainerLog"
| project id,name,type,properties,enabled,severity,subscriptionId
| order by tolower(name) asc
Filtrado de metadatos y registros de Kubernetes
El filtrado de metadatos y registros de Kubernetes amplía el esquema ContainerLogsV2 con metadatos adicionales de Kubernetes. La característica Filtrado de registros proporciona funcionalidades de filtrado para contenedores de cargas de trabajo y plataforma. Con estas características se obtiene un contexto más completo y se mejora la visibilidad de las cargas de trabajo.
Nota:
Los metadatos y registros de Kubernetes que filtran el panel de Grafana no admiten actualmente registros básicos.
Características
Esquema De ContainerLogV2 mejorado Cuando se habilitan los metadatos de registros de Kubernetes, agrega una columna a la
ContainerLogV2que se llamaKubernetesMetadataque mejora la solución de problemas con consultas de registro sencillas y elimina la necesidad de combinarse con otras tablas. Los campos de esta columna incluyenPodLabels,PodAnnotations,PodUid,Image,ImageID,ImageRepo,ImageTag. Estos campos mejoran la experiencia de la solución de problemas mediante consultas de registro sin tener que unirse a otras tablas. Consulte a continuación más información sobre cómo habilitar la característica de metadatos de Kubernetes.Nivel de registro Esta característica agrega una
LogLevelcolumna a ContainerLogV2 con los posibles valores críticos, errores, advertencias, información, depuración, seguimiento o desconocido. Esto le ayuda a evaluar el estado de la aplicación en función del nivel de gravedad. Al agregar el panel de Grafana, puede visualizar las tendencias de nivel de registro a lo largo del tiempo e identificar rápidamente los recursos afectados.Panel de Grafana para la visualización El panel de Grafana proporciona una visualización codificada en color del nivel de registro y también proporciona información sobre el volumen de registro, la tasa de registro, los registros de registro, los registros. Los usuarios pueden obtener análisis que incluyan el factor tiempo, información dinámica sobre las tendencias de nivel de registro a lo largo del tiempo y la supervisión crucial en tiempo real. El panel también proporciona un desglose detallado por equipo, pod y contenedor, que permite el análisis en profundidad y la solución de problemas identificada Consulte a continuación más información sobre cómo instalar el panel de Grafana.
Filtrado de registros basado en anotaciones para cargas de trabajoTécnica eficaz de filtrado de registros mediante anotaciones de pod. Con ello puede centrarse en la información relevante sin examinar el ruido. El filtrado basado en anotaciones le permite excluir la recopilación de registros para determinados pods y contenedores anotando el pod, lo que ayudaría a reducir significativamente el costo de Log Analytics. Consulte Filtrado de registros basado en anotaciones para obtener más información sobre cómo configurar el filtrado basado en anotaciones.
Filtrado de registros basado en ConfigMap para registros de plataforma (espacios de nombres de Kubernetes del sistema): los contenedores emiten registros de plataforma en los espacios de nombres del sistema (o restringidos similares). De forma predeterminada, todos los registros de contenedor del espacio de nombres del sistema se excluyen para minimizar el costo de los datos en el área de trabajo de Log Analytics. Pero en escenarios de solución de problemas específicos, los registros del contenedor del sistema desempeñan un papel fundamental. Un ejemplo es el contenedor de
corednsen el espacio de nombreskube-system.
Habilitación de metadatos de Kubernetes
Importante
La colección de metadatos de Kubernetes requiere autenticación de identidad administrada y ContainerLogsV2
Habilite los metadatos de Kubernetes mediante ConfigMap con la siguiente configuración. Todos los campos de metadatos se recopilan de forma predeterminada cuando la metadata_collection está habilitada. Quite la marca de comentario include_fields para especificar campos individuales que se van a recopilar.
[log_collection_settings.metadata_collection]
enabled = true
include_fields = ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"]
Después de unos minutos, la columna KubernetesMetadata debe incluirse con las consultas de registro de la tabla ContainerLogV2, como se muestra a continuación.
Instalación de un panel de Grafana
Importante
Si ha habilitado Grafana con las instrucciones de Enable monitoring for Kubernetes clusters, entonces su instancia de Grafana ya debería tener acceso a su espacio de trabajo de Azure Monitor para las métricas de Prometheus. El tablero de Metadatos de Registros de Kubernetes también requiere acceso a su espacio de trabajo de Log Analytics, que contiene datos de registro. Consulte Cómo modificar los permisos de acceso a Azure Monitor para obtener instrucciones sobre cómo conceder a la instancia de Grafana el rol Lector de supervisión para el área de trabajo de Log Analytics.
Importe el panel desde la galería de Grafana en ContainerLogV2 Dashboard. Puede entonces abrir el panel y seleccionar valores de DataSource, Subscription, ResourceGroup, Cluster, Namespace y Labels.
Nota:
Al cargar inicialmente el panel de Grafana, podría ver algunos errores debido a que las variables aún no están seleccionadas. Para evitar que esto sea recurrente, guarde el panel después de seleccionar un conjunto de variables para que se convierta en el valor predeterminado en la primera apertura.
Registro de varias líneas habilitado
Con el registro de varias líneas habilitado, los registros de contenedor divididos previamente se unen y se envían como entradas únicas a la tabla ContainerLogV2. Habilite el registro de varias líneas con ConfigMap como se describe en Configuración de la recopilación de datos en Container Insights mediante ConfigMap.
Nota:
El mapa de configuración ahora incluye una opción de especificación de idioma que le permite seleccionar solo los idiomas que le interesan. Esta característica se puede habilitar editando los idiomas de la opción stacktrace_languages del mapa de configuración.
Limitaciones
- El registro multilínea solo combina seguimientos de pila de excepciones de los contenedores mediante Java, Python, .NET y Go. Otras entradas de registro de varias líneas, incluidas las excepciones personalizadas y los mensajes de registro arbitrarios, no se unen.
- El registro multilínea no se admite para los seguimientos de pila de excepciones de Python con fine-grained-error-locations-in-tracebacks. Para que el registro de varias líneas funcione, debe desactivar esta característica, tal como se describe en la documentación de Python.
- Si la línea de log supera los 16 KB, en lugar de truncarse por defecto por el entorno de ejecución del contenedor, la línea de log se admitirá hasta 64 KB.
Ejemplos
Registro de varias líneas de seguimiento de la pila de excepciones deshabilitado
Registro de varias líneas habilitada para el seguimiento de la pila de excepciones
Registro de varias líneas de seguimiento de la pila de Java habilitado
Registro de varias líneas habilitada para el seguimiento de la pila de Python
Pasos siguientes
- Configuración de Registros básicos para ContainerLogV2.
- Obtenga información sobre cómo consultar datos de ContainerLogV2