¿Qué son los registros de red de contenedor?

Los registros de red de contenedor en Servicios de redes de contenedor avanzadas para Azure Kubernetes Service (AKS) proporcionan visibilidad de cada flujo de red dentro del clúster. Las métricas indican lo que sucede en la red (uso de ancho de banda, tasas de error). Los registros le indican por qué: quién inició una conexión, qué protocolos se usaron y si se permitió o bloqueó el tráfico.

Estos registros capturan los metadatos de cada flujo de red:

  • Direcciones IP de origen y destino, nombres de pod y nombres de servicio
  • Espacios de nombres, puertos y protocolos
  • Dirección del tráfico y decisiones de políticas

Con este contexto, puede correlacionar el comportamiento de red con cargas de trabajo específicas, solucionar problemas de conectividad, validar directivas de seguridad y realizar análisis forenses. Los registros de red de contenedor cubren el tráfico de nivel 3 (IP), nivel 4 (TCP/UDP) y nivel 7 (HTTP/gRPC/Kafka).

Para administrar el volumen y el costo de los datos, los registros de red de contenedor admiten la agregación de registros de flujo, que agrupa flujos similares en registros resumidos en lugar de almacenar un registro por evento de conexión. Mantiene los patrones operativos que necesita mientras reduce los costos de almacenamiento e ingestión. Para más información, consulte Agregación de registros de flujo.

Los registros de red de contenedor ofrecen dos modos:

  • Registros almacenados : recopilación continua con filtros personalizados y agregación de flujo. Mejor para la supervisión y el análisis a largo plazo.
  • Registros a petición - Captura en tiempo real a través de la CLI de Hubble y la interfaz de usuario de Hubble. Ideal para la solución de problemas ad hoc.

Use registros almacenados cuando necesite registros persistentes para el cumplimiento, el análisis de tendencias o las alertas automatizadas. Utilice los registros bajo demanda cuando esté depurando activamente un problema de conectividad o rendimiento y necesite visibilidad inmediata del tráfico en tiempo real.

Registros almacenados

El modo de registros almacenados se habilita automáticamente cada vez que Advanced Container Networking Services está habilitado en un clúster. La funcionalidad está en vigor, pero no se generan registros hasta que se indica a ACNS qué capturar.

Para empezar a recopilar registros, defina ContainerNetworkLog recursos personalizados que especifiquen qué tráfico supervisar: por espacio de nombres, pod, servicio, protocolo o veredicto. Una vez que se aplica un CRD, el agente de Cilium comienza a generar flujos de datos que coinciden con sus filtros y los escribe en cada nodo. La colección permanece activa hasta que quite los CRD o deshabilite ACNS.

Dado que controla exactamente qué tráfico se registra a través de filtros CRD, puede centrarse en los flujos que importan y evitar recopilar datos innecesarios. En combinación con la agregación de registros de flujo, este enfoque mantiene los costos de almacenamiento predecibles y centrados en el análisis.

Cómo funciona el modo de registros almacenados

Advanced Container Networking Services usa tecnología eBPF con Cilium para capturar flujos de red en cada nodo. Una vez que ACNS está habilitado y se aplica un ContainerNetworkLog recurso personalizado, el agente de Cilium recopila tráfico que coincide con el filtro y escribe registros en formato /var/log/acns/hubble/events.log JSON en cada host. La generación de registros se ejecuta completamente dentro del clúster y no depende de Azure Monitor.

Para su uso en producción, se recomienda habilitar el complemento Azure Monitor. Cuando se habilita, los agentes de Container Insights recopilan registros locales del host, aplican límites de regulación y los envían a un área de trabajo de Log Analytics, donde se ofrece retención a largo plazo, consultas KQL, y los paneles integrados del portal de Azure y Grafana. Esta es la ruta de acceso más integrada y la que la mayoría de los clientes deben elegir.

Si el equipo tiene una canalización de observabilidad existente, puede reenviar los mismos registros locales de host a cualquier servicio de registro o recopilador compatible con OpenTelemetry, ya sea junto con Azure Monitor o en su lugar.

