Enviar datos de registro de recursos de Azure

Los registros de recursos de Azure son registros de plataforma que proporcionan información sobre las operaciones que se realizaron en un recurso de Azure. El contenido de estos registros de recurso varía según el servicio de Azure y el tipo de recurso. Los registros de recurso no se recopilan de forma predeterminada. En este artículo se describe la configuración de diagnóstico necesaria para que cada recurso de Azure envíe sus registros de recursos a distintos destinos.

Envío al área de trabajo de Log Analytics

Envíe registros de recursos a un área de trabajo de Log Analytics para habilitar las características de los registros de Azure Monitor, donde puede hacer lo siguiente:

  • Correlacionar los datos del registro de recurso con otros datos de supervisión recopilados por Azure Monitor.
  • Consolidar las entradas de registro de varios inquilinos, suscripciones y recursos de Azure en una ubicación para su análisis conjunto.
  • Usar las consultas de registro para realizar un análisis complejo y obtener información detallada sobre los datos de registro.
  • Use alertas de búsqueda de registros con una lógica de alerta compleja.

Cree una configuración de diagnóstico para enviar los registro de recursos a un área de trabajo de Log Analytics. Estos datos se almacenan en tablas, tal como se describe en Estructura de registros de Azure Monitor. Las tablas que usan los registros de recurso dependen del tipo de colección del recurso:

  • Azure Diagnostics: todos los datos se escriben en la tabla AzureDiagnostics.
  • Específicas del recurso: los datos se escriben en tabla individuales para cada categoría del recurso.

Específico del recurso

En este modo se crean tablas individuales en el área de trabajo seleccionada para cada categoría seleccionada en la configuración de diagnóstico. Se recomienda este método por los siguientes motivos:

  • Facilita considerablemente el trabajo con los datos en las consultas de registro.
  • Proporciona una mayor capacidad de detección de los esquemas y su estructura.
  • Mejora el rendimiento de la latencia de ingesta y de los tiempos de consulta.
  • Ofrece la posibilidad de conceder derechos de control de acceso basado en rol de Azure sobre una tabla específica.

Todos los servicios de Azure se migrarán finalmente al modo específico del recurso.

En el siguiente ejemplo se crean tres tablas:

  • Tabla Service1AuditLogs

    Proveedor de recursos Category A B C
    Servicio 1 AuditLogs x1 y1 z1
    Servicio 1 AuditLogs x5 y5 z5
  • Tabla Service1ErrorLogs

    Proveedor de recursos Category D E F
    Servicio 1 ErrorLogs q1 w1 e1
    Servicio 1 ErrorLogs q2 w2 e2
  • Tabla Service2AuditLogs

    Proveedor de recursos Category G H I
    Servicio 2 AuditLogs j1 k1 l1
    Servicio 2 AuditLogs j3 k3 l3

Modo Azure Diagnostics

En este modo se recopilan todos los datos de cualquier configuración de diagnóstico de la tabla AzureDiagnostics. La mayoría de los servicios de Azure usa actualmente este método heredado. Dado que varios tipos de recursos envían datos a la misma tabla, su esquema es el superconjunto de los esquemas de todos los tipos de datos diferentes que se recopilan. Para más información sobre la estructura de esta tabla y cómo funciona con este número potencialmente grande de columnas, consulte Referencia de AzureDiagnostics.

Considere el ejemplo siguiente, donde se recopila la configuración de diagnóstico en la misma área de trabajo para los siguientes tipos de datos:

  • Los registros de auditoría del servicio 1 tienen un esquema que consta de las columnas A, B y C.
  • Los registros de errores del servicio 1 tienen un esquema que consta de las columnas D, E y F.
  • Los registros de auditoría del servicio 2 tienen un esquema que consta de las columnas G, H e I.

La tabla AzureDiagnostics se parece a la de este ejemplo:

ResourceProvider Category A B C D E F G H I
Microsoft.Service1 AuditLogs x1 y1 z1
Microsoft.Service1 ErrorLogs q1 w1 e1
Microsoft.Service2 AuditLogs j1 k1 l1
Microsoft.Service1 ErrorLogs q2 w2 e2
Microsoft.Service2 AuditLogs j3 k3 l3
Microsoft.Service1 AuditLogs x5 y5 z5

Selección del modo de recopilación

La mayoría de los recursos de Azure escriben los datos en el área de trabajo en modo Azure Diagnostics o específico del recurso sin darle la opción de elegir. Para más información, consulte Esquemas comunes y específicos del servicio para los registros de recursos de Azure.

Todos los servicios de Azure usarán, llegado el momento, el modo específico del recurso. Como parte de esta transición, algunos recursos permiten seleccionar un modo en la configuración de diagnóstico. Especifique el modo específico del recurso para las configuraciones de diagnóstico nuevas, ya que facilita la administración de los datos. También puede ayudarle a evitar migraciones complejas más adelante.

Screenshot that shows the Diagnostics settings mode selector.

Nota:

Para ver un ejemplo de configuración del modo de recopilación mediante una plantilla de Azure Resource Manager, consulte Ejemplos de plantillas de Resource Manager para la configuración de diagnóstico en Azure Monitor.

En el modo específico del recurso se puede modificar una configuración de diagnóstico existente. En este caso, los datos que ya se han recopilado permanecen en la tabla AzureDiagnostics hasta que se eliminen de acuerdo con la configuración de retención del área de trabajo. Los nuevos datos se recopilan en la tabla dedicada. Use el operador union para consultar datos en ambas tablas.

Puede continuar con el blog Actualizaciones de Azure para ver noticias sobre los servicios de Azure que admiten el modo específico del recurso.

Envío a Azure Event Hubs

Envíe registros de recursos a un centro de eventos para enviarlos fuera de Azure. Por ejemplo, los registros de recursos se pueden enviar a un sistema SIEM de terceros u otras soluciones de Log Analytics. Los registros de recursos de los centros de eventos se consumen en formato JSON con un elemento records que contiene los registros de cada carga. El esquema depende del tipo de recurso, tal y como se describe en Esquemas comunes y específicos del servicio para los registros de recursos de Azure.

Los siguientes datos de salida de ejemplo son de un registro de recursos de Azure Event Hubs:

{
    "records": [
        {
            "time": "2019-07-15T18:00:22.6235064Z",
            "workflowId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
            "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA/RUNS/08587330013509921957/ACTIONS/SEND_EMAIL",
            "category": "WorkflowRuntime",
            "level": "Error",
            "operationName": "Microsoft.Logic/workflows/workflowActionCompleted",
            "properties": {
                "$schema": "2016-04-01-preview",
                "startTime": "2016-07-15T17:58:55.048482Z",
                "endTime": "2016-07-15T18:00:22.4109204Z",
                "status": "Failed",
                "code": "BadGateway",
                "resource": {
                    "subscriptionId": "00000000-0000-0000-0000-000000000000",
                    "resourceGroupName": "JohnKemTest",
                    "workflowId": "243aac67fe904cf195d4a28297803785",
                    "workflowName": "JohnKemTestLA",
                    "runId": "08587330013509921957",
                    "location": "westus",
                    "actionName": "Send_email"
                },
                "correlation": {
                    "actionTrackingId": "29a9862f-969b-4c70-90c4-dfbdc814e413",
                    "clientTrackingId": "08587330013509921958"
                }
            }
        },
        {
            "time": "2019-07-15T18:01:15.7532989Z",
            "workflowId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
            "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA/RUNS/08587330012106702630/ACTIONS/SEND_EMAIL",
            "category": "WorkflowRuntime",
            "level": "Information",
            "operationName": "Microsoft.Logic/workflows/workflowActionStarted",
            "properties": {
                "$schema": "2016-04-01-preview",
                "startTime": "2016-07-15T18:01:15.5828115Z",
                "status": "Running",
                "resource": {
                    "subscriptionId": "00000000-0000-0000-0000-000000000000",
                    "resourceGroupName": "JohnKemTest",
                    "workflowId": "243aac67fe904cf195d4a28297803785",
                    "workflowName": "JohnKemTestLA",
                    "runId": "08587330012106702630",
                    "location": "westus",
                    "actionName": "Send_email"
                },
                "correlation": {
                    "actionTrackingId": "042fb72c-7bd4-439e-89eb-3cf4409d429e",
                    "clientTrackingId": "08587330012106702632"
                }
            }
        }
    ]
}

Envío a Azure Storage

Envíe registros de recursos a Azure Storage para conservarlos en un archivo. Después de crear la configuración de diagnóstico, se crea un contenedor de almacenamiento en la cuenta de almacenamiento en cuanto se produzca un evento en una de las categorías de registro habilitadas.

Nota:

Una estrategia alternativa para el archivado es enviar el registro de recursos a un área de trabajo de Log Analytics con una directiva de archivo.

Los blobs del contenedor usan la siguiente convención de nomenclatura:

insights-logs-{log category name}/resourceId=/SUBSCRIPTIONS/{subscription ID}/RESOURCEGROUPS/{resource group name}/PROVIDERS/{resource provider name}/{resource type}/{resource name}/y={four-digit numeric year}/m={two-digit numeric month}/d={two-digit numeric day}/h={two-digit 24-hour clock hour}/m=00/PT1H.json

El blob de un grupo de seguridad de red puede tener un nombre similar al siguiente:

insights-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/TESTRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUP/TESTNSG/y=2016/m=08/d=22/h=18/m=00/PT1H.json

Cada blob PT1H.json contiene un objeto JSON con eventos de los archivos de registro recibidos durante la hora especificada en la dirección URL del blob. Durante la hora actual, los eventos se anexan al archivo PT1H.json a medida que se reciben, independientemente de cuándo se generaron. El valor de minuto de la dirección URL m=00 siempre es 00, ya que los blobs se crean por hora.

En el archivo PT1H.json, los eventos se almacenan con este formato. Se usa un esquema de nivel superior común, pero único para cada servicio de Azure, tal y como se describe en Esquema de los registros de recursos.

Nota:

Los registros se escriben en blobs en función de la hora en que se recibió el registro, independientemente de la hora en que se generó. Esto significa que un blob determinado puede contener datos de registro fuera de la hora especificada en la dirección URL del blob. Cuando un origen de datos, como Application Insights, admite la carga de datos de telemetría obsoleta, un blob puede contener datos de las 48 horas anteriores.
Al comienzo de una nueva hora, es posible que los registros existentes se sigan escribiendo en el blob de la hora anterior, mientras que los nuevos registros se escriben en el blob de la nueva hora.

{"time": "2016-07-01T00:00:37.2040000Z","systemId": "46cdbb41-cb9c-4f3d-a5b4-1d458d827ff1","category": "NetworkSecurityGroupRuleCounter","resourceId": "/SUBSCRIPTIONS/s1id1234-5679-0123-4567-890123456789/RESOURCEGROUPS/TESTRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/TESTNSG","operationName": "NetworkSecurityGroupCounters","properties": {"vnetResourceGuid": "{12345678-9012-3456-7890-123456789012}","subnetPrefix": "10.3.0.0/24","macAddress": "000123456789","ruleName": "/subscriptions/ s1id1234-5679-0123-4567-890123456789/resourceGroups/testresourcegroup/providers/Microsoft.Network/networkSecurityGroups/testnsg/securityRules/default-allow-rdp","direction": "In","type": "allow","matchedConnections": 1988}}

Integraciones de asociados de Azure Monitor

Los registros de recursos también se pueden enviar a soluciones de asociados que están totalmente integradas en Azure. Puede encontrar una lista de estas soluciones y detalles sobre cómo configurarlas en Integraciones de asociados de Azure Monitor.

Pasos siguientes