Enviar datos del registro de actividad de Azure Monitor

El registro de actividad de Azure Monitor es un registro de plataforma que proporciona información sobre los eventos del nivel de suscripción. El registro de actividad incluye información como, por ejemplo, cuándo se modificó un recurso o cuándo se inició una máquina virtual. Puede ver el registro de actividad en Azure Portal o recuperar entradas con PowerShell y la CLI de Azure. En este artículo, se proporciona información sobre cómo ver el registro de actividad y enviarlo a diferentes destinos.

Para obtener mas funcionalidades, debe crear una configuración de diagnóstico para enviar el registro de actividad a una o varias de estas ubicaciones por los siguientes motivos:

Consulte Configuración de diagnóstico en Azure Monitor para obtener detalles sobre cómo crear una configuración de diagnóstico.

Nota:

  • Las entradas del registro de actividad son generadas por el sistema y no se pueden cambiar ni eliminar.
  • Las entradas del registro de actividad representan cambios en el plano de control, como un reinicio de máquina virtual. Las entradas no relacionadas deben escribirse en los registros de recursos de Azure.
  • Las entradas del registro de actividad suelen ser el resultado de cambios (operaciones de creación, actualización o eliminación) o de una acción iniciada. Las operaciones centradas en la lectura de detalles de un recurso no suelen capturarse.

Envío al área de trabajo de Log Analytics

Envíe el registro de actividad a un área de trabajo de Log Analytics para habilitar la característica Registros de Azure Monitor, donde podrá hacer lo siguiente:

  • Correlacionar los datos del registro de actividad con otros datos de supervisión recopilados por Azure Monitor.
  • Consolidar las entradas de registro de varias suscripciones e inquilinos 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 las entradas del registro de actividad.
  • Use alertas de búsqueda de registros con entradas de actividad para una lógica de alertas más compleja.
  • Almacenar las entradas del registro de actividad más allá del período de retención del registro de actividad.
  • No hay cargos por ingesta o retención de datos para los datos del registro de actividad almacenados en un área de trabajo de Log Analytics.
  • El período de retención predeterminado de Log Analytics es de 90 días.

Seleccione Exportar registros de actividad para enviar el registro de actividad a un área de trabajo de Log Analytics.

Screenshot that shows exporting activity logs.

Puede enviar el registro de actividad desde cualquier suscripción única hasta un máximo de cinco áreas de trabajo.

Los datos del registro de actividad de un área de trabajo de Log Analytics se almacenan en una tabla denominada AzureActivity que se puede recuperar con una consulta de registro en Log Analytics. La estructura de esta tabla varía en función de la categoría de la entrada de registro. Para obtener una descripción de las propiedades de la tabla, vea la referencia de datos de Azure Monitor.

Por ejemplo, para ver un recuento de las entradas del registro de actividad para cada categoría, use la consulta siguiente:

AzureActivity
| summarize count() by CategoryValue

Para recuperar todos los registros de la categoría administrativa, use la consulta siguiente:

AzureActivity
| where CategoryValue == "Administrative"

Importante

En algunos escenarios, es posible que los valores de los campos de AzureActivity tengan mayúsculas y minúsculas diferentes de los valores equivalentes. Tenga cuidado al consultar datos en AzureActivity con el uso de operadores que no distinguen mayúsculas de minúsculas para comparaciones de cadenas o use una función escalar para forzar un campo a un uso uniforme de mayúsculas y minúsculas antes de cualquier comparación. Por ejemplo, use la función tolower() en un campo para forzar que siempre esté en minúsculas o el operador =~ al realizar una comparación de cadenas.

Envío a Azure Event Hubs

Envíe el registro de actividad a Azure Event Hubs para enviar entradas fuera de Azure, por ejemplo, a un SIEM de terceros o a otras soluciones de análisis de registros. Los eventos del registro de actividad de Event Hubs se consumen en formato JSON con un elemento records que contiene los registros de cada carga. El esquema depende de la categoría y se describe en Esquema de eventos del registro de actividad de Azure.

A continuación, se muestran datos de salida de ejemplo de Event Hubs para un registro de actividad:

{
    "records": [
        {
            "time": "2019-01-21T22:14:26.9792776Z",
            "resourceId": "/subscriptions/s1/resourceGroups/MSSupportGroup/providers/microsoft.support/supporttickets/115012112305841",
            "operationName": "microsoft.support/supporttickets/write",
            "category": "Write",
            "resultType": "Success",
            "resultSignature": "Succeeded.Created",
            "durationMs": 2826,
            "callerIpAddress": "111.111.111.11",
            "correlationId": "c776f9f4-36e5-4e0e-809b-c9b3c3fb62a8",
            "identity": {
                "authorization": {
                    "scope": "/subscriptions/s1/resourceGroups/MSSupportGroup/providers/microsoft.support/supporttickets/115012112305841",
                    "action": "microsoft.support/supporttickets/write",
                    "evidence": {
                        "role": "Subscription Admin"
                    }
                },
                "claims": {
                    "aud": "https://management.core.windows.net/",
                    "iss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
                    "iat": "1421876371",
                    "nbf": "1421876371",
                    "exp": "1421880271",
                    "ver": "1.0",
                    "http://schemas.microsoft.com/identity/claims/tenantid": "00000000-0000-0000-0000-000000000000",
                    "http://schemas.microsoft.com/claims/authnmethodsreferences": "pwd",
                    "http://schemas.microsoft.com/identity/claims/objectidentifier": "2468adf0-8211-44e3-95xq-85137af64708",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn": "admin@contoso.com",
                    "puid": "20030000801A118C",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier": "9vckmEGF7zDKk1YzIY8k0t1_EAPaXoeHyPRn6f413zM",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname": "John",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname": "Smith",
                    "name": "John Smith",
                    "groups": "cacfe77c-e058-4712-83qw-f9b08849fd60,7f71d11d-4c41-4b23-99d2-d32ce7aa621c,31522864-0578-4ea0-9gdc-e66cc564d18c",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": " admin@contoso.com",
                    "appid": "c44b4083-3bq0-49c1-b47d-974e53cbdf3c",
                    "appidacr": "2",
                    "http://schemas.microsoft.com/identity/claims/scope": "user_impersonation",
                    "http://schemas.microsoft.com/claims/authnclassreference": "1"
                }
            },
            "level": "Information",
            "location": "global",
            "properties": {
                "statusCode": "Created",
                "serviceRequestId": "50d5cddb-8ca0-47ad-9b80-6cde2207f97c"
            }
        }
    ]
}

Envío a Azure Storage

Envíe el registro de actividad a una cuenta de Azure Storage si quiere conservar los datos de registro durante más de 90 días para la auditoría, el análisis estático o la copia de seguridad. Si tiene que conservar los eventos durante 90 días o menos, no necesita configurar el archivado en una cuenta de almacenamiento. Los eventos del registro de actividad se conservan en la plataforma de Azure durante 90 días.

Cuando envíe el registro de actividad a Azure, se creará un contenedor de almacenamiento en la cuenta de almacenamiento en cuanto se produzca un evento. Los blobs del contenedor usan la siguiente convención de nomenclatura:

insights-activity-logs/resourceId=/SUBSCRIPTIONS/{subscription ID}/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

Por ejemplo, un blob determinado podría tener un nombre similar al siguiente:

insights-logs-networksecuritygrouprulecounter/resourceId=/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/y=2020/m=06/d=08/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 el siguiente formato. Este formato usa un esquema de nivel superior común, pero es único para cada categoría, tal como se describe en Esquema de eventos del registro de actividad de Azure.

{ "time": "2020-06-12T13:07:46.766Z", "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/MY-RESOURCE-GROUP/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINES/MV-VM-01", "correlationId": "0f0cb6b4-804b-4129-b893-70aeeb63997e", "operationName": "Microsoft.Resourcehealth/healthevent/Updated/action", "level": "Information", "resultType": "Updated", "category": "ResourceHealth", "properties": {"eventCategory":"ResourceHealth","eventProperties":{"title":"This virtual machine is starting as requested by an authorized user or process. It will be online shortly.","details":"VirtualMachineStartInitiatedByControlPlane","currentHealthStatus":"Unknown","previousHealthStatus":"Unknown","type":"Downtime","cause":"UserInitiated"}}}

Otros métodos para recuperar eventos del registro de actividad

También puede acceder a los eventos del registro de actividad mediante los métodos siguientes:

Métodos de recopilación heredados

Nota

  • La solución de registros de actividad de Azure se usó para reenviar los registros de actividad a Análisis de registros de Azure. Esta solución se retirará el 15 de septiembre de 2026 y se convertirá automáticamente en configuración de Diagnóstico.

Si va a recopilar registros de actividad mediante el método de recopilación heredado, se recomienda exportar los registros de actividad al área de trabajo de Log Analytics y deshabilitar la recopilación heredada mediante data Orígenes de datos: eliminar API como se indica a continuación:

  1. Indique todos los orígenes de datos conectados al área de trabajo mediante la Orígenes de datos: listar por API de área de trabajo y filtre los registros de actividad estableciendo kind eq 'AzureActivityLog'.

    Screenshot showing the configuration of the Data Sources - List By Workspace API.

  2. Copie el nombre de la conexión que quiere deshabilitar de la respuesta de la API.

    Screenshot showing the connection information you need to copy from the output of the Data Sources - List By Workspace API.

  3. Use Orígenes de datos: eliminar API para dejar de recopilar registros de actividad para el recurso específico.

    Screenshot of the configuration of the Data Sources - Delete API.

Administración de perfiles de registro heredados

Los perfiles de registro son el método heredado para enviar el registro de actividad a Azure Storage o Event Hubs. Si usa este método, considere la posibilidad de realizar la transición a la configuración de diagnóstico, ya que proporciona una mejor funcionalidad y coherencia con los registros de recursos.

Si ya existe un perfil de registro, primero debe quitarlo y luego crear uno nuevo.

  1. Use Get-AzLogProfile para identificar si existe un perfil de registro. Si existe un perfil de registro, tome nota de la propiedad Name.

  2. Use Remove-AzLogProfile para quitar el perfil de registro mediante el uso del valor de la propiedad Name.

    # For example, if the log profile name is 'default'
    Remove-AzLogProfile -Name "default"
    
  3. Use Add-AzLogProfile para crear un nuevo perfil de registro:

    Add-AzLogProfile -Name my_log_profile -StorageAccountId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Storage/storageAccounts/my_storage -serviceBusRuleId /subscriptions/s1/resourceGroups/Default-ServiceBus-EastUS/providers/Microsoft.ServiceBus/namespaces/mytestSB/authorizationrules/RootManageSharedAccessKey -Location global,westus,eastus -RetentionInDays 90 -Category Write,Delete,Action
    
    Propiedad Obligatorio Descripción
    Nombre Nombre de su perfil de registro.
    StorageAccountId No Identificador de recurso de la cuenta de almacenamiento donde se debe guardar el registro de actividad.
    serviceBusRuleId No Id. de la regla de Service Bus para el espacio de nombres de Service Bus donde quiere que se creen los centros de eventos. Esta cadena tiene el formato {service bus resource ID}/authorizationrules/{key name}.
    Location Lista separada por comas de las regiones para las que quiere recopilar eventos del registro de actividad.
    RetentionInDays Número de días que se deben retener los eventos en la cuenta de almacenamiento, entre 1 y 365. Con el valor cero, se almacenan los registros indefinidamente.
    Category No Lista separada por comas de las categorías de eventos que se van a recopilar. Los valores posibles son Write, Delete y Action.

Script de ejemplo

El script de PowerShell de ejemplo crea un perfil de registro que escribe el registro de actividad en una cuenta de almacenamiento y un centro de eventos.

# Settings needed for the new log profile
$logProfileName = "default"
$locations = (Get-AzLocation).Location
$locations += "global"
$subscriptionId = "<your Azure subscription Id>"
$resourceGroupName = "<resource group name your Event Hub belongs to>"
$eventHubNamespace = "<Event Hub namespace>"

# Build the service bus rule Id from the settings above
$serviceBusRuleId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.EventHub/namespaces/$eventHubNamespace/authorizationrules/RootManageSharedAccessKey"

# Build the Storage Account Id from the settings above
$storageAccountId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Storage/storageAccounts/$storageAccountName"

Add-AzLogProfile -Name $logProfileName -Location $locations -StorageAccountId  $storageAccountId -ServiceBusRuleId $serviceBusRuleId

Cambios en la estructura de datos

La experiencia de exportación de registros de actividad envía los mismos datos que el método heredado utilizado para enviar el registro de actividad con algunos cambios en la estructura de la tabla AzureActivity.

Las columnas de la tabla siguiente están en desuso en el esquema actualizado. Todavía existen en AzureActivity, pero no tienen datos. Los reemplazos de estas columnas no son nuevos, pero contienen los mismos datos que la columna en desuso. Tienen un formato distinto, por lo que es posible que tenga que modificar las consultas de registro que las utilizan.

Código JSON del registro de actividad Nombre de columna de Log Analytics
(antiguo en desuso)
Nuevo nombre de columna de Log Analytics Notas
category Category CategoryValue
status

Los valores son success, start, accept y failure.
ActivityStatus

Valores iguales que en JSON
ActivityStatusValue

Los valores cambian a succeeded, started, accepted y failed.
Los valores válidos cambian tal como se ha mostrado.
subStatus ActivitySubstatus ActivitySubstatusValue
operationName OperationName OperationNameValue La API REST localiza el valor del nombre de la operación. La interfaz de usuario de Log Analytics siempre se muestra en inglés.
resourceProviderName ResourceProvider ResourceProviderValue

Importante

En algunos casos, los valores de estas columnas pueden estar en mayúsculas. Si tiene una consulta que incluye estas columnas, utilice el operador =~ para realizar una comparación sin distinguir entre mayúsculas y minúsculas.

Las columnas siguientes se han agregado a AzureActivity en el esquema actualizado:

  • Authorization_d
  • Claims_d
  • Properties_d

Pasos siguientes

Más información sobre: