Configuración de la recopilación de datos y la optimización de costes en Container Insights mediante la regla de recopilación de datos

En este artículo se describe cómo configurar la recopilación de datos en Container Insights mediante la regla de recopilación de datos (DCR) de su clúster de Kubernetes. Esto incluye configuraciones preestablecidas para optimizar los costes. Se crea una DCR cuando incorpora un clúster a Container Insights. El agente contenedorizado usa esta DCR para definir la recopilación de datos del clúster.

La DCR se usa principalmente para configurar la recopilación de datos de rendimiento e inventario y para configurar la optimización de costos.

La configuración específica que puede realizar con la DCR incluye:

  • Habilite o deshabilite el filtrado de colecciones y espacios de nombres para datos de rendimiento e inventario.
  • Definir el intervalo de recopilación de los datos de rendimiento e inventario
  • Habilitar o deshabilitar la recopilación de Syslog
  • Seleccionar un esquema de registro

Importante

La configuración completa de la recopilación de datos en Container Insights puede requerir la edición de DCR y ConfigMap para el clúster, ya que cada método permite la configuración de un conjunto diferente de opciones.

Consulte Configuración de la recopilación de datos en Container Insights mediante ConfigMap para ver una lista de opciones de configuración y el proceso para configurar la recopilación de datos mediante ConfigMap.

Requisitos previos

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

Configuración de la recopilación de datos

La DCR que se crea cuando habilita Container Insights se denomina MSCI-<cluster-region>-<\cluster-name>. Para verla en Azure Portal, seleccione la opción Reglas de recopilación de datos en el menú Supervisión de Azure Portal. En lugar de modificar directamente la DCR, debe usar uno de los métodos descritos a continuación para configurar la recopilación de datos. Consulte Parámetros de recopilación de datos para más información sobre las distintas configuraciones disponibles que cada método usa.

Advertencia

La experiencia predeterminada de Container Insights depende de todos los flujos de datos existentes. Al quitar uno o varios de los flujos predeterminados, la experiencia de Container Insights no está disponible y debe usar otras herramientas, como los paneles de Grafana y las consultas de registros para analizar los datos recopilados.

Puede usar Azure Portal para habilitar la optimización de costos en el clúster existente después de habilitar Container Insights, o bien puede habilitar Container Insights en el clúster junto con la optimización de costos.

  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 que se describen en Valores preestablecidos de costo.

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

  6. Si desea personalizar la configuración, haga clic en Editar configuración de recopilación. Consulte Parámetros de recopilación de datos para obtener más información sobre cada configuración. Para Datos recopilados, consulte Datos recopilados a continuación.

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

  7. Haga clic en Configurar para guardar la configuración.

Valores preestablecidos de costo

Al usar Azure Portal para configurar la optimización de costos, puede seleccionar entre las siguientes configuraciones preestablecidas. Puede seleccionar una de estas opciones o proporcionar su propia configuración personalizada. De manera predeterminada, Container Insights usa el valor preestablecido Estándar.

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

Datos recopilados

La opción Datos recopilados le permite seleccionar las tablas rellenas para el clúster. Es el equivalente al parámetro streams al realizar la configuración con la CLI o ARM. Si selecciona cualquier opción distinta de Todo (valor predeterminado), la experiencia de Container Insights deja de estar disponible y debe usar Grafana u otros métodos para analizar los datos recopilados.

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

Parámetros de la recopilación de datos

En la tabla siguiente, se describen los valores de recopilación de datos admitidos y el nombre que se usa para cada una de las distintas opciones de incorporación.

Nombre Descripción
Frecuencia de recopilación
CLI: interval
ARM: dataCollectionInterval
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. Si el valor está fuera del intervalo permitido, el valor predeterminado es de 1 minuto.
Filtrado de espacios de nombres
CLI: namespaceFilteringMode
ARM: namespaceFilteringModeForDataCollection
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.
Desactivado: omite las selecciones de Espacio de nombres y recopila datos de todos los espacios de nombres.
Filtrado de espacios de nombres
CLI: namespaces
ARM: namespacesForDataCollection
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. Con el valor Desactivar, el agente recopilará datos de todos los espacios de nombres, incluido kube-system y el valor predeterminado. Se omiten los espacios de nombres no válidos y no reconocidos.
Habilitación de ContainerLogv2
CLI: enableContainerLogV2
ARM: enableContainerLogV2
Marca booleana para habilitar el esquema de 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.
Datos recopilados
CLI: streams
ARM: streams
Matriz de flujos de datos de tablas de Container Insights. Consulte las secuencias admitidas anteriores para la asignación de tablas.

Tablas y métricas aplicables

La configuración de frecuencia de recopilación y filtrado de espacios de nombres 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.

Nota:

Esta característica configura las opciones de todas las tablas de Container Insights, excepto ContainerLog y ContainerLogV2. Para configurar las opciones de estas tablas, actualice el elemento ConfigMap como se describe en Configuración de recopilación de datos del agente.

Nombre de la 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

Valores de flujo de datos

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 dataFlows de la DCR.

STREAM Tabla de información de contenedores
Microsoft-ContainerInventory ContainerInventory
Microsoft-ContainerLog ContainerLog
Microsoft-ContainerLogV2 ContainerLogV2
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

Impacto en las visualizaciones y alertas

Si actualmente usa las tablas anteriores para otras alertas personalizadas o gráficos, modificar la configuración de recopilación de datos podría degradar esas experiencias. Si va a excluir espacios de nombres o a reducir la frecuencia de recopilación de datos, revise las alertas, los paneles y los libros existentes con estos datos.

Para buscar alertas que hagan referencia a estas tablas, ejecute la siguiente consulta de Azure Resource Graph:

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 "Perf" or properties  contains "InsightsMetrics" or properties  contains "ContainerInventory" or properties  contains "ContainerNodeInventory" or properties  contains "KubeNodeInventory" or properties  contains"KubePodInventory" or properties  contains "KubePVInventory" or properties  contains "KubeServices" or properties  contains "KubeEvents" 
| project id,name,type,properties,enabled,severity,subscriptionId
| order by tolower(name) asc

Pasos siguientes