Compartir vía


Configuración de la recopilación de registros en Container Insights

En este artículo se proporcionan detalles sobre cómo configurar la recopilación de datos en Container Insights para el clúster de Kubernetes una vez incorporado. Para obtener instrucciones sobre cómo habilitar Container Insights en el clúster, vea Habilitación de la supervisión de clústeres de Kubernetes.

Métodos de configuración

Hay dos métodos que se usan para configurar y filtrar los datos que se recopilan en Container Insights. Dependiendo de la configuración, puede elegir entre los dos métodos o puede ser necesario usar uno o otro. Los dos métodos se describen en la tabla siguiente con información detallada en las secciones siguientes.

Method Descripción
Regla de recopilación de datos (DCR) Reglas de recopilación de datos son conjuntos de instrucciones que admiten la recopilación de datos mediante la Canalización de Azure Monitor. Se crea un DCR al habilitar Container Insights y puede modificar la configuración de este DCR mediante Azure Portal u otros métodos.
ConfigMap ConfigMaps son un mecanismo de Kubernetes que permite almacenar datos no confidenciales, como un archivo de configuración o variables de entorno. Container Insights busca un objeto ConfigMap en cada clúster con una configuración determinada que defina los datos que debe recopilar.

Configuración de la recopilación de datos mediante DCR

El DCR creado por Container Insights se denomina MSCI-<cluster-region>-<cluster-name>. Puede ver este controlador de dominio junto con otros usuarios de su suscripción, y puede editarlo mediante métodos descritos en Crear y editar reglas de recopilación de datos (DCR) en Azure Monitor. Aunque puede modificar directamente el DCR para determinadas personalizaciones, puede realizar la configuración más necesaria mediante los métodos descritos a continuación. Vea Transformaciones de datos en Container Insights para obtener más información sobre cómo editar el DCR directamente para configuraciones más avanzadas.

Importante

Los clústeres de AKS deben usar una identidad administrada asignada por el sistema o por el usuario. Si un clúster usa una entidad de servicio, debe actualizar el clúster para usar una identidad administrada asignada por el sistema o una identidad administrada asignada por el usuario.

Configuración de DCR con Azure Portal

Con Azure Portal, puede seleccionar entre varias configuraciones preestablecidas para la recopilación de datos en Container Insights. Estas configuraciones incluyen diferentes conjuntos de tablas y frecuencias de colección en función de sus prioridades concretas. También puede personalizar la configuración para recopilar solo los datos que necesite. Puede usar Azure Portal para personalizar la configuración en el clúster existente después de habilitar Container Insights, o bien puede realizar esta configuración al habilitar Container Insights en el clúster.

  1. Seleccione el clúster en Azure Portal.

  2. Seleccione la opción Insights en la sección Supervisión del menú.

  3. Si Container Insights ya se ha habilitado en el clúster, seleccione el botón Configuración de supervisión. Si no es así, seleccione Configurar Azure Monitor y consulte Habilitación de la supervisión en el clúster de Kubernetes con Azure Monitor para obtener más información sobre cómo habilitar la supervisión.

    Una captura de un clúster de AKS con un botón de la configuración del monitor.

  4. Para AKS y Kubernetes habilitado para Arc, seleccione Usar identidad administrada si aún no ha migrado el clúster a la autenticación de identidad administrada.

  5. Seleccione uno de los valores preestablecidos de costo.

    Captura de pantalla que muestra las opciones de incorporación.

    Valor preestablecido de costo Frecuencia de recopilación Filtros de espacio de nombres Recopilación de Syslog Datos recopilados
    Estándar 1 m Ninguno no habilitado. Todas las tablas estándar de información de contenedores
    Optimizado para costos 5 m Excluye kube-system, gatekeeper-system, azure-arc no habilitado. Todas las tablas estándar de información de contenedores
    syslog 1 m Ninguno Habilitado de forma predeterminada Todas las tablas estándar de información de contenedores
    Registros y eventos 1 m Ninguno no habilitado. ContainerLog/ContainerLogV2
    KubeEvents
    KubePodInventory
  6. Si desea personalizar la configuración, haga clic en Editar configuración de recopilación.

    Una captura de pantalla que muestra las opciones de configuración de colección.

    Nombre Descripción
    Frecuencia de recopilación Determina la frecuencia con la que el agente recopila datos. Los valores válidos van de 1 minuto a 30 minutos en intervalos de 1 minuto. El valor predeterminado es de 1 minuto.
    Filtrado de espacios de nombres Desactivar: Recopila datos en todos los espacios de nombres.
    Incluir: recopila solo datos de los valores del campo Espacios de nombres.
    Excluir: recopila datos de todos los espacios de nombres, excepto los valores del campo Espacios de nombres.

    Matriz de espacios de nombres de Kubernetes separados por comas para recopilar los datos de inventario y rendimiento en función del valor de namespaceFilteringMode. Por ejemplo, los espacios de nombres = ["kube-system", "default"] con un valor Incluir recopilan solo estos dos espacios de nombres. Con el valor Excluir, el agente recopilará datos de todos los demás espacios de nombres, excepto kube-system y default.
    Datos recopilados Define las tablas de Container Insights que se van a recopilar. Vea a continuación para obtener una descripción de cada agrupación.
    Habilitación de ContainerLogv2 Marca booleana para habilitar esquema ContainerLogV2. Si se establece en true, los registros de stdout y stderr se ingieren en la tabla containerLogV2. En caso contrario, los registros de contenedor se ingieren en la tabla ContainerLog, a menos que se especifique lo contrario en el elemento ConfigMap. Al especificar las secuencias individuales, debe incluir la tabla correspondiente para ContainerLog o ContainerLogV2.
    Habilitación de la recopilación de Syslog Habilita la recopilación de Syslog desde el clúster.

    La opción Datos recopilados le permite seleccionar las tablas rellenas para el clúster. Las tablas se agrupan por los escenarios más comunes. Para especificar tablas individuales, debe modificar el DCR mediante otro método.

    Captura de pantalla que muestra las opciones de datos recopilados.

    Agrupar Tablas Notas
    Todo (predeterminado) Todas las tablas estándar de información de contenedores Necesario para habilitar las visualizaciones predeterminadas de Container Insights
    Rendimiento Rendimiento, InsightsMetrics
    Registros y eventos ContainerLog o ContainerLogV2, KubeEvents, KubePodInventory Se recomienda si ha habilitado las métricas administradas de Prometheus
    Cargas de trabajo, implementaciones y HPA InsightsMetrics, KubePodInventory, KubeEvents, ContainerInventory, ContainerNodeInventory, KubeNodeInventory, KubeServices
    Volúmenes persistentes InsightsMetrics, KubePVInventory
  7. Haga clic en Configurar para guardar la configuración.

Tablas y métricas aplicables para DCR

La configuración de frecuencia de recopilación y filtrado de espacios de nombres en DCR no se aplica a todos los datos de Container Insights. En la tabla siguiente se enumeran las tablas del área de trabajo de Log Analytics que usa Container Insights y las métricas que recopila junto con la configuración que se aplica a cada una.

Nombre de tabla ¿Intervalo? ¿Espacios de nombres? Comentarios
ContainerInventory
ContainerNodeInventory No La configuración de recopilación de datos para los espacios de nombres no es aplicable, ya que el nodo de Kubernetes no es un recurso con ámbito de espacio de nombres
KubeNodeInventory No La configuración de recopilación de datos para los espacios de nombres no es aplicable porque el nodo de Kubernetes no es un recurso con ámbito de espacio de nombres
KubePodInventory
KubePVInventory
KubeServices
KubeEvents No La configuración de recopilación de datos para el intervalo no es aplicable a los eventos de Kubernetes
Perf La configuración de recopilación de datos para los espacios de nombres no es aplicable a las métricas relacionadas con el nodo Kubernetes, ya que el nodo de Kubernetes no es un objeto con ámbito de espacio de nombres.
InsightsMetrics Los valores de recopilación de datos solo son aplicables a las métricas que recopilan los espacios de nombres siguientes: container.azm.ms/kubestate, container.azm.ms/pv y container.azm.ms/gpu
Espacio de nombres de métricas ¿Intervalo? ¿Espacios de nombres? Comentarios
Insights.container/nodes No El nodo no es un recurso con ámbito de espacio de nombres
Insights.container/pods
Insights.container/containers
Insights.container/persistentvolumes

Transmisión de valores en DCR

Al especificar las tablas que se van a recopilar mediante la CLI o ARM, se especifica un nombre de flujo de datos que corresponde a una tabla determinada en el área de trabajo de Log Analytics. En la tabla siguiente, se enumera el nombre de flujo de datos de cada tabla.

Nota:

Si está familiarizado con la estructura de una regla de recopilación de datos, los nombres de secuencia de esta tabla se especifican en la sección Flujos de datos de la DCR.

STREAM Tabla de información de contenedores
Microsoft-ContainerInventory ContainerInventory
Microsoft-ContainerLog ContainerLog
Microsoft-ContainerLogV2 ContainerLogV2
Microsoft-ContainerLogV2-HighScale ContainerLogV2 (modo de escalado alto)1
Microsoft-ContainerNodeInventory ContainerNodeInventory
Microsoft-InsightsMetrics InsightsMetrics
Microsoft-KubeEvents KubeEvents
Microsoft-KubeMonAgentEvents KubeMonAgentEvents
Microsoft-KubeNodeInventory KubeNodeInventory
Microsoft-KubePodInventory KubePodInventory
Microsoft-KubePVInventory KubePVInventory
Microsoft-KubeServices KubeServices
Microsoft-Perf Perf

1 No debe usar Microsoft-ContainerLogV2 y Microsoft-ContainerLogV2-HighScale en el mismo DCR. Esto provocará datos duplicados.

Uso compartido de DCR con varios clústeres

Al habilitar Container Insights en un clúster de Kubernetes, se crea un controlador de dominio nuevo para ese clúster y el DCR para cada clúster se puede modificar de forma independiente. Si tiene varios clústeres con configuraciones de supervisión personalizadas, es posible que desee compartir un único DCR con varios clústeres. Después, puede realizar cambios en un único DCR que se implementa automáticamente para los clústeres asociados a él.

Un DCR está asociado a un clúster con una regla de recopilación de datos de asociados (DCRA). Use la experiencia de DCR de versión preliminar para ver y quitar las asociaciones de DCR existentes para cada clúster. A continuación, puede usar esta característica para agregar una asociación a un único DCR para varios clústeres.

Configuración de la recopilación de datos mediante ConfigMap

ConfigMaps son un mecanismo de Kubernetes que permite almacenar datos no confidenciales, como un archivo de configuración o variables de entorno. Container Insights busca un objeto ConfigMap en cada clúster con una configuración determinada que defina los datos que debe recopilar.

Importante

ConfigMap es una lista global y solo puede haber un objeto ConfigMap aplicado al agente para Container Insights. Al aplicar otro objeto ConfigMap, se sobreescribe la configuración anterior de la recopilación de ConfigMap.

Requisitos previos

  • La versión de agente mínima admitida para recopilar los registros stdout, stderr y las variables de entorno de las cargas de trabajo de contenedor es ciprod06142019 o posterior.

Configuración e implementación de ConfigMap

