Compartir vía


Transformaciones de canalización de Azure Monitor

Las transformaciones de datos de canalización de Azure Monitor permiten filtrar y manipular los datos de registro antes de enviarlos a Azure Monitor en la nube. Las transformaciones permiten estructurar los datos entrantes según sus necesidades de análisis, lo que garantiza que solo se envíe información relevante a Azure Monitor y que esté en un formato adecuado para su procesamiento.

Entre las ventajas del uso de transformaciones de canalización se incluyen las siguientes:

  • Menores costos: Filtrar y agregar datos para reducir el volumen de ingesta y, a su vez, reducir los costos de ingesta
  • Mejor análisis: Esquemas estandarizados para consultas más rápidas y paneles más limpios.
  • Prueba futura: La validación de esquema integrada evita sorpresas durante la implementación.

La canalización de Azure Monitor resuelve los desafíos de los altos costos de ingesta y el análisis complejo mediante la habilitación de transformaciones antes de la ingesta, por lo que los datos están limpios, estructurados y optimizados antes de que incluso alcancen el área de trabajo de Log Analytics.

Estructura básica de la consulta

Al igual que las transformaciones de Azure Monitor, todas las consultas de transformación de canalización comienzan con source, que es una tabla virtual que representa el flujo de entrada. A continuación, puede usar cualquier operador KQL compatible para filtrar, modificar o agregar columnas a los datos como lo haría con cualquier otra tabla. La consulta se aplica individualmente a cada entrada enviada por el origen de datos.

Consulte Estructura de consulta básica para obtener más información sobre la estructura de consulta y los operadores admitidos.

Definición de una transformación

Las transformaciones de canalización se definen como parte de un flujo de datos. Puede configurarlos mediante Azure Portal o plantillas de ARM. Puede definir su propia transformación personalizada o usar plantillas precompiladas para patrones comunes. La validación de sintaxis, como la comprobación de expresiones KQL, está disponible para ayudar a garantizar la precisión antes de guardar la configuración. Estas funcionalidades permiten dar forma de datos flexible y eficaz directamente dentro de la infraestructura de supervisión.

Para definir una transformación en Azure Portal, seleccione Agregar transformaciones de datos, que abre el editor de transformación. Seleccione una plantilla que proporcione consultas predefinidas para escenarios comunes. Use la plantilla como punto de partida y modifique la consulta KQL según sea necesario para ajustarse a sus requisitos. Use la plantilla Personalizada para empezar con una consulta en blanco.

Captura de pantalla de la selección de plantilla para una transformación.

Una vez definida la consulta, haga clic en Comprobar sintaxis KQL para validar la sintaxis de la consulta antes de guardar el flujo de datos. Para los datos syslog y CEF, el comprobador también comprobará los datos resultantes de la transformación coincide con el esquema de la tabla a la que se envían los datos. Si la transformación cambia el nombre o agrega columnas como parte de una agregación por ejemplo, se le pedirá que quite esas transformaciones o envíe los datos a una tabla personalizada en su lugar. Un ejemplo se muestra en la imagen siguiente.

Captura de pantalla del comprobador de sintaxis de KQL y el mensaje de error típico.

Aggregations

Una agregación de KQL resume los datos de varios registros en un único registro en función de los criterios especificados. Por ejemplo, puede agregar entradas de registro para calcular el valor medio de la propiedad numérica o contar el número de repeticiones de eventos específicos durante un período de tiempo definido. Las agregaciones ayudan a reducir el volumen de datos y proporcionan información mediante la condensación de grandes conjuntos de datos en resúmenes significativos.

Los datos de la canalización de Azure Monitor se recuperan y procesan en lotes de intervalos de un minuto de forma predeterminada. Las agregaciones en una transformación de canalización se realizan en cada lote de datos, lo que significa que se creará un registro agregado cada minuto. Para cambiar esta ventana de tiempo, puede configurar el procesador Batch en la configuración de canalización, tal como se describe en Configuración de canalización. No puede cambiar el intervalo de tiempo mediante Azure Portal.

Las agregaciones se definen mediante el summarize operador en KQL. Especifique las funciones de agregación y los criterios de agrupación. Por ejemplo, la consulta siguiente cuenta el número de eventos recopilados en el último minuto agrupado por DestinationIP y DestinationPort:

source 
| summarize EventCount=count() by DestinationIP, DestinationPort

En el ejemplo siguiente se extraen los valores de uso de CPU de los mensajes de syslog y, a continuación, se calcula el uso medio y máximo de la CPU en intervalos de un minuto:

source
| where Facility == "daemon"
| where SyslogMessage has "CPU="
| parse SyslogMessage with * "CPU=" CPUValue:int * 
| summarize AvgCPU = avg(CPUValue), MaxCPU = max(CPUValue)

Notas de agregación

  • Al usar el operador summarize para la agregación, se puede introducir una latencia automática de hasta 5 minutos debido al procesamiento por lotes dentro de la canalización para la experiencia de usuario.
  • Un procesador por lotes siempre es necesario para realizar agregaciones. Modifique el procesador por lotes para cambiar el intervalo de agregación. Evite usar el procesador por lotes para enviar datos con una latencia mínima.
  • Si una agregación incluye bin(), puede recibir varios registros durante el mismo intervalo de tiempo. Esto ocurre debido al procesamiento por lotes y la naturaleza de streaming de la ingesta de datos.
  • Las transformaciones se realizan en datos syslog o CEF totalmente formados. Si la transformación modifica el esquema, debe enviar los datos a una tabla personalizada. Al crear la transformación mediante Azure Portal, las únicas columnas expuestas son SeverityText, Bodyy TimeGenerated.

KQL compatible

Expanda las siguientes secciones para ver las funciones y operadores de KQL que son compatibles con las transformaciones de canalización de Azure Monitor:

Agregaciones
  • sum()
  • max()
  • min()
  • avg()
  • count()
  • bin()
Filtrado
  • where
  • contains
  • has
  • in
  • and
  • or
  • ==
  • !=
  • >
  • >=
  • <
  • <=
Esquematización
  • extend
  • project
  • project-away
  • project-rename
  • project-keep
  • iif
  • case
  • coalesce
  • parse_json
Funciones
  • let
Funciones de cadena
  • strlen
  • replace_string
  • substring
  • strcat
  • strcat_delim
  • extract
Conversión
  • tostring
  • toint
  • tobool
  • tofloat
  • tolong
  • toreal
  • todouble
  • todatetime
  • totimespan

Pasos siguientes