Entienda cómo se integra el aprovisionamiento con los registros de Azure Monitor

El aprovisionamiento se integra con registros de Azure Monitor y Log Analytics. Con la supervisión de Azure puede hacer cosas como crear libros, también conocidos como paneles, almacenar registros de aprovisionamiento durante más de 30 días y crear consultas y alertas personalizadas. En este artículo se describe cómo se integran los registros de aprovisionamiento con los registros de Azure Monitor. Para obtener más información sobre cómo funcionan los registros de aprovisionamiento en general, vea Registros de aprovisionamiento.

Habilitación de los registros de aprovisionamiento

Ya debería estar familiarizado con la supervisión de Azure y Log Analytics. Si no fuera así, vaya a obtener más información sobre ellos y, después, vuelva aquí para conocer los registros de aprovisionamiento de aplicaciones. Para obtener más información sobre la supervisión de Azure, vea Introducción a Azure Monitor. Para obtener más información sobre los registros de Azure Monitor y Log Analytics, consulte Introducción a las consultas de registro en Azure Monitor.

Una vez configurada la supervisión de Azure, es posible habilitar registros para el aprovisionamiento de aplicaciones. La opción se encuentra en la página Configuración de diagnóstico.

Access diagnostic settings

Enable application provisioning logs

Nota:

Si acaba de aprovisionar un área de trabajo, puede pasar algún tiempo antes de que pueda enviarle registros. Si recibe un error que le indica que la suscripción no está registrada para usar microsoft.insights, vuelva a realizar la comprobación después de unos minutos.

Descripción de los datos

El flujo de datos subyacente que el aprovisionamiento envía a los visores de registro es casi idéntico. Los registros de Azure Monitor obtienen casi el mismo flujo que la interfaz de usuario de Azure Portal y la API de Azure. Solo hay algunas diferencias en los campos de registro, tal y como se describe en la tabla siguiente. Para obtener más información sobre estos campos, consulte el artículo sobre la lista provisioningObjectSummary.

Registros de Azure Monitor Interfaz de usuario de Azure Portal API de Azure
errorDescription reason resultDescription
status resultType resultType
activityDateTime TimeGenerated TimeGenerated

Libros de Azure Monitor

Los libros de Azure Monitor facilitan un lienzo flexible para el análisis de datos. También permiten la creación de informes visuales completos en Azure Portal. Para obtener más información, consulte Introducción a los libros de Azure Monitor.

El aprovisionamiento de aplicaciones incluye un conjunto de libros precompilados. Puede encontrarlos en la página Libros. Para ver los datos, asegúrese de que se rellenen todos los filtros (timeRange, jobID y appName). Confirme también que la aplicación se haya aprovisionado, de lo contrario, no hay ningún dato en los registros.

Application provisioning workbooks

Application provisioning dashboard

Consultas personalizadas

Puede crear consultas personalizadas y mostrar los datos en los paneles de Azure. Para conocer cómo hacerlo, consulte Creación y uso compartido de paneles de datos de Log Analytics. Además, asegúrese de consultar Introducción a las consultas de registro en Azure Monitor.

Estos son algunos ejemplos para empezar a trabajar con el aprovisionamiento de aplicaciones.

Consulte los registros de un usuario en función de su identificador en el sistema de origen:

AADProvisioningLogs
| extend SourceIdentity = parse_json(SourceIdentity)
| where tostring(SourceIdentity.Id) == "49a4974bb-5011-415d-b9b8-78caa7024f9a"

Resumen del recuento por ErrorCode:

AADProvisioningLogs
| summarize count() by ErrorCode = ResultSignature

Resumen del recuento de eventos al día por acción:

AADProvisioningLogs
| where TimeGenerated > ago(7d)
| summarize count() by Action, bin(TimeGenerated, 1d)

Tome 100 eventos y las propiedades clave del proyecto:

AADProvisioningLogs
| extend SourceIdentity = parse_json(SourceIdentity)
| extend TargetIdentity = parse_json(TargetIdentity)
| extend ServicePrincipal = parse_json(ServicePrincipal)
| where tostring(SourceIdentity.identityType) == "Group"
| project tostring(ServicePrincipal.Id), tostring(ServicePrincipal.Name), ModifiedProperties, JobId, Id, CycleId, ChangeId, Action, SourceIdentity.identityType, SourceIdentity.details, TargetIdentity.identityType, TargetIdentity.details, ProvisioningSteps
| take 100

Recupere grupos con miembros omitidos debido a problemas para resolver referencias.

AADProvisioningLogs
| where TimeGenerated >= ago(10d)
| where JobId == "Azure2Azure.73f0883f-d67d-4af1-ac8a-45367f8982e0.5ef3be57-f45f-451g-88c4-68a7fda680bb" // Customize by adding a specific app JobId
| extend SourceIdentity = parse_json(SourceIdentity)
| extend ProvisioningSteps = parse_json(ProvisioningSteps)
| where tostring(SourceIdentity.identityType) == "Group"
| where ProvisioningSteps matches regex "UnableToResolveReferenceAttributeValue"
| parse tostring(ProvisioningSteps.[2].description) with "We were unable to assign " userObjectId " as the members of " groupDisplayName "." *
| project groupDisplayName, userObjectId,  JobId
| take 100

Resumir acciones por aplicación.

AADProvisioningLogs
| where TimeGenerated > ago(30d)
| where JobId == "Azure2Azure.73f0883f-d67d-4af1-ac8a-45367f8982e0.5ef3be57-f45f-451g-88c4-68a7fda680bb" // Customize by adding a specific app JobId
| extend ProvisioningSteps = parse_json(ProvisioningSteps)
| extend eventName = tostring(ProvisioningSteps.[-1].name)
| summarize count() by eventName, JobId
| order by JobId asc
| take 5

Identificar picos en operaciones específicas.

AADProvisioningLogs
| where TimeGenerated > ago(30d)
| where JobId == "scim.73f0883f-d67d-4af1-ac8a-45367f8982e0.5ef3be57-f45f-451g-88c4-68a7fda680bb" // Customize by adding a specific app JobId
| extend ProvisioningSteps = parse_json(ProvisioningSteps)
| extend eventName = tostring(ProvisioningSteps.[-1].name)
| summarize count() by eventName, bin(TimeGenerated, 1d)
| render timechart

Alertas personalizadas

Azure Monitor le permite configurar alertas personalizadas para que pueda recibir notificaciones sobre eventos clave relacionados con el aprovisionamiento. Por ejemplo, es posible que quiera recibir una alerta en caso de picos de errores. O quizás en caso de picos de deshabilitaciones o eliminaciones. Otro ejemplo de cuándo puede querer recibir alertas es la falta de aprovisionamiento, lo que indica que algo no va bien.

Para más información sobre las alertas, consulte Alertas de registro de Azure Monitor.

Alerta cuando hay un pico de errores. Reemplace jobID por el valor jobID de la aplicación.

Alert when there's a spike in failures.

Puede que un problema haya provocado que el servicio de aprovisionamiento haya dejado de ejecutarse. Use la siguiente alerta para detectar cuándo no hay ningún evento de aprovisionamiento durante un intervalo determinado.

There may be an issue that caused the provisioning service to stop running.

Alerta cuando hay un pico de deshabilitaciones o eliminaciones.

Alert when there's a spike in disables or deletes.

Contribuciones de la comunidad

Se está adoptando un enfoque de código abierto basado en la comunidad para las consultas y los paneles de aprovisionamiento de aplicaciones. Cree una consulta, alerta o libro que crea que es útil para otros y, después, publíquelo en el repositorio de GitHub de AzureMonitorCommunity. Envíenos un correo electrónico con un vínculo. Revisamos y publicamos consultas y paneles en el servicio para que otros también se beneficien. Póngase en contacto con nosotros en provisioningfeedback@microsoft.com.

Pasos siguientes