Use el siguiente procedimiento para configurar e implementar el archivo de configuración de ConfigMap en el clúster:

  1. Si aún no tiene ConfigMap para Container Insights, descargue el archivo YAML de plantilla ConfigMap y ábralo en un editor.

  2. Edite el archivo YAML ConfigMap con las personalizaciones. La plantilla incluye toda la configuración válida con descripciones. Para habilitar una configuración, quite el carácter de comentario (#) y establezca su valor.

  3. Ejecute el siguiente comando kubectl para crear un ConfigMap:

    kubectl config set-context <cluster-name>
    kubectl apply -f <configmap_yaml_file.yaml>
    
    # Example: 
    kubectl config set-context my-cluster
    kubectl apply -f container-azm-ms-agentconfig.yaml
    

    El cambio de configuración puede tardar unos minutos en finalizar antes de surtir efecto. A continuación, se reiniciarán todos los pods del agente de Azure Monitor del clúster. El reinicio es un reinicio continuo para todos los pods de Azure Monitor Agent, por lo que no todos se reinician al mismo tiempo. Cuando finalicen los reinicios, recibirá un mensaje similar al resultado siguiente:

    configmap "container-azm-ms-agentconfig" created`.
    

Comprobación de la configuración

Para comprobar que la configuración se ha aplicado correctamente en un clúster, use el comando siguiente para revisar los registros de un pod de agente.

kubectl logs ama-logs-fdf58 -n kube-system -c ama-logs

Si hay errores de configuración de los pods del agente de Azure Monitor, la salida mostrará errores similares a los siguientes:

***************Start Config Processing******************** 
config::unsupported/missing config schema version - 'v21' , using defaults

Use las siguientes opciones para solucionar más problemas de los cambios de configuración:

  • Use el mismo comando kubectl logs desde un pod del agente.

  • Revise los registros en directo para ver si hay errores similares a los siguientes:

    config::error::Exception while parsing config map for log collection/env variable settings: \nparse error on value \"$\" ($end), using defaults, please check config map for errors
    
  • Los datos se envían a la tabla KubeMonAgentEvents del área de trabajo de Log Analytics cada hora con gravedad de error para los errores de configuración. Si no hay errores, la entrada en la tabla tendrá datos con información de gravedad, que informa de que no hay errores. La columna Tags contiene más información sobre el pod y el identificador de contenedor en el que se produjo el error y también la primera aparición, última aparición y recuento en la última hora.

Comprobación de la versión del esquema

Las versiones de esquema de configuración admitidas están disponibles como anotación de pod (versiones de esquema) en el pod del agente de Azure Monitor. Puede verlas con el siguiente comando kubectl.

kubectl describe pod ama-logs-fdf58 -n=kube-system.

Configuración de ConfigMap

En la tabla siguiente se describen los valores que puede configurar para controlar la recopilación de datos con ConfigMap.

Configuración Tipo de datos Value Descripción
schema-version Cadena (distingue mayúsculas de minúsculas) v1 Lo usa el agente al analizar este objeto ConfigMap. La versión de esquema que se admite actualmente es v1. No se admite la modificación de este valor y se rechazará cuando ConfigMap se evalúe.
config-version Cadena Le permite realizar un seguimiento de la versión de este archivo de configuración en el sistema o repositorio de control de código fuente. El número máximo de caracteres permitido es 10 y todos los demás caracteres se truncan.
[log_collection_settings]
[stdout]
enabled
Boolean true
false
Controla si se habilita la recopilación de registros del contenedor stdout. Cuando se establece en true y los espacios de nombres no se excluyen de la recopilación de registros de stdout, los registros de stdout se recopilarán a partir de todos los contenedores en todos los pods o nodos del clúster. Si no se especifica en ConfigMap, el valor predeterminado es true.
[stdout]
exclude_namespaces
Cadena Matriz separada por comas Matriz de espacios de nombres de Kubernetes para la que no se recopilarán los registros de stdout. Esta configuración es efectiva únicamente si enabled se establece en true. Si no se especifica en ConfigMap, el valor predeterminado es
["kube-system","gatekeeper-system"].
[stderr]
enabled
Boolean true
false
Controla si está habilitada la recopilación de registros de contenedor de stderr. Cuando se establece en true y los espacios de nombres no se excluyen de la recopilación de registros de stderr, los registros de stderr se recopilarán a partir de todos los contenedores en todos los pods o nodos del clúster. Si no se especifica en ConfigMap, el valor predeterminado es true.
[stderr]
exclude_namespaces
Cadena Matriz separada por comas Matriz de espacios de nombres de Kubernetes para la que no se recopilarán los registros de stderr. Esta configuración es efectiva únicamente si enabled se establece en true. Si no se especifica en ConfigMap, el valor predeterminado es
["kube-system","gatekeeper-system"].
[env_var]
enabled
Boolean true
false
Controla la recopilación de variables de entorno en todos los pods y nodos del clúster. Si no se especifica en ConfigMap, el valor predeterminado es true.
[enrich_container_logs]
enabled
Boolean true
false
Controla el enriquecimiento de los registros de contenedor para rellenar los valores de propiedad de Name e Image de cada entrada de registro escrita en la tabla ContainerLog de todos los registros de contenedor del clúster. Si no se especifica en ConfigMap, el valor predeterminado es false.
[collect_all_kube_events]
enabled
Boolean true
false
Controla si se recopilan eventos Kube de todos los tipos. De forma predeterminada, no se recopilan los eventos de Kube con el tipo Normal. Cuando este valor es true, ya no se filtran los eventos con el tipo Normal y se recopilan todos los eventos. Si no se especifica en ConfigMap, el valor predeterminado es false.
[schema]
containerlog_schema_version
Cadena (distingue mayúsculas de minúsculas) v2
v1
Establece el formato de ingesta de registros. Si es v2, se usa la tabla ContainerLogV2. Si es v1, se usa la tabla ContainerLog (esta tabla está en desuso). En el caso de los clústeres que habilitan Container Insights mediante la versión 2.54.0 o posterior de la CLI de Azure, el valor predeterminado es v2. Consulte Esquema de registro de Container Insights para obtener más información.
[enable_multiline_logs]
enabled
Boolean true
false
Controla si los registros de contenedor de varias líneas están habilitados. Consulte Registro de varias líneas en Container Insights para obtener más información. Si no se especifica en ConfigMap, el valor predeterminado es false. Esto requiere que el valor schema sea v2.
[metadata_collection]
enabled
Boolean true
false
Controla si los metadatos se recopilan en la columna KubernetesMetadata de la tabla ContainerLogV2.
[metadata_collection]
include_fields
Cadena Matriz separada por comas Lista de campos de metadatos que se van a incluir. Si no se usa la configuración, se recopilan todos los campos. Los valores válidos son ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"]
[metric_collection_settings]
[collect_kube_system_pv_metrics]
enabled
Boolean true
false
Permite recopilar métricas de uso de volumen persistente en el espacio de nombres kube-system. De forma predeterminada, no se recopilan las métricas de uso de los volúmenes persistentes con notificaciones de volumen persistentes en el espacio de nombres kube-system. Si esta opción se establece en true, se recopilarán las métricas de uso de volumen persistente para todos los espacios de nombres. Si no se especifica en ConfigMap, el valor predeterminado es false.
[agent_settings]
[proxy_config]
ignore_proxy_settings
Boolean true
false
Cuando es true, se omite la configuración del proxy. En ambos entornos de AKS y Kubernetes habilitado para Arc K8s, si el clúster está configurado con un proxy de desvío, la configuración del proxy se aplicará y se usará automáticamente para el agente. Para determinadas configuraciones, como con AMPLS + Proxy, es posible que se omita la configuración del proxy. Si no se especifica en ConfigMap, el valor predeterminado es false.

Pasos siguientes