Compartir vía


Ejemplos de reglas de recopilación de datos (DCR) de Azure Monitor

En este artículo se incluyen ejemplos reglas de recopilación de datos (DCR) para escenarios comunes de recopilación de datos en Azure Monitor. Es posible modificar estas definiciones de DCR según sea necesario para el entorno y crear DCR con la guía Crear o editar una regla de recopilación de datos. También se pueden usar y combinar las estrategias básicas de estos ejemplos para crear DCR para otros escenarios.

Para estos ejemplos se requiere conocimiento de la estructura DCR, tal y como se describe en Estructura de una regla de recopilación de datos en Azure Monitor. Se pueden configurar varias en Azure Portal sin conocimientos detallados de la estructura DCR. Use estos ejemplos cuando necesite trabajar con la propia definición de DCR para realizar configuraciones más avanzadas o automatizar la creación de DCR.

Cada uno de estos ejemplos se centra en un origen de datos determinado, aunque es posible combinar varios orígenes de datos de diferentes tipos en un único DCR. Incluya un flujo de datos para cada uno para enviar los datos al destino adecuado. No hay ninguna diferencia funcional entre combinar varios orígenes de datos en un único DCR o crear DCR independientes para cada origen de datos. La elección depende de los requisitos para administrar y supervisar la recopilación de datos.

Nota:

Estos ejemplos que se muestran en este artículo proporcionan el JSON de origen necesario para crear el DCR. Después de la creación, DCR tendrá propiedades adicionales, tal y como se describe en Estructura de una regla de recopilación de datos en Azure Monitor.

DCR para el agente de Azure Monitor

El agente de Azure Monitor se ejecuta en máquinas virtuales, Virtual Machine Scale Sets y clústeres de Kubernetes. Admite VM Insights y Container Insights, así como varios escenarios de recopilación de datos para máquinas virtuales descritas en Recopilación de datos del agente de Azure Monitor.

En los ejemplos siguientes, se muestran DCR para recopilar diferentes tipos de datos mediante el agente de Azure Monitor.

Eventos de Windows

Los DCR para eventos de Windows usan el origen de datos windowsEventLogs con la secuencia recibida Microsoft-Event. El esquema de esta secuencia se conoce, por lo que no es necesario definirlo en la sección dataSources. Los eventos que se recopilan se especifican en la propiedad xPathQueries. Consulte Recopilación de eventos de Windows con el agente de Azure Monitor para obtener más información sobre el uso de XPaths para filtrar los datos específicos que quiera recopilar. Para comenzar, use la guía de ese artículo para crear un DCR mediante Azure Portal y, a continuación, inspeccione el JSON con la guía Definición de DCR.

Es posible agregar una transformación a la propiedad dataFlows para las columnas calculadas y filtrar aún más los datos, pero se debe usar XPaths para filtrar los datos en el agente tanto como sea posible para una mayor eficacia y evitar posibles cargos de ingesta.

El siguiente DCR de ejemplo realiza las siguientes acciones:

  • Recopila eventos del sistema y aplicación Windows con los niveles de error Advertencia, Error o Crítico.
  • Envía datos a la tabla Evento del área de trabajo.
  • Usa una transformación sencilla de un source que no realiza ningún cambio en los datos recibidos.
{
    "location": "eastus",
    "properties": {
      "dataSources": {
        "windowsEventLogs": [
          {
            "name": "eventLogsDataSource",
            "streams": [
              "Microsoft-Event"
            ],
            "xPathQueries": [
              "System!*[System[(Level = 1 or Level = 2 or Level = 3)]]",
              "Application!*[System[(Level = 1 or Level = 2 or Level = 3)]]"
            ]
          }
        ]
    },
      "destinations": {
        "logAnalytics": [
          {
            "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
            "name": "centralWorkspace"
          }
        ]
      },
      "dataFlows": [
        {
          "streams": [
            "Microsoft-Event"
          ],
          "destinations": [
            "centralWorkspace"
          ],
            "transformKql": "source",
            "outputStream": "Microsoft-Event"
        }
      ]
    }
  }