Diagrama de cómo funcionan los registros de red de contenedor.

Para obtener más información sobre la limitación y Container Insights, consulte la documentación de Container Insights.

Uso de registros de red de contenedor con o sin Azure Monitor

Puede consumir los registros de la red de contenedores de dos maneras. La opción adecuada depende de si desea una experiencia nativa de Azure integrada o si ya tiene una canalización de observabilidad que desea seguir usando.

Ruta Lo que obtienes Cuándo elegirlo
Azure Monitor complemento (recomendado) Container Insights recopila registros locales del host en un espacio de trabajo de Log Analytics. Obtiene la retención a largo plazo, KQL, los paneles integrados del portal de Azure y los paneles de Grafana administrados de forma predeterminada. Desea una experiencia de AKS lo más integrada y lista para producción con una configuración mínima.
Archivos locales del host con su propio pipeline ACNS escribe registros JSON en /var/log/acns/hubble/events.log en cada nodo. Los reenvía a cualquier servicio de registro o recopilador compatible con OpenTelemetry, junto con Azure Monitor o en su lugar. Ya tiene una plataforma de observabilidad centralizada y quiere que los registros de red se coloquen allí.

Para la mayoría de los clientes, se recomienda habilitar Azure Monitor. Es la forma más rápida de obtener funcionalidades de retención, consulta y panel sin necesidad de desarrollar tu propia canalización.

Funcionalidades clave del modo de registros almacenados

  • Filtros personalizables. Defina ContainerNetworkLog recursos personalizados para filtrar por espacio de nombres, pod, servicio, puerto, protocolo, veredicto o dirección del tráfico. Solo se registra el tráfico coincidente, por lo que obtendrá un control preciso sobre lo que se recopila y lo que cuesta.

  • Agregación del registro de flujo. Los flujos similares se agrupan automáticamente en registros resumidos cada 30 segundos, lo que reduce el volumen de datos y conserva las señales operativas, como los patrones de comunicación de servicio, las tasas de error y los veredictos de seguridad. Combinada con filtros específicos, la agregación le permite mantener una amplia visibilidad sin costos excesivos de incorporación. Para más información, consulte Agregación de registros de flujo.

  • Opciones de almacenamiento de registros. ACNS siempre escribe registros localmente en cada nodo. Desde allí, puede elegir cómo consumirlos:

    • Archivos locales de host (siempre activado): Los registros se almacenan en nodos host en /var/log/acns/hubble. Los archivos giran automáticamente a 50 MB y se sobrescriben los registros anteriores. Úselo directamente para la supervisión a corto plazo, en tiempo real o reenvíe los archivos a cualquier recopilador o servicio de registro compatible con OpenTelemetry para una administración de registros adicional.

    • Azure Monitor (recomendado): Habilite el complemento de Azure Monitor para recopilar y almacenar registros en un área de trabajo de Log Analytics. Obtienes almacenamiento seguro y compatible con retención a largo plazo, consultas KQL, detección de anomalías, análisis de datos históricos y alertas a través del servicio administrado para Prometheus. La generación de registros todavía se ejecuta a través del agente de Cilium y el CRD de ContainerNetworkLog; Azure Monitor agrega la capa de consumo en la parte superior.

      La ContainerNetworkLogs tabla usa el nivel De análisis de forma predeterminada. Puede cambiar al nivel Básico para reducir los costos de ingesta y retención, a la vez que mantiene una experiencia de observabilidad similar. Cada nivel tiene un panel de Azure portal dedicado optimizado para sus funcionalidades de consulta. Para obtener más información sobre los planes de tablas, consulte planes de tablas de Log Analytics. Para obtener información sobre cómo establecer el plan de tabla, consulte Establecimiento del plan de tabla.

  • Visualización en el portal de Azure. Consulte y analice los registros directamente en Log Analytics o use los paneles integrados del portal de Azure. Hay disponible un panel dedicado para cada nivel de tabla, por lo que obtendrá la misma experiencia de observabilidad independientemente del nivel que elija. Para obtener más información, consulte Visualizar registros en el portal de Azure.

Visualización de registros en el portal de Azure

Puede visualizar, consultar y analizar los registros de flujo en el portal de Azure en el área de trabajo de Log Analytics para el clúster.

Captura de pantalla de los registros de red del contenedor en un espacio de trabajo de Log Analytics.

Los registros de red de contenedor incluyen paneles integrados de Azure portal para visualizar los datos de flujo. Hay disponible un panel independiente para cada nivel de tabla de Log Analytics:

Panel de control Ruta Nivel de tabla
Registros de flujo: nivel básico (ID: 23155) Azure>Insights>Containers>Networking>Flow Logs - Nivel básico Basic
Registros de flujo: nivel de análisis (identificador: 23156) Azure>Insights>Containers>Networking>Flow Logs - Analytics Tier Analytics (valor predeterminado)

Ambos paneles muestran qué cargas de trabajo de AKS se comunican entre sí, incluidas las solicitudes de red, las respuestas, las caídas y los errores. Use el panel que coincida con el nivel de tabla configurado para la tabla ContainerNetworkLogs.

Tip

La ContainerNetworkLogs tabla tiene como valor predeterminado el nivel De análisis. Si desea reducir los costos, puede cambiar al nivel Básico y usar el panel de nivel Básico correspondiente sin perder la cobertura de observabilidad. Para obtener más información, consulte planes de tabla de Log Analytics.

Los paneles del portal de Azure tienen los siguientes componentes principales:

  • Información general sobre el estado de la red. En la sección superior se muestran las métricas de resumen (registros de flujo total, solicitudes únicas, solicitudes eliminadas y solicitudes reenviadas) para que pueda detectar rápidamente anomalías. Las estadísticas se desglosan por protocolo: solicitudes eliminadas de DNS, respuestas HTTP 2xx, tasas de solicitud y respuesta de nivel 4, y recuentos de caídas. Un gráfico de dependencias de servicio muestra qué servicios se comunican entre sí, lo que facilita la identificación de cuellos de botella y rutas de acceso de tráfico inesperadas.

    Captura de pantalla de las estadísticas de registros de flujo y un gráfico de dependencias de servicio.

  • Registros de flujo y registros de errores. El panel separa los registros de flujo de los registros de error en vistas distintas, por lo que puede centrarse en errores sin examinar el tráfico normal. Use los filtros integrados para restringir los resultados por protocolo, espacio de nombres o veredicto. Por ejemplo, para solucionar errores de resolución de DNS, filtre los registros de errores por el protocolo DNS.

    Captura de pantalla de los registros de flujo y los registros de errores.

    Cada entrada de registro incluye etiquetas, marcas de tiempo y detalles de origen o destino para ayudarle a identificar eventos específicos durante una investigación.

    Captura de pantalla de los filtros disponibles en los paneles del portal de Azure.

  • Principales espacios de nombres, cargas de trabajo y errores de DNS. En esta sección se muestran los espacios de nombres más activos, las cargas de trabajo de tráfico más altas, el uso de puertos y los errores dns más frecuentes. Úselo para identificar qué cargas de trabajo generan la mayor parte del tráfico, detectar solicitudes descartadas y comparar la distribución del protocolo (por ejemplo, TCP frente a UDP). Los patrones inusuales aquí, como picos inesperados o destinos desconocidos, pueden indicar errores de configuración o problemas de seguridad.

    Captura de pantalla de los espacios de nombres principales y las métricas de los pods.

Agregación de registros de flujo

Los flujos de red se acumulan rápidamente. Un clúster con 200 microservicios puede generar cientos de miles de registros de flujo cada 30 segundos. El almacenamiento de todos los datos sin procesar resulta costoso.

Por ejemplo, client-1 y client-2 ambos hablan con un server pod a través de TCP. En una ventana de 30 segundos, los registros de flujo sin procesar en el nodo tienen este aspecto:

Source Puerto de origen Destination Puerto de destino Protocolo Flag
client-1 12345 server 80 TCP SYN
server 80 client-1 12345 TCP SYN-ACK
client-1 12345 server 80 TCP ACK
client-1 12345 server 80 TCP PSH
server 80 client-1 12345 TCP ACK
client-2 23456 server 80 TCP SYN
server 80 client-2 23456 TCP SYN-ACK
client-2 23456 server 80 TCP ACK
client-2 23456 server 80 TCP PSH
server 80 client-2 23456 TCP ACK

Con la agregación, esos 10 registros se convierten en dos:

Source Puerto de origen Destination Puerto de destino Protocolo Flujos enviados Flujos recibidos
client-1 12345 server 80 TCP 4 6
client-2 23456 server 80 TCP 4 6

La agregación de registros de flujo aborda esto mediante la agrupación de flujos similares en registros resumidos. Durante cada ventana de 30 segundos, los flujos que comparten los mismos campos clave de agregación se combinan en un único registro con un recuento de cuántos flujos representa.

Los siguientes campos componen la clave de agregación:

Campo Descripción
verdict REENVIADO, DESCARTADO o ERROR
is_reply Si el flujo es una solicitud (false) o una respuesta (true)
drop_reason_desc Motivo por el que se descartaron los paquetes
source.namespace Espacio de nombres de pod de origen
destination.namespace Espacio de nombres del pod de destino
source.workloads Carga de trabajo de origen (Deployment, StatefulSet o DaemonSet)
destination.workloads Carga de trabajo de destino (Deployment, StatefulSet o DaemonSet)
source.identity Identidad de seguridad de origen (siempre disponible como opción de respaldo)
destination.identity Identidad de seguridad de destino (siempre presente como respaldo)
l4.TCP.destination_port Puerto de destino TCP
l4.UDP.destination_port Puerto de destino UDP
l7.http.code Código de respuesta HTTP (200, 404, 500, etc.)
l7.dns.rcode Código de respuesta DNS (NOERROR, NXDOMAIN, etc.)
IP.ipVersion IPv4 o IPv6
IP.encrypted Si el flujo está cifrado (WireGuard/IPsec)
source.cluster_name Nombre del clúster de origen
destination.cluster_name Nombre del clúster de destino

Los flujos que coinciden con todos estos campos dentro de una ventana de 30 segundos se combinan en un registro. Esto conserva las señales que necesita (qué servicios se comunican, con qué frecuencia, qué errores se producen, si se permitió o bloqueó el tráfico) al reducir significativamente el volumen de datos. A diferencia del muestreo, que descarta aleatoriamente los flujos y puede perder eventos de seguridad poco frecuentes, la agregación conserva 100% de la información del patrón.

Puntos clave:

  • La agregación está habilitada y configurada de forma predeterminada. Esto reduce los costos de almacenamiento y procesamiento de registros sin ninguna configuración manual.
  • Controlas qué tráfico se captura a través de includeFilters en el ContainerNetworkLog CRD.
  • Los filtros más estrechos (pares de espacio de nombres o de servicio específicos) suelen lograr una mejor compresión porque los flujos capturados son más similares.
  • Los registros agregados omiten los atributos de alta cardinalidad y por flujo (por ejemplo, marcas de tiempo individuales, direcciones IP de pod, direcciones URL HTTP, nombres de consulta DNS) para minimizar el volumen de ingesta y el costo de almacenamiento. Están diseñados para la detección de problemas de alto nivel. Use registros a petición para el análisis y la investigación de flujos específicos.

Nota:

La reducción real del almacenamiento varía en función de la configuración del filtro, la diversidad de cargas de trabajo y los patrones de tráfico.

Registros bajo demanda

Los registros a petición permiten capturar e inspeccionar los registros de flujo en tiempo real, sin configuración previa ni almacenamiento persistente. Use los registros a petición cuando solucione activamente un problema de conectividad o rendimiento y necesite visibilidad inmediata.

ACNS proporciona dos herramientas para la captura a petición. Para configurar cualquiera de las herramientas, consulte Configuración del modo de registros a petición.

CLI de Hubble

La CLI de Hubble le permite consultar, filtrar y analizar registros de flujo directamente desde el terminal. Es especialmente útil cuando necesita filtros específicos, por ejemplo, aislar el tráfico por espacio de nombres, etiqueta de pod o veredicto durante una sesión de depuración activa.

Captura de pantalla de la CLI de Hubble.

Interfaz de usuario de Hubble

La interfaz de usuario de Hubble proporciona una vista gráfica de la comunicación de servicio a servicio. Es una buena opción cuando desea realizar un seguimiento visual de las rutas de acceso de tráfico, identificar qué servicios se comunican y detectar anomalías sin escribir comandos de la CLI.

Captura de pantalla de la interfaz de usuario de Hubble.

Principales ventajas de los registros a petición

  • No se requiere ninguna configuración anterior. Inicie la captura de flujos inmediatamente sin definir recursos personalizados ni configurar el almacenamiento.
  • Visibilidad en tiempo real. Inspeccione el tráfico activo y vea los metadatos de paquetes a medida que se produzcan problemas.
  • Solución de problemas rápida. Filtre los flujos de forma interactiva a través de la CLI de Storage o vea los mapas de servicio visualmente en la interfaz de usuario de Storage.
  • Sobrecarga baja. No se requiere almacenamiento persistente, por lo que no hay ningún costo continuo para las investigaciones ad hoc.

Recomendaciones para registros almacenados

  1. Comience con filtros amplios y, a continuación, restrinja. Cuando habilite los registros de flujo por primera vez, use filtros amplios para capturar el tráfico a través de sus espacios de nombres importantes. Ejecute la configuración durante unos días y revise los datos recopilados en Log Analytics. Examine el volumen de datos, el costo y si los flujos capturados coinciden con lo que realmente necesita. A continuación, apriete includeFilters para centrarse en el tráfico de alto valor y cortar el ruido.

  2. Usa primero los paneles de control preconstruidos. Los paneles integrados de Azure portal cubren casos de uso comunes, como patrones de comunicación de servicio, tasas de error y errores de DNS. Empieza ahí. Agregue paneles personalizados o consultas de Log Analytics solo si necesita visibilidad que los paneles predefinidos no proporcionan.

  3. Revise periódicamente. A medida que cambian las cargas de trabajo y los patrones de tráfico, es posible que los filtros necesiten actualizarse. Compruebe el volumen de datos y la cobertura de flujo periódicamente para asegurarse de que sigue capturando el tráfico adecuado a un costo razonable.

Limitaciones

Requisitos de plano de datos y características:

  • El modo de registros almacenados solo funciona con el plano de datos de Cilium.
  • Los registros de flujo de nivel 7 solo se capturan cuando la compatibilidad con directivas de nivel 7 está habilitada. Para obtener más información, consulte Configuración de una directiva de nivel 7.
  • Los flujos y métricas de DNS solo se capturan cuando se aplica una directiva de red de nombre de dominio completo (FQDN) de Cilium. Para obtener más información, consulte Configuración de una directiva de FQDN.

Ventajas y desventajas de agregación:

  • La agregación de registros de flujo no conserva marcas de tiempo de flujo individuales, direcciones IP por pod ni campos de cardinalidad alta, como direcciones URL HTTP y nombres de consulta DNS. Use registros a petición para la investigación por flujo.

Almacenamiento y plataforma:

  • El archivo local de host en /var/log/acns/hubble/ está limitado a 50 MB por nodo y gira automáticamente. Si necesita retención a largo plazo, habilite Azure Monitor (recomendado) o reenvíe el archivo a su propio servicio de registro.
  • No se admite el plan de tabla de registros auxiliares.

Precios

Importante

Los servicios avanzados de redes de contenedores es una oferta de pago.

Para obtener más información sobre los precios, consulte Servicios avanzados de redes de contenedores: precios.