Reenvío de los registros de diagnóstico de Azure Automation a Azure Monitor

Azure Automation puede enviar el estado de un trabajo del runbook y de flujos de trabajos al área de trabajo de Log Analytics. Este proceso no implica la vinculación del área de trabajo, es completamente independiente y permite realizar investigaciones sencillas. Los registros de trabajo y los flujos de trabajo están visibles en Azure Portal, o con PowerShell para los trabajos individuales. Con registros de Azure Monitor para la cuenta de Automation, podrá hacer lo siguiente:

  • Obtener información sobre el estado de los trabajos de Automation.
  • Desencadenar un correo electrónico o una alerta en función del estado de trabajo del runbook (por ejemplo, error o en suspensión).
  • Escribir consultas avanzadas en las transmisiones de trabajos.
  • Correlacionar trabajos en cuentas de Automation.
  • Usar vistas personalizadas y consultas de búsqueda para visualizar los resultados de runbook, el estado del trabajo de runbook y otras métricas o indicadores clave relacionados mediante un panel de Azure.
  • Obtenga los registros de auditoría relacionados con las cuentas de Automation, runbooks y otras operaciones de creación, modificación y eliminación de recursos.

Mediante los registros de Azure Monitor, puede consolidar registros de distintos recursos en la misma área de trabajo, donde se pueden analizar con consultas para recuperar, consolidar y analizar rápidamente los datos recopilados. Puede crear y probar consultas mediante Log Analytics en Azure Portal y después analizar los datos directamente mediante estas herramientas o guardar las consultas para usarlas con la visualización o las reglas de alertas.

Azure Monitor usa una versión del lenguaje de consulta Kusto (KQL) que usa Azure Data Explorer y que es adecuada para consultas de registro sencillas. También incluye funciones avanzadas, como agregaciones, combinaciones y análisis inteligentes. Puede aprender rápidamente el lenguaje de consulta con diversas lecciones.

Configuración de diagnóstico de Azure Automation

Puede reenviar los registros de plataforma y datos de métricas siguientes mediante la compatibilidad con la configuración de diagnóstico de Automation:

Tipos de datos Descripción
Registros de trabajo Estado del trabajo de runbook en la cuenta de Automation.
Flujos de trabajo Estado de los flujos de trabajo en el runbook definido en la cuenta de Automation.
DSCNodeStatus Estado del nodo DSC.
AuditEvent Todos los registros de recursos que registran las interacciones de los clientes con los datos o la configuración del servicio Azure Automation.
Métricas Total de trabajos, actualizaciones totales, ejecuciones de máquinas de implementación, ejecuciones de implementación de actualizaciones totales

Configuración de los valores de diagnóstico en Azure Portal

Puede configurar los valores de diagnóstico en Azure Portal desde el menú del recurso de la cuenta de Automation.

  1. En el menú de la cuenta de Automation, seleccione Configuración de diagnóstico en Supervisión.

    Screenshot showing selection of diagnostic setting option.

  2. Haga clic en Agregar configuración de diagnóstico.

    Screenshot showing selection of add diagnostic setting.

  3. Escriba un nombre de configuración en el Nombre de configuración de diagnóstico si aún no tiene uno.

    También puede ver todas las categorías de registros y métricas.

    Screenshot showing all categories of logs and metrics.

    • Registros y métricas para enrutar: en el caso de los registros, elija un grupo de categorías o seleccione las casillas de verificación individuales de cada categoría de datos que quiera enviar a los destinos especificados. Elija AllMetrics si quiere almacenar métricas en registros de Azure Monitor.

    • Detalles de destino: seleccione la casilla de verificación para cada destino. Según la selección de cada cuadro, las opciones parecen permitirle agregar información adicional.

      Screenshot showing selections in destination details section.

      • Log Analytics: escriba el id. de suscripción y el nombre del área de trabajo. Si no tiene una área de trabajo, tendrá que crear una antes de continuar.

      • Event Hubs: especifique los criterios siguientes:

        • Suscripción: la misma que la del centro de eventos.
        • Espacio de nombres del centro de eventos: cree un centro de eventos si aún no tiene uno.
        • Nombre del centro de eventos (opcional): si no especifica uno, se crea un centro de eventos para cada categoría de registro. Si va a enviar varias categorías, especifique un nombre para limitar el número de instancias de Event Hubs creadas. Consulte Cuotas y límites de Azure Event Hubs para más detalles.
        • Directiva del centro de eventos (opcional): una directiva define los permisos que tiene el mecanismo de streaming. Vea característica de Event Hubs.
      • Storage: elija una suscripción, una cuenta de almacenamiento y una directiva de retención. Screenshot showing the storage account.

      • Integración de asociados: primero debe instalar una integración de asociados en la suscripción. Las opciones de configuración variarán según el asociado. Para obtener más información, vea Integración de Azure Monitor.

  4. Haga clic en Save(Guardar).

Transcurridos unos instantes, la nueva configuración aparece en la lista de configuraciones para este recurso y los registros se transmiten a los destinos especificados en cuanto se generan nuevos datos de eventos. Puede haber una diferencia de 15 minutos entre el evento emitido y su aparición en el área de trabajo de Log Analytics.

Consulta de los registros

Para consultar los registros generados:

  1. En la cuenta de Automation, en Supervisión, seleccione Registros.

  2. En Todas las consultas, seleccione Automation Jobs (Trabajos de Automation).

    Screenshot showing how to navigate to select Automation jobs.

  3. Seleccione una de las consultas que quiere ejecutar y haga clic en Ejecutar.

  4. Para ejecutar una consulta personalizada, cierre la ventana Consultas, pegue la consulta personalizada en la nueva ventana de consulta y haga clic en Ejecutar.

    La salida de la consulta se muestra en el panel Resultados.

  5. Haga clic en Nueva regla de alertas para configurar una alerta de Azure Monitor para esta consulta.

    Screenshot showing how to query logs.

Registros de Azure Monitor

Los diagnósticos de Azure Automation crean los tipos de registros siguientes en los registros de Azure Monitor, etiquetados como AzureDiagnostics. Las tablas de las secciones siguientes son ejemplos de registros que genera Azure Automation y los tipos de datos que aparecen en los resultados de búsqueda de los registros.

Registros de trabajo

Propiedad Descripción
TimeGenerated Fecha y hora en que se ejecuta el trabajo de Runbook.
RunbookName_s Nombre o nombres del runbook.
Caller_s Autor de la llamada que inició la operación. Los valores posibles son una dirección de correo electrónico o el sistema para los trabajos programados.
Tenant_g GUID (identificador único global) que identifica el inquilino para el autor de la llamada.
JobId_g El GUID que identifica el trabajo de runbook.
ResultType Estado del trabajo de runbook. Los valores posibles son:
- Nuevo
- Created
Started
Stopped
Suspended
Con error
Completado
Category Clasificación del tipo de datos. Para Automation, el valor será JobLogs.
OperationName El tipo de operación realizada en Azure. En Automation, el valor es Job.
Resource Nombre de la cuenta de Automation
SourceSystem El sistema que utilizan los registros de Azure Monitor para recopilar los datos. En los diagnósticos de Azure, el valor siempre es "Azure".
ResultDescription Estado de resultado del trabajo de runbook. Los valores posibles son:
- Se inicia el trabajo
- Error del trabajo
- Trabajo completado
CorrelationId GUID de correlación del trabajo de runbook.
ResourceId Id. de recurso de la cuenta de Azure Automation del runbook.
SubscriptionId GUID de la suscripción de Azure para la cuenta de Automation.
Grupo de recursos Nombre del grupo de recursos de la cuenta de Automation.
ResourceProvider Nombre del proveedor de recursos El valor es MICROSOFT.AUTOMATION.
ResourceType Tipo de recurso. El valor es AUTOMATIONACCOUNTS.

Transmisiones de trabajo

Propiedad Descripción
TimeGenerated Fecha y hora en que se ha ejecutado el trabajo de runbook.
RunbookName_s Nombre del Runbook.
Caller_s Autor de la llamada que inició la operación. Los valores posibles son una dirección de correo electrónico o el sistema para los trabajos programados.
StreamType_s Tipo de flujo de trabajo. Los valores posibles son:
progreso
- Salida
- Advertencia
Error
DEBUG
- Detallado
Tenant_g El GUID que identifica al inquilino del autor de la llamada.
JobId_g El GUID que identifica el trabajo de runbook.
ResultType El estado del trabajo de Runbook. Los valores posibles son:
- In Progress
Category Clasificación del tipo de datos. Para Automation, el valor es JobStreams.
OperationName El tipo de operación realizada en Azure. En Automation, el valor es Job.
Resource Nombre de la cuenta de Automation.
SourceSystem El sistema que utilizan los registros de Azure Monitor para recopilar los datos. En los diagnósticos de Azure, el valor siempre es "Azure".
ResultDescription Descripción que incluye el flujo de salida del runbook.
CorrelationId GUID de correlación del trabajo de runbook.
ResourceId Id. de recurso de la cuenta de Azure Automation del runbook.
SubscriptionId GUID de la suscripción de Azure para la cuenta de Automation.
Grupo de recursos Nombre del grupo de recursos de la cuenta de Automation.
ResourceProvider Proveedor de recursos. El valor es MICROSOFT.AUTOMATION.
ResourceType Tipo de recurso. El valor es AUTOMATIONACCOUNTS.

Eventos de auditoría

Propiedad Descripción
TenantID El GUID que identifica al inquilino del autor de la llamada.
TimeGenerated (UTC) Fecha y hora en que se ejecuta el trabajo de runbook.
Category AuditEvent
Grupo de recursos Nombre del grupo de recursos de la cuenta de Automation.
Id. de suscripción GUID de la suscripción de Azure para la cuenta de Automation.
ResourceProvider MICROSOFT.AUTOMATION
Resource Nombre de la cuenta de Automation
ResourceType AUTOMATIONACCOUNTS
OperationName Los valores posibles son Update, Create y Delete.
ResultType Estado del trabajo de runbook. El valor posible es: Completed.
CorrelationId GUID de correlación del trabajo de runbook.
ResultDescription Estado de resultado del trabajo de runbook. Los valores posibles son Update, Create y Delete.
Tenant_g El GUID que identifica al inquilino del autor de la llamada.
SourceSystem Sistema que utilizan los registros de Azure Monitor para recopilar los datos. En los diagnósticos de Azure, el valor siempre es "Azure".
clientInfo_IpAddress_s {scrubbed}
clientInfo_PrincipalName_s {scrubbed}
clientInfo_TenantId_g Id. de inquilino del cliente.
clientInfo_Issuer_s
clientInfo_ObjectId_g Id. de objeto del cliente.
clientInfo_AppId_g AppID del cliente.
clientInfo_ClientRequestId_g RequestID del cliente.
targetResources_Resource_s Cuenta, Trabajo, Credencial, Conexiones, Variables, Runbook.
Tipo AzureDiagnostics
_ResourceId Id. de recurso de la cuenta de Azure Automation del runbook.

Visualización de registros de Automation en registros de Azure Monitor

Ahora que ha iniciado el envío de los registros y los flujos de trabajo de Automation a los registros de Azure Monitor, veamos lo que puede hacer con ellos en los registros de Azure Monitor.

Para ver los registros, ejecute la consulta siguiente: kusto AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION"

Consultas de ejemplo para registros de trabajo y flujos de trabajo

Búsqueda de todos los trabajos completados con error

Además de los escenarios como las alertas al producirse errores, puede averiguar cuándo un trabajo de runbook tiene un error de no terminación. En estos casos, PowerShell genera un flujo de errores, aunque los errores de no terminación no causan la suspensión ni producen un error en el trabajo.

  1. En el área de trabajo de Log Analytics, haga clic en Registros.
  2. En el campo de consulta, escriba:
    AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and StreamType_s == "Error" | summarize AggregatedValue = count () by JobId_g. 
    
  3. Haga clic en Buscar.

Visualización de las transmisiones de un trabajo

Cuando se depura un trabajo, también se pueden examinar sus transmisiones. La siguiente consulta muestra todos los flujos de un solo trabajo con GUID 2ebd22ea-e05e-4eb9-9d76-d73cbd4356e0:

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and JobId_g == "2ebd22ea-e05e-4eb9-9d76-d73cbd4356e0"
| sort by TimeGenerated asc
| project ResultDescription

Visualización del estado del historial de trabajos

Por último, puede que desee visualizar el historial de trabajos a lo largo del tiempo. Esta consulta se puede usar para buscar el estado de los trabajos con el paso del tiempo.

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and ResultType != "started"
| summarize AggregatedValue = count() by ResultType, bin(TimeGenerated, 1h)

Log Analytics Historical Job Status Chart

Busque los registros que informan de errores en los trabajos de automatización.

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" 
| where StreamType_s == "Error" 
| project TimeGenerated, Category, JobId_g, OperationName, RunbookName_s, ResultDescription, _ResourceId 

Búsqueda de trabajos completados de Azure Automation

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and ResultType == "Completed" 
| project TimeGenerated, RunbookName_s, ResultType, _ResourceId, JobId_g

Búsqueda de trabajos de Azure Automation con errores, suspendidos o detenidos

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and (ResultType == "Failed" or ResultType == "Stopped" or ResultType == "Suspended") 
| project TimeGenerated, RunbookName_s, ResultType, _ResourceId, JobId_g 

Enumerar todos los runbooks y trabajos que se completaron correctamente con errores

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and StreamType_s == "Error" 
| project TimeGenerated, RunbookName_s, StreamType_s, _ResourceId, ResultDescription, JobId_g 

Envío de un correo electrónico cuando se produce un error en un trabajo del runbook o se suspende

En los pasos siguientes se explica cómo configurar alertas de correo electrónico en Azure Monitor para notificar cuando se produzca algún problema con un trabajo de runbook.

Para crear una regla de alerta, cree una búsqueda de registros del trabajo del runbook que deben invocar la alerta, tal como se describe en Consulta de los registros. Haga clic en +Nueva regla de alertas para configurar la regla de alertas.

  1. En la cuenta de Automation, en Supervisión, seleccione Registros.

  2. Cree una consulta de búsqueda de registros para la alerta; para ello, escriba un criterio de búsqueda en el campo de la consulta.

    AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and (ResultType == "Failed" or ResultType == "Suspended")   
    

    También puede agrupar por el nombre del runbook, para lo que debe usar:

    AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and     Category == "JobLogs" and (ResultType == "Failed" or ResultType == "Suspended") | summarize AggregatedValue = count() by RunbookName_s 
    
  3. Para abrir la pantalla Crear regla de alertas, haga clic en +Nueva regla de alertas en la parte superior de la página. Para obtener más información sobre las opciones a fin de configurar las alertas, vea Alertas de registro en Azure.

Registros de auditoría de diagnóstico de Azure Automation

Ahora puede enviar registros de auditoría también al área de trabajo de Azure Monitor. Esto permite a las empresas supervisar las actividades clave de la cuenta de automatización para la seguridad y el cumplimiento. Cuando se habilita a través de la configuración de Azure Diagnostics, podrá recopilar datos de telemetría sobre las operaciones de creación, actualización y eliminación de runbooks de Automation, trabajos y recursos de automatización como conexión, credencial, variable y certificado. También puede configurar las alertas para las condiciones del registro de auditoría como parte de los requisitos de supervisión de seguridad.

Diferencia entre los registros de actividad y los registros de auditoría

El registro de actividad es un registro de plataforma de Azure que proporciona información sobre los eventos del nivel de suscripción. El registro de actividad de la cuenta de Automation incluye información sobre cuándo se modifica, se crea o elimina un recurso de automatización. Pero no captura el nombre ni el id. del recurso.

Los registros de auditoría de las cuentas de Automation capturan el nombre y el id. del recurso, como la variable de automatización, las credenciales, la conexión, entre otros, junto con el tipo de operación realizada para el recurso, y Azure Automation limpiaría algunos detalles, como los datos IP de cliente que se ajustan al cumplimiento del RGPD.

Los registros de actividad mostrarían detalles como la dirección IP del cliente porque un registro de actividad es un registro de plataforma que proporciona información detallada de diagnóstico y auditoría para los recursos de Azure. Se generan automáticamente para las actividades que se producen en ARM y se insertan en el proveedor de recursos del registro de actividad. Puesto que los registros de actividad forman parte de la supervisión de Azure, mostraría algunos datos de cliente para proporcionar información sobre la actividad de este.  

Consultas de ejemplo para registros de auditoría

Consulta para ver registros de auditoría de recursos de Automation

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" 

Consulta para supervisar cualquier operación de actualización, creación o eliminación de variables

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" and targetResources_Resource_s == "Variable" 

Consulta para supervisar cualquier operación de runbook, como de creación, redacción o actualización

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" and targetResources_Resource_s contains "Runbook" 

Consulta para supervisar la creación, actualización o eliminación de certificados

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" and targetResources_Resource_s contains "Certificate" 

Consulta para supervisar la creación, actualización o eliminación de credenciales

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" and targetResources_Resource_s contains "Credential" 

Filtrado de la salida de estado del trabajo convertida en un objeto JSON

Recientemente hemos cambiado el comportamiento de la escritura de los datos de registros de Automation en la tabla AzureDiagnostics del servicio Log Analytics, donde ya no se desglosan las propiedades JSON en campos independientes. Si configuró el runbook para dar formato a los objetos del flujo de salida en formato JSON como columnas independientes, es necesario volver a configurar las consultas para analizar ese campo en un objeto JSON con el fin de acceder a esas propiedades. Esto se logra mediante parse json para acceder a un elemento JSON específico en una ruta de acceso conocida.

Por ejemplo, un runbook da formato a la propiedad ResultDescription en el flujo de salida en formato JSON con varios campos. Para buscar el estado de los trabajos que se encuentran en estado de error, tal y como se especifica en un campo denominado Estado, use esta consulta de ejemplo para buscar el objeto ResultDescription con el estado Error:

AzureDiagnostics
| where Category == 'JobStreams'
| extend jsonResourceDescription = parse_json(ResultDescription)
| where jsonResourceDescription.Status == 'Failed'

Log Analytics Historical Job Stream JSON format

Pasos siguientes