eventos de Syslog

Los DCR para eventos de Syslog usan el origen de datos syslog con la secuencia recibida Microsoft-Syslog. El esquema de esta secuencia se conoce, por lo que no es necesario definirlo en la sección dataSources. Los eventos que se recopilan se especifican en las propiedades facilityNames y logLevels. Consulte Recopilación de eventos de Syslog con el agente de Azure Monitor para obtener más información. Para comenzar, use la guía de ese artículo para crear un DCR mediante Azure Portal y, a continuación, inspeccione el JSON con la guía Definición de DCR.

Es posible agregar una transformación a la propiedad dataFlows para obtener funcionalidades adicionales y filtrar aún más los datos, pero se debe usar facilityNames y logLevels para filtrar tanto como sea posible para una mayor eficacia y evitar posibles cargos de ingesta.

El siguiente DCR de ejemplo realiza las siguientes acciones:

  • Recopila todos los eventos de la instalación cron.
  • Recopila Warning y eventos superiores de instalaciones de syslog y daemon.
    • Envía datos a la tabla Syslog del área de trabajo.
    • Usa una transformación sencilla de un source que no realiza ningún cambio en los datos recibidos.
{
    "location": "eastus",
    "properties": {
      "dataSources": {
        "syslog": [
          {
            "name": "cronSyslog",
            "streams": [
              "Microsoft-Syslog"
            ],
            "facilityNames": [
              "cron"
            ],
            "logLevels": [
              "Debug",
              "Info",
              "Notice",
              "Warning",
              "Error",
              "Critical",
              "Alert",
              "Emergency"
            ]
          },
          {
            "name": "syslogBase",
            "streams": [
              "Microsoft-Syslog"
            ],
            "facilityNames": [
              "daemon",              
              "syslog"
            ],
            "logLevels": [
              "Warning",
              "Error",
              "Critical",
              "Alert",
              "Emergency"           
            ]
          }
        ]
      },
      "destinations": {
        "logAnalytics": [
          {
            "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
            "name": "centralWorkspace"
          }
        ]
      },
      "dataFlows": [
        {
          "streams": [
            "Microsoft-Syslog"
          ],
          "destinations": [
            "centralWorkspace"
          ],
            "transformKql": "source",
            "outputStream": "Microsoft-Syslog"
        }
      ]
    }
  }

Contadores de rendimiento

Las DCR para los datos de rendimiento usan el origen de datos performanceCounters con las secuencias Microsoft-InsightsMetrics y Microsoft-Perf recibidas. Microsoft-InsightsMetrics se usa para enviar datos a métricas de Azure Monitor, mientras que Microsoft-Perf se usa para enviar datos a un área de trabajo de Log Analytics. Es posible incluir ambos orígenes de datos en el DCR en caso de enviar datos de rendimiento a ambos destinos. Los esquemas de estas secuencias se conocen, por lo que no es necesario definirlos en la sección dataSources.

Los contadores de rendimiento que se recopilan se especifican en la propiedad counterSpecifiers. Consulte Recopilación de contadores de rendimiento con el agente de Azure Monitor para obtener más información. Para comenzar, use la guía de ese artículo para crear un DCR mediante Azure Portal y, a continuación, inspeccione el JSON con la guía Definición de DCR.

Es posible agregar una transformación a la propiedad dataFlows para Microsoft-Perf para obtener funcionalidades adicionales y para filtrar aún más los datos, pero solo se deben seleccionar los contadores necesarios en counterSpecifiers para mejorar la eficacia a fin de evitar posibles cargos de ingesta.

