Crear una transformación en Azure Monitor
Las transformaciones en Azure Monitor le permiten filtrar o modificar los datos entrantes antes de almacenarlos en un área de trabajo de Log Analytics. Se implementan como una instrucción Lenguaje de consulta Kusto (KQL) en una regla de recopilación de datos (DCR). En este artículo se proporcionan instrucciones sobre cómo crear y probar una consulta de transformación y agregarla a un DCR.
Nota:
Si no está familiarizado con KQL ni con la creación de consultas de registro para datos de Azure Monitor, comience con Introducción a Log Analytics en Azure Monitor y Consultas de registro en Azure Monitor.
Estructura básica de la consulta
Todas las consultas de transformació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.
La salida de la consulta debe coincidir con el esquema de la tabla de destino con las consideraciones siguientes:
- Puede omitir las columnas que no se deben rellenar. La columna estará vacía para el registro de la tabla de destino.
- Asegúrese de excluir las columnas que no se incluyen en la tabla de salida. Los datos se aceptarán sin errores, pero se le cobrará por la ingesta de los datos adicionales aunque no se almacenen.
- La salida de cada transformación debe contener una marca de tiempo válida en una columna denominada
TimeGenerated
de tipodatetime
. Si el origen de datos no incluye esta propiedad, puede agregarla en la transformación conextend
oproject
.
A continuación se muestra un ejemplo de una transformación que realiza varias funciones:
- Filtra los datos entrantes con una instrucción
where
. - Agrega una nueva columna mediante el operador
extend
. - Da formato a la salida para que coincida con las columnas de la tabla de destino mediante el operador
project
.
source
| where severity == "Critical"
| extend Properties = parse_json(properties)
| project
TimeGenerated = todatetime(["time"]),
Category = category,
StatusDescription = StatusDescription,
EventName = name,
EventId = tostring(Properties.EventId)
Nota:
Consulte Ejemplos y escenarios de reglas de recopilación de datos (DCR) en Azure Monitor para ver varios ejemplos para distintos escenarios.
Crear la consulta de transformación
Antes de crear o editar el DCR que incluirá la transformación, deberá crear y probar la consulta de transformación. Normalmente, ejecutará consultas de prueba frente a datos existentes o datos de prueba. Cuando obtenga los resultados que desee, puede reemplazar el nombre de la tabla por source
y pegarlo en el DCR, como se explica a continuación en Agregar transformación a DCR.
Importante
Las transformaciones no admiten todas las características de KQL. Consulte Características de KQL admitidas en las transformaciones de Azure Monitor para conocer las características y limitaciones admitidas.
Por ejemplo, si va a crear una transformación para filtrar eventos de Syslog, puede empezar con la siguiente consulta que puede ejecutar en Log Analytics.
Syslog | where SeverityLevel != 'info'
Puede pegar esta consulta en el DCR y, a continuación, cambiar el nombre de la tabla a source
.
source | where SeverityLevel != 'info'
Use una de las estrategias siguientes para que los datos se usen para probar la consulta.
- Si ya recopila los datos que desea transformar, puede usar Log Analytics para escribir una consulta que filtre o modifique los datos según sea necesario. Copie el texto de la consulta y péguelo en el DCR.
- Use Log Analytics para escribir la consulta mediante el operador
datatable
para crear un conjunto de datos de ejemplo que represente los datos entrantes. Copie el texto de la consulta sin el operadordatatable
y péguelo en el DCR. - Use el proceso para crear una nueva tabla en Azure Portal y proporcionar datos de ejemplo. Use la interfaz incluida para crear y probar la consulta de transformación. Copie el texto de la consulta y pegue en el DCR, o complete el proceso y, a continuación, edite el DCR para copiar la consulta de transformación. Después, puede eliminar la nueva tabla si no la necesita.
Agregar la transformación al DCR
Una vez que tenga la consulta de transformación, puede agregarla a un DCR. Use las instrucciones de Creación y edición de reglas de recopilación de datos (DCR) en Azure Monitor para crear o editar el DCR mediante la información de esta sección para incluir la consulta de transformación en la definición de DCR.
Nota:
Algunos orígenes de datos proporcionarán un método usando Azure Portal para agregar una transformación a un DCR. Por ejemplo, recopilar un texto de una máquina virtual permite especificar una consulta de transformación en Azure Portal. Aunque actualmente la mayoría de los escenarios de recopilación de datos requieren que trabaje directamente con la definición de DCR para agregar una transformación. Este es el proceso descrito en esta sección.
La consulta de transformación se especifica en la propiedad transformKql
de la sección Flujos de datos del DCR. Esta es la sección que empareja un origen de datos con un destino. La transformación se aplica al flujo entrante del flujo de datos antes de enviarlo al destino. Solo se aplicará a ese flujo de datos aunque se use la misma secuencia o destino en otros flujos de datos.
Si se omite la propiedad transformKql
o si su valor es simplemente source
, no se aplica ninguna transformación y los datos entrantes se envían al destino sin modificaciones.
Importante
La consulta de transformación debe estar en una sola línea del DCR. Si va a crear la transformación en Azure Portal, puede usar varias líneas para mejorar la legibilidad y \n
se incluirá en la consulta para cada nueva línea.
En el ejemplo siguiente, no hay ninguna propiedad transformKql
, por lo que los datos entrantes se envían al destino sin modificaciones.
"dataFlows": [
{
"streams": [
"Microsoft-Syslog"
],
"destinations": [
"centralWorkspace"
]
}
]
En el ejemplo siguiente, transformKql
tiene una consulta sencilla de source
, por lo que los datos entrantes se envían al destino sin modificaciones. Su funcionalidad es idéntica al ejemplo anterior.
"dataFlows": [
{
"streams": [
"Microsoft-Syslog"
],
"transformKql": "source",
"destinations": [
"centralWorkspace"
]
}
]
En el ejemplo siguiente, transformKql
tiene una consulta que filtra los datos, por lo que solo se envían mensajes de error al destino.
"dataFlows": [
{
"streams": [
"Microsoft-Syslog"
],
"transformKql": "source | where message has 'error'",
"destinations": [
"centralWorkspace"
]
}
]
Crear DCR de transformación del área de trabajo
La regla de recopilación de datos de transformación del área de trabajo (DCR) es una DCR especial que se aplica directamente a un área de trabajo de Log Analytics. Solo puede haber una DCR de transformación de área de trabajo para cada área de trabajo, pero puede incluir transformaciones para cualquier número de tablas.
Use uno de los métodos siguientes para crear un DCR de transformación del área de trabajo para el área de trabajo y agregarle una o varias transformaciones.
Puede crear un DCR de transformación del área de trabajo en Azure Portal agregando una transformación a una tabla admitida.
En el menú de áreas de trabajo de Log Analytics en Azure Portal, seleccione Tablas. Haga clic a la derecha de la tabla que le interese y seleccione Crear transformación.
Si aún no se ha creado el DCR de transformación del área de trabajo para esta área de trabajo, seleccione la opción para crear una. Si ya se ha creado, ese DCR ya estará seleccionado. Cada área de trabajo solo puede tener un DCR de transformación del área de trabajo.
Seleccione Siguiente para ver los datos de ejemplo de la tabla. Haga clic en Editor de transformación para definir la consulta de la transformación.
A continuación, puede editar y ejecutar la consulta de transformación para ver los resultados frente a los datos reales de la tabla. Siga modificando y probando la consulta hasta que obtenga los resultados que desee.
Cuando esté satisfecho con la consulta, haga clic en Aplicar y, a continuación, Siguiente y Crear para guardar el DCR con la nueva transformación.
Optimizar y supervisar transformaciones
Las transformaciones ejecutan una consulta KQL en todos los registros recopilados con el DCR, por lo que es importante que se ejecuten de forma eficaz. El tiempo de ejecución de la transformación contribuye a la latencia de ingesta de datos general y las transformaciones que tardan demasiado tiempo en ejecutarse pueden afectar al rendimiento de la canalización de recopilación de datos y provocar la pérdida de datos. Las transformaciones óptimas no deben tardar más de 1 segundo en ejecutarse. Consulte Optimizar consultas de registro en Azure Monitor para obtener instrucciones sobre cómo probar la consulta antes de implementarla como una transformación y para obtener recomendaciones sobre la optimización de consultas que no se ejecutan de forma eficaz.
Importante
Puede experimentar pérdida de datos si una transformación tarda más de 20 segundos.
Dado que las transformaciones no se ejecutan de forma interactiva, es importante supervisarlas continuamente para asegurarse de que se ejecutan correctamente y no tardan demasiado tiempo en procesar los datos. Consulte Supervisión y solución de problemas de recopilación de datos de DCR en Azure Monitor para más información sobre los registros y las métricas que supervisan el estado y el rendimiento de las transformaciones. Esto incluye identificar los errores que se producen en KQL y las métricas para realizar un seguimiento de su duración en ejecución.
Las siguientes métricas se recopilan automáticamente para las transformaciones y se deben revisar periódicamente para comprobar que las transformaciones siguen ejecutándose según lo previsto. Cree reglas de alertas de métricas para recibir notificaciones automáticamente cuando una de estas métricas supere un umbral.
- Duración de la transformación de registros por minuto
- Errores de transformación de registros por minuto
Habilite los registros de errores de DCR para realizar un seguimiento de los errores que se producen en las transformaciones u otras consultas. Cree una regla de alerta de registro que se notificará automáticamente cuando se escribe una entrada en esta tabla.
Guía
Hay varios métodos para crear transformaciones en función del método de recopilación de datos. En la tabla siguiente se enumeran las instrucciones de diferentes métodos para crear transformaciones.
datos, recopilación | Referencia |
---|---|
API de ingesta de registros | Envío de datos a los registros de Azure Monitor mediante la API REST (Azure Portal) Envío de datos a los registros de Azure Monitor mediante la API REST (plantillas de Resource Manager) |
Máquina virtual con el agente de Azure Monitor | Adición de la transformación al registro de Azure Monitor |
Clúster de Kubernetes con información de contenedor | Transformaciones de datos en Container Insights |
Azure Event Hubs | Tutorial: Ingesta de eventos de Azure Event Hubs en los Registros de Azure Monitor (versión preliminar pública) |
Pasos siguientes
- Cree una regla de recopilación de datos y una asociación a ella desde una máquina virtual mediante el agente de Azure Monitor.