Los logs de Azure Virtual Network (VNet) Flow le permiten registrar información sobre el tráfico IP que fluye a través de sus redes virtuales. Con el reenviador de logs de VNet Flow de New Relic, puede reenviar automáticamente estos registros a New Relic para el análisis de rendimiento y la resolución de problemas de conectividad de red.
Cómo funciona
El reenviador de logs de VNet Flow es una Azure Function App basada en eventos:

Event Grid → Event Hub: una suscripción de Event Grid en su cuenta de almacenamiento de flow-log escucha
BlobCreatedeventos en los blobs PT1H.json y los entrega directamente a un Event Hub. La suscripción utiliza la ruta del blob (asunto del evento) como clave de partición para garantizar el orden cronológico por archivo. No hay una función de retransmisión separada.VNetFlowLogsConsumer: una función desencadenada por Event Hub que procesa cada evento de blob mediante:
- Leer un cursor de Azure Table Storage para determinar qué ya se ha procesado.
- Descargar solo los bloques recién agregados del blob PT1H.json (lecturas delta).
- Analizar los registros de VNet flow (tuplas de flujo) en entradas de registro estructuradas.
- Envío de los registros analizados a New Relic a través de la API de Logs.
- Confirmar el cursor actualizado tras una entrega exitosa.
VNetFlowLogsCleanup: una función desencadenada por temporizador que elimina periódicamente las entradas de cursor obsoletas de Azure Table Storage (por defecto, diariamente a las 03:00 UTC).
Esta arquitectura garantiza un procesamiento eficiente e incremental — solo se leen y reenvían los datos nuevos, lo que evita el procesamiento duplicado de registros ya vistos.
Requisitos previos
Requisitos previos New Relic
Necesita lo siguiente en New Relic:
- Una cuenta New Relic . ¿No tienes uno? ¡Registrate gratis! No se requiere tarjeta de crédito.
- Una New Relic .
Requisitos previos Azure
Necesita lo siguiente en Azure:
- Una suscripción de Azure con VNet Flow Logs habilitado en las redes virtuales objetivo. Consulte la documentación de Microsoft sobre cómo habilitar VNet Flow Logs.
- Una cuenta de almacenamiento donde se escriben sus VNet Flow Logs (blobs PT1H.json).
- Un namespace de Event Hub y un Event Hub para la entrega de eventos (se puede crear automáticamente mediante la plantilla ARM/Bicep).
- Una cuenta de almacenamiento de Azure para el tiempo de ejecución de la aplicación de funciones y el almacenamiento de la tabla de cursores (se puede crear automáticamente mediante la plantilla ARM/Bicep).
Desplegar el reenviador de logs de VNet Flow
Puedes desplegar el reenviador de logs de VNet Flow mediante plantillas ARM/Bicep (recomendado) o manualmente.
La plantilla de ARM de New Relic VNet Flow Logs y la plantilla de Bicep proporcionan el despliegue automatizado de todos los recursos requeridos.
La plantilla automáticamente:
Cree un namespace de Event Hub, un Event Hub y un grupo de consumidores
Desplegar la aplicación de funciones (plan de consumo Flex, Node.js 22) con las funciones de VNet Flow Logs
Crea una cuenta de almacenamiento para el tiempo de ejecución de la Function App y el seguimiento del cursor
Cree un tema del sistema y una suscripción de Event Grid que enrute los eventos de creación de blobs PT1H.json directamente al Event Hub
Asignar una identidad administrada con las asignaciones de roles requeridas
Configure todos los ajustes necesarios de la aplicación
Opcionalmente, habilite las redes privadas con integración de VNet y extremos privados
Sigue estos pasos:
Vaya a one.newrelic.com > Integrations & Agents.
En Collections, seleccione Logging y luego haga clic en el mosaico Microsoft Azure VNet Flow Logs.
Desde el menú desplegable Select an account, elija la cuenta a la que enviar sus registros y haga clic en Continue.
En el paso Enter your license key, haga clic en Create a new key, haga clic en Copy key y guárdelo en un lugar seguro, luego haga clic en Continue.
Haga clic en Deploy to Azure. Se abre una nueva pestaña en Azure con la plantilla ARM cargada.
Seleccione el Resource group y un Region para el despliegue. Recomendamos un nuevo grupo de recursos, para evitar eliminar accidentalmente los componentes que crea.
En el campo New Relic license key, pegue la clave de licencia que copió anteriormente.
Asegúrese de que el extremo New Relic esté configurado en el correspondiente a su cuenta (US, EU o JP).
(Opcional) Ingrese el Source Storage Account Name donde se almacenan sus VNet Flow Logs. Debe estar en el mismo grupo de recursos que este despliegue. Déjelo en blanco para crear una nueva cuenta de almacenamiento de origen automáticamente.
(Opcional) Seleccione Disable Public Access To Storage Account para habilitar el modo de red privada con integración de VNet y extremos privados.
(Opcional) Configure los ajustes avanzados:
- New Relic Tags: etiquetas separadas por punto y coma (formato:
key1:value1;key2:value2) - Max Retries: máximo de reintentos de entrega (predeterminado: 3)
- Retry Interval: milisegundos entre reintentos (predeterminado: 2000)
- Function Log Level: verbosidad de los logs de la Function App —
Trace,Debug,Information,WarningoError(predeterminado:Information) - Max Event Batch Size: número máximo de eventos de Event Hub procesados por lote (predeterminado: 10)
- Min Event Batch Size: número mínimo de eventos de Event Hub por lote (predeterminado: 5)
- Max Wait Time: tiempo máximo que espera el disparador para llenar un lote antes de procesarlo, como
hh:mm:ss(predeterminado:00:00:30) - Event Hub Scaling Mode:
Basic(1 unidad de rendimiento, 4 particiones, sin inflado automático — tráfico bajo a medio) oEnterprise(inflado automático de hasta 40 unidades de rendimiento, 32 particiones — volúmenes de alto rendimiento) (predeterminado:Basic)
- New Relic Tags: etiquetas separadas por punto y coma (formato:
Haga clic en Review + create, revise la configuración y haga clic en Create.
De vuelta en New Relic, en el paso Create log partition, haga clic en Create partition. Esto crea una partición de datos
Log_VNET_Flows_Azure(regla:instrumentation.name = 'vnet-app', retención STANDARD) para que sus VNet Flow Logs se almacenen y consulten por separado de sus otros registros. Si ya existe una particiónLog_VNET_Flows_Azureen la cuenta, haga clic en Continue para omitir este paso.En el paso Test your logs, confirme que los datos están llegando ejecutando
SELECT * FROM Log_VNET_Flows_Azure, luego haga clic en See your data.Arquitecturas de despliegue
La plantilla ARM/Bicep admite dos modos de despliegue:
Despliegue estándar (predeterminado):
Usa Event Grid para monitorear el evento de creación de blobs en la cuenta de almacenamiento de origen
Enruta los eventos directamente al evento Hub para un procesamiento ordenado, utilizando el asunto como clave de partición
Procesa los registros de VNet Flow en la Function App y los reenvía a New Relic
Habilita el acceso a la red pública en la Function App, su cuenta de almacenamiento y el Event Hub
Despliegue de red privada (opcional,
disablePublicAccessToStorageAccount=true):Incluye todas las características del despliegue estándar
Aísla la Function App, su cuenta de almacenamiento y el Event Hub dentro de una red virtual privada, con el acceso a la red pública deshabilitado para ellos
Agrega integración de VNet con extremos privados para servicios de almacenamiento (blob, archivo, cola y tabla)
Crea zonas DNS privadas para la resolución de nombres
No modifica la cuenta de almacenamiento de origen (que contiene los VNet Flow Logs), la cual debe mantener habilitado el acceso a la red pública
Si prefiere el despliegue manual o necesita una configuración personalizada:
- Despliegue la Function App azure-vnet-flow-logs en su suscripción de Azure.
- Asegúrese de que las funciones
VNetFlowForwarder(VNetFlowLogsConsumeryVNetFlowLogsCleanup) estén incluidas en el despliegue. - Configure las variables de entorno requeridas (configuración de la aplicación) que se enumeran a continuación.
- Configure una suscripción de Event Grid en su cuenta de almacenamiento de registros de flujo para enrutar los eventos
BlobCreateddirectamente al Event Hub, utilizando el asunto del evento como clave de partición.
Configuración
Configure los siguientes ajustes de la aplicación en su Azure Function App:
Ajustes requeridos
Variable ambiental | Descripción |
|---|---|
| Su clave de licencia de New Relic. |
| Cadena de conexión para la cuenta de Azure Storage donde se almacenan los VNet Flow Logs. |
| Cadena de conexión para la cuenta de Azure Storage utilizada para persistir el estado del cursor (puede ser la misma que la de origen). |
| Cadena de conexión para el Event Hub que entrega eventos de creación de blobs a la función del consumidor. |
| Nombre de la instancia de Event Hub. |
Ajustes opcionales
Variable ambiental | Descripción | Por defecto |
|---|---|---|
| Extremo de API de New Relic Logs. Use
para cuentas de la UE. |
|
| Etiquetas separadas por punto y coma para agregar a todos los registros reenviados. Formato:
| Ninguno |
| Número máximo de reintentos de entrega a New Relic. |
|
| Intervalo entre reintentos en milisegundos. |
|
| Grupo de consumidor del evento Hub. |
|
| Número de horas para retener los registros del cursor de blob antes de que el trabajo de limpieza los elimine. |
|
| Programación NCRONTAB para el desencadenador del temporizador de limpieza del cursor. |
(diariamente a las 03:00 UTC) |
| Número de fallas consecutivas por blob antes de que el reenviador de logs lo omita como un evento envenenado. |
|
Ver datos de registro de flujo
Una vez configurados, los datos de VNet Flow Log aparecerán en New Relic. Puede consultarlo usando NRQL:
SELECT * FROM Log_VNET_Flows_Azure
También puede visualizar estos datos en la vista Conversations, que agrupa sus flujos principales por origen, dirección, protocolo y destino:

Cada registro de flujo incluye los siguientes atributos:
Atributo | Descripción |
|---|---|
| Dirección IP de origen |
| Dirección IP de destino |
| Puerto de origen |
| Puerto de destino |
| Protocolo (TCP, UDP e ICMP) |
| Dirección de Traffic (entrante, saliente) |
| Estado del flujo:
,
,
o
. Un flujo denegado se expresa aquí como
— no hay un atributo de acción separado. |
| Estado de cifrado:
,
o un código de motivo
(por ejemplo,
) |
| Bytes de origen a destino |
| Bytes desde el destino hasta el origen |
| Paquetes de origen a destino |
| Paquetes de destino a origen |
| ID de la lista de control de acceso asociado con el flujo |
| Nombre de la regla NSG/ACL que coincidió con el flujo |
| ID de recurso de Azure completo del recurso objetivo monitoreado |
| Nombre de la red virtual (cuando el objetivo es una VNet o subred) |
| Nombre de la subred (cuando corresponda) |
| Dirección MAC asociada con el registro de flujo |
| Categoría de registro (por ejemplo,
) |
| Nombre de la operación del registro de flujo |
| Versión del esquema de logs de VNet Flow |
| Identificador único del recurso de log de flujo |
| ID de recurso de Azure del registro de flujo |
Sugerencia
Cada registro reenviado también lleva los atributos comunes instrumentation.provider (azure), instrumentation.name (vnet-app) y instrumentation.version (la versión del reenviador), además de cualquier par de valor principal personalizado que configure en NR_TAGS. El CSV de tupla de flujo sin procesar se conserva en el campo message del registro.
Resolución de problemas
Para obtener ayuda con datos de registro de flujo faltantes, registros duplicados o eventos omitidos (tóxicos), consulte Solucionar problemas del monitoreo de Azure VNet Flow Logs.