El siguiente DCR de ejemplo realiza las siguientes acciones:

  • Recopila el conjunto de contadores de rendimiento cada 60 segundos y otro conjunto cada 30 segundos.
  • Envía datos a métricas de Azure Monitor y a un área de trabajo de Log Analytics.
  • Usa una transformación sencilla de un source que no realiza ningún cambio en los datos recibidos.
{
    "location": "eastus",
    "properties": {
      "dataSources": {
        "performanceCounters": [
          {
            "name": "perfCounterDataSource60",
            "streams": [
              "Microsoft-Perf",
              "Microsoft-InsightsMetrics"
            ],
            "samplingFrequencyInSeconds": 60,
            "counterSpecifiers": [
              "\\Processor(_Total)\\% Processor Time",
              "\\Memory\\Committed Bytes",
              "\\LogicalDisk(_Total)\\Free Megabytes",
              "\\PhysicalDisk(_Total)\\Avg. Disk Queue Length"
            ]
          },
          {
            "name": "perfCounterDataSource30",
            "streams": [
              "Microsoft-Perf"
            ],
            "samplingFrequencyInSeconds": 30,
            "counterSpecifiers": [
              "\\Process(_Total)\\Thread Count"
            ]
          }
        ]
      },
      "destinations": {
        "logAnalytics": [
          {
            "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
            "name": "centralWorkspace"
          }
        ],
        "azureMonitorMetrics": 
        {
            "name": "azureMonitorMetrics-default"
        }
      },
      "dataFlows": [
        {
            "streams": [
                "Microsoft-Perf"
            ],
            "destinations": [
                "centralWorkspace"
            ],
            "transformKql": "source",
            "outputStream": "Microsoft-Perf"
        },
        {
            "streams": [
                "Microsoft-Perf"
            ],
            "destinations": [
                "azureMonitorMetrics-default"
            ],
            "outputStream": "Microsoft-InsightsMetrics"
        }
      ]
    }
}

Registros de texto

Los DCR para los registros de texto tienen un origen de datos logfiles que tiene los detalles de los archivos de registro que debería recopilar el agente. Esto incluye el nombre de una secuencia que se debe definir en streamDeclarations con las columnas de los datos recibidos. Actualmente se trata de una lista establecida como se describe en Recopilación de registros de un archivo de texto con el agente de Azure Monitor.

Agregue una transformación a la propiedad dataFlows para filtrar los registros que no quiera recopilar y dar formato a los datos para que coincidan con el esquema de la tabla de destino. Un escenario común consiste en analizar un archivo de registro delimitado en varias columnas, tal y como se describe en Archivos de registro delimitados.

El siguiente DCR de ejemplo realiza las siguientes acciones:

  • Recopila entradas de todos los archivos con una extensión de .txt en la carpeta c:\logs del equipo agente.
  • Usa una transformación para dividir los datos entrantes en columnas en función de un delimitador de comas (,). Esta transformación es específica del formato del archivo de registro y debe ajustarse a los archivos de registro con otros formatos.
  • Envía los registros recopilados a una tabla personalizada denominada MyTable_CL. Esta tabla ya debe existir y tener las columnas de salida mediante la transformación.
  • Recopila el FilePath y el Computer para el registro de texto, tal y como se describe en Secuencia recibida. Estas columnas también deben existir en la tabla de destino.
{
    "location": "eastus",
    "properties": {
        "dataCollectionEndpointId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Insights/dataCollectionEndpoints/my-dce",
        "streamDeclarations": {
            "Custom-MyLogFileFormat": {
                "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime"
                    },
                    {
                        "name": "RawData",
                        "type": "string"
                    },
                    {
                        "name": "FilePath",
                        "type": "string"
                    },
                    {
                        "name": "Computer",
                        "type": "string"
                    }
                ]
            }
        },
        "dataSources": {
            "logFiles": [
                {
                    "streams": [
                        "Custom-MyLogFileFormat"
                    ],
                    "filePatterns": [
                        "C:\\logs\\*.txt"
                    ],
                    "format": "text",
                    "settings": {
                        "text": {
                            "recordStartTimestampFormat": "ISO 8601"
                        }
                    },
                    "name": "myLogFileFormat-Windows"
                }
            ]
        },
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
                    "name": "MyDestination"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Custom-MyLogFileFormat"
                ],
                "destinations": [
                    "MyDestination"
                ],
                "transformKql": "source | project d = split(RawData,\",\") | project TimeGenerated=todatetime(d[0]), Code=toint(d[1]), Severity=tostring(d[2]), Module=tostring(d[3]), Message=tostring(d[4])",
                "outputStream": "Custom-MyTable_CL"
            }
        ]
    }
}

Registros JSON

Los DCR para los registros JSON tienen un origen de datos logfiles que tiene los detalles de los archivos de registro que debería recopilar el agente. Esto incluye el nombre de una secuencia que se debe definir en streamDeclarations con las columnas de los datos recibidos. Consulte Recopilar registros de un archivo JSON con el agente de Azure Monitor para obtener más información.

Agregue una transformación a la propiedad dataFlows para filtrar los registros que no quiera recopilar y dar formato a los datos para que coincidan con el esquema de la tabla de destino.

El siguiente DCR de ejemplo realiza las siguientes acciones:

  • Recopila entradas de todos los archivos con una extensión de .json en la carpeta c:\logs del equipo agente. El archivo debe tener el formato JSON y las columnas enumeradas en la declaración de la secuencia.
  • Envía los registros recopilados a una tabla personalizada denominada MyTable_CL. Esta tabla ya debe existir y tener las mismas columnas que la secuencia recibida. Si las columnas no coincidieran, será necesario modificar la transformación en la propiedad transformKql para dar formato a los datos de la tabla de destino.
{
    "location": "eastus",
    "properties": {
        "dataCollectionEndpointId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Insights/dataCollectionEndpoints/my-dce",
        "streamDeclarations": {
            "Custom-Json-stream": {
                "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime"
                    },
                    {
                        "name": "FilePath",
                        "type": "string"
                    },
                    {
                        "name": "Code",
                        "type": "int"
                    },
                    {
                        "name": "Module",
                        "type": "string"
                    },
                    {
                        "name": "Message",
                        "type": "string"
                    }
                ]
            }
        },
        "dataSources": {
            "logFiles": [
                {
                    "streams": [
                        "Custom-Json-stream"
                    ],
                    "filePatterns": [
                        "C:\\logs\\*.json"
                    ],
                    "format": "json",
                    "name": "MyJsonFile"
                }
            ]
        },
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
                    "name": "MyDestination"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Custom-Json-stream"
                ],
                "destinations": [
                    "MyDestination"
                ],
                "transformKql": "source",
                "outputStream": "Custom-MyTable_CL"
            }
        ]
    }
}

Enviar datos a Event Hubs o Storage

Los DCR que envían datos a cuentas de Storage o Event Hubs usan los mismos orígenes de datos que otros DCR que recopilan datos con el agente de Azure Monitor (AMA), pero tienen uno o varios de los siguientes destinos. Consulte Enviar datos a Event Hubs y Storage (versión preliminar) para obtener más información.

  • eventHubsDirect
  • storageBlobsDirect
  • storageTablesDirect

Nota:

Los DCR que envían datos a cuentas de Storage o Event Hubs deben tener "kind": "AgentDirectToStore"

El siguiente DCR de ejemplo realiza las siguientes acciones:

  • Recopila contadores de rendimiento y eventos de Windows de máquinas Windows con el agente de Azure Monitor (AMA).
  • Envía los datos al centro de eventos, a Blob Storage y al almacenamiento de tablas.
{
    "location": "eastus",
    "kind": "AgentDirectToStore",
    "properties": {
        "dataSources": {
            "performanceCounters": [
                {
                "streams": [
                    "Microsoft-Perf"
                ],
                "samplingFrequencyInSeconds": 10,
                "counterSpecifiers": [
                    "\\Process(_Total)\\Working Set - Private",
                    "\\Memory\\% Committed Bytes In Use",
                    "\\LogicalDisk(_Total)\\% Free Space",
                    "\\Network Interface(*)\\Bytes Total/sec"
                ],
                "name": "perfCounterDataSource"
                }
            ],
            "windowsEventLogs": [
                {
                "streams": [
                    "Microsoft-Event"
                ],
                "xPathQueries": [
                    "Application!*[System[(Level=2)]]",
                    "System!*[System[(Level=2)]]"
                ],
                "name": "eventLogsDataSource"
                }
            ]
        },
        "destinations": {
            "eventHubsDirect": [
                {
                "eventHubResourceId": "/subscriptions/71b36fb6-4fe4-4664-9a7b-245dc62f2930/resourceGroups/my-resource-group/providers/Microsoft.EventHub/namespaces/my-eventhub-namespace/eventhubs/my-eventhub",
                "name": "myEh"
                }
            ],
            "storageBlobsDirect": [
                {
                "storageAccountResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/Microsoft.Storage/storageAccounts/mystorageaccount",
                "containerName": "myperfblob",
                "name": "PerfBlob"
                },
                {
                "storageAccountResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/Microsoft.Storage/storageAccounts/mystorageaccount",
                "containerName": "myeventblob",
                "name": "EventBlob"
                }
            ],
            "storageTablesDirect": [
                {
                "storageAccountResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/Microsoft.Storage/storageAccounts/mystorageaccount",
                "containerName": "myperftable",
                "name": "PerfTable"
                },
                {
                "storageAccountResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/Microsoft.Storage/storageAccounts/mystorageaccount",
                "containerName": "mymyeventtable",
                "name": "EventTable"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                "Microsoft-Perf"
                ],
                "destinations": [
                "myEh",
                "PerfBlob",
                "PerfTable"
                ]
            },
            {
                "streams": [
                "Microsoft-Event"
                ],
                "destinations": [
                "myEh",
                "EventBlob",
                "EventTable"
                ]
            },
        ]
    }
}

API de ingesta de registros

Los DCR de la API de ingesta de registros deben definir el esquema de la secuencia recibida en la sección streamDeclarations de la definición de DCR. Los datos recibidos deben tener formato JSON con un esquema que coincida con las columnas de esta definición. No se requiere ninguna transformación cuando este esquema coincida con el esquema de la tabla de destino. Si los esquemas no coincidieran, será necesario agregar una transformación a la propiedad dataFlows para dar formato a los datos. Consulte API de ingesta de registros en Azure Monitor para obtener más información.

El DCR de ejemplo siguiente tiene los detalles siguientes:

  • Envía datos a una tabla denominada MyTable_CL en un área de trabajo denominada my-workspace. Antes de instalar este DCR, sería necesario crear la tabla con las columnas siguientes:
    • TimeGenerated
    • Computer
    • AdditionalContext
    • ExtendedColumn (definido en la transformación)
  • Aplica una transformación a los datos entrantes para dar formato a los datos de la tabla de destino.

Importante

En este ejemplo no se incluye la propiedad dataCollectionEndpointId, ya que se crea automáticamente cuando se crea el DCR. Se necesita el valor de esta propiedad, ya que es la dirección URL a la que la aplicación enviará datos. El DCR debe tener kind:Direct para que se cree esta propiedad. Consulte Propiedades para obtener más detalles.

{
    "location": "eastus",
    "kind": "Direct",
    "properties": {
        "streamDeclarations": {
            "Custom-MyTable": {
                "columns": [
                    {
                        "name": "Time",
                        "type": "datetime"
                    },
                    {
                        "name": "Computer",
                        "type": "string"
                    },
                    {
                        "name": "AdditionalContext",
                        "type": "string"
                    }
                ]
            }
        },
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/cefingestion/providers/microsoft.operationalinsights/workspaces/my-workspace",
                    "name": "LogAnalyticsDest"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Custom-MyTable"
                ],
                "destinations": [
                    "LogAnalyticsDest"
                ],
                "transformKql": "source | extend jsonContext = parse_json(AdditionalContext) | project TimeGenerated = Time, Computer, AdditionalContext = jsonContext, ExtendedColumn=tostring(jsonContext.CounterName)",
                "outputStream": "Custom-MyTable_CL"
            }
        ]
    }
}

DCR de transformación del área de trabajo

Los DCR de transformación del área de trabajo tienen una sección datasources vacía, ya que las transformaciones se aplican cualquier dato enviado a las tablas admitidas en el área de trabajo. Debe incluir una única entrada para workspaceResourceId y una entrada en dataFlows para cada tabla con una transformación. También debe tener "kind": "WorkspaceTransforms".

El DCR de ejemplo siguiente tiene los detalles siguientes:

  • Transformación de la tabla LAQueryLogs que filtra las consultas de la propia tabla y agrega una columna con el nombre del área de trabajo.
  • Transformación de la tabla Event que filtra eventos de información y quita la columna ParameterXml. Esto solo se aplicará a los datos procedentes del agente de Log Analytics en desuso y no al agente de Azure Monitor, tal y como se explica en DCR de transformación del área de trabajo.
{
    "kind": "WorkspaceTransforms",
    "location": "eastus",
    "properties": {
        "dataSources": {},
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
                    "name": "clv2ws1"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Microsoft-Table-LAQueryLogs"
                ],
                "destinations": [
                    "clv2ws1"
                ],
                "transformKql": "source | where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Workspace_CF = tostring(Context['workspaces'][0]) | project-away RequestContext, Context"
            },
            {
                "streams": [
                    "Microsoft-Table-Event"
                ],
                "destinations": [
                    "clv2ws1"
                ],
                "transformKql": "source | where EventLevelName in ('Error', 'Critical', 'Warning') | project-away ParameterXml"
            }
        ]
    }
}

Envío de datos a varias tablas

Hay varias razones por las que podría querer enviar datos de un único origen de datos a varias tablas de la misma área de trabajo de Log Analytics, incluidas las siguientes:

  • Ahorrar costes de ingesta mediante el envío de registros usados para solucionar problemas ocasionales a una tabla de registros básica.
  • Enviar registros o columnas con datos confidenciales a una tabla con distintos permisos o configuraciones de retención.

Para enviar datos desde un único origen de datos a varias tablas, cree varios flujos de datos en el DCR con una consulta de transformación única y una tabla de salida para cada una, tal y como se muestra en el diagrama siguiente.

Importante

Por el momento, las tablas de la DCR deben encontrarse en la misma área de trabajo de Log Analytics. Para enviar a múltiples áreas de trabajo desde una única fuente de datos, use múltiples DCR y configure su aplicación para enviar los datos a cada una de ellas.

Diagrama en el que se muestra la transformación que envía datos a varias tablas.

En el ejemplo siguiente, se filtran los registros enviados a la tabla Evento por el agente de Azure Monitor. Solo se envían eventos de advertencia y error a la tabla Evento. Otros eventos se envían a una copia de la tabla de eventos denominada Event_CL, que está configurada para los registros básicos.

Nota:

En este ejemplo se requiere una copia de la tabla Evento creada en la misma área de trabajo denominada Event_CL.

{
    "location": "eastus",
    "properties": {
        "dataSources": {
            "windowsEventLogs": [
              {
                "name": "eventLogsDataSource",
                "streams": [
                  "Microsoft-Event"
                ],
                "xPathQueries": [
                  "System!*[System[(Level = 1 or Level = 2 or Level = 3)]]",
                  "Application!*[System[(Level = 1 or Level = 2 or Level = 3)]]"
                ]
              }
            ]
        },
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
                    "name": "MyDestination"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Microsoft-Event"
                ],
                "destinations": [
                    "MyDestination"
                ],
                "transformKql": "source | where EventLevelName in ('Error', 'Warning')",
                "outputStream": "Microsoft-Event"
            },
            {
                "streams": [
                    "Microsoft-Event"
                ],
                "destinations": [
                    "MyDestination"
                ],
                "transformKql": "source | where EventLevelName !in ('Error', 'Warning')",
                "outputStream": "Custom-Event_CL"
            }
        ]
    }
}

Pasos siguientes