Inoltrare i log di diagnostica Automazione di Azure a Monitoraggio di Azure

Automazione di Azure può inviare lo stato e i flussi del processo del runbook all'area di lavoro Log Analytics. Questo processo non comporta il collegamento dell'area di lavoro ed è completamente indipendente e consente di eseguire indagini semplici. I log dei processi e i flussi di processo sono visibili nella portale di Azure o con PowerShell per i singoli processi. Con i log di Monitoraggio di Azure per l'account di Automazione, è possibile:

  • Ottenere informazioni dettagliate sullo stato dei processi di automazione.
  • Attivare un messaggio di posta elettronica o un avviso in base allo stato del processo del runbook, ad esempio non riuscito o sospeso.
  • Scrivere query avanzate nei flussi del processo.
  • Correlare i processi tra account di Automazione.
  • Usare visualizzazioni personalizzate e query di ricerca per visualizzare i risultati del runbook, lo stato del processo del runbook e altri indicatori chiave o metriche correlati tramite un dashboard di Azure.
  • Ottenere i log di controllo correlati ad account di Automazione, runbook e altre operazioni di creazione, modifica ed eliminazione di asset.

Usando i log di Monitoraggio di Azure, è possibile consolidare i log provenienti da risorse diverse nella stessa area di lavoro in cui è possibile analizzarli con query per recuperare, consolidare e analizzare rapidamente i dati raccolti. È possibile creare e testare query usando Log Analytics nel portale di Azure e quindi analizzare direttamente i dati usando questi strumenti o salvare le query da usare con la visualizzazione o le regole di avviso.

Monitoraggio di Azure usa una versione del linguaggio di query Kusto (KQL) usato da Azure Esplora dati adatto per query di log semplici. Include anche funzionalità avanzate, ad esempio aggregazioni, join e analisi intelligente. È possibile apprendere rapidamente il linguaggio di query usando le numerose lezioni disponibili.

Automazione di Azure impostazioni di diagnostica

È possibile inoltrare i log della piattaforma e i dati delle metriche seguenti usando il supporto delle impostazioni di diagnostica di Automazione:

Tipo di dati Descrizione
Log del processo Stato del processo del runbook nell'account di Automazione.
Flussi del processo Stato dei flussi di processo nel runbook definito nell'account di Automazione.
DSCNodeStatus Stato del nodo DSC.
AuditEvent Tutti i log delle risorse che registrano le interazioni con i clienti con i dati o le impostazioni del servizio Automazione di Azure.
Metrica Totale processi, aggiornamento totale, esecuzioni di computer di distribuzione, esecuzioni totali della distribuzione degli aggiornamenti.

Configurare le impostazioni di diagnostica in portale di Azure

È possibile configurare le impostazioni di diagnostica nel portale di Azure dal menu per la risorsa dell'account di Automazione.

  1. Nel menu dell'account di Automazione, in Monitoraggio selezionare Impostazioni di diagnostica.

    Screenshot che mostra la selezione dell'opzione di impostazione di diagnostica.

  2. Fare clic su Aggiungi impostazione di diagnostica.

    Screenshot che mostra la selezione dell'impostazione di diagnostica aggiungi.

  3. Immettere un nome di impostazione nel nome dell'impostazione di diagnostica, se non ne ha già uno.

    È anche possibile visualizzare tutte le categorie di log e metriche.

    Screenshot che mostra tutte le categorie di log e metriche.

    • Log e metriche da instradare : per i log, scegliere un gruppo di categorie o selezionare le singole caselle di controllo per ogni categoria di dati da inviare alle destinazioni specificate. Scegliere AllMetrics se si vuole archiviare le metriche nei log di Monitoraggio di Azure.

    • Dettagli destinazione: selezionare la casella di controllo per ogni destinazione. In base alla selezione di ogni casella, le opzioni vengono visualizzate per consentire di aggiungere informazioni aggiuntive.

      Screenshot che mostra le selezioni nella sezione dettagli destinazione.

      • Log Analytics : immettere l'ID sottoscrizione e il nome dell'area di lavoro. Se non si dispone di un'area di lavoro, è necessario crearne una prima di procedere.

      • Hub eventi: specificare i criteri seguenti:

        • Sottoscrizione: la stessa sottoscrizione di quella dell'hub eventi.
        • Spazio dei nomi dell'hub eventi: crea hub eventi se non ne hai ancora uno.
        • Nome hub eventi (facoltativo): se non si specifica un nome, viene creato un hub eventi per ogni categoria di log. Se si inviano più categorie, specificare un nome per limitare il numero di hub eventi creati. Per informazioni dettagliate, vedere Hub eventi di Azure quote e limiti.
        • Criteri di Hub eventi (facoltativo): un criterio definisce le autorizzazioni del meccanismo di streaming. Vedere Funzionalità di Hub eventi.
      • Archiviazione: scegliere la sottoscrizione, l'account di archiviazione e i criteri di conservazione. Screenshot che mostra l'account di archiviazione.

      • Integrazione dei partner: è prima necessario installare un'integrazione partner nella sottoscrizione. Le opzioni di configurazione varieranno in base al partner. Per altre informazioni, vedere Integrazione di Monitoraggio di Azure.

  4. Fare clic su Salva.

Dopo alcuni istanti, la nuova impostazione viene visualizzata nell'elenco delle impostazioni per questa risorsa e i log vengono trasmessi alle destinazioni specificate quando vengono generati nuovi dati dell'evento. L'evento generato e l'aspetto nell'area di lavoro Log Analytics possono essere diversi da 15 minuti.

Eseguire query sui log

Per eseguire query sui log generati:

  1. Nell'account di Automazione, in Monitoraggio selezionare Log.

  2. In Tutte le query selezionare Processi di automazione.

    Screenshot che mostra come passare alla selezione dei processi di Automazione.

  3. Selezionare una delle query da eseguire e fare clic su Esegui.

  4. Per eseguire una query personalizzata, chiudere la finestra Query e incollare la query personalizzata nella nuova finestra di query e fare clic su Esegui.

    L'output della query viene visualizzato nel riquadro Risultati .

  5. Fare clic su Nuova regola di avviso per configurare un avviso di Monitoraggio di Azure per questa query.

    Screenshot che mostra come eseguire query sui log.

Record di log di Monitoraggio di Azure

Automazione di Azure diagnostica creare i tipi di record seguenti nei log di Monitoraggio di Azure, contrassegnati come AzureDiagnostics. Le tabelle nelle sezioni seguenti sono esempi di record generati Automazione di Azure e i tipi di dati visualizzati nei risultati della ricerca log.

Log di processo

Proprietà Descrizione
TimeGenerated Data e ora di esecuzione del processo del runbook.
RunbookName_s Nome/nomi del runbook.
Caller_s Chiamante che ha avviato l'operazione. I valori possibili sono un indirizzo di posta elettronica o il sistema per i processi pianificati.
Tenant_g GUID (identificatore univoco globale) che identifica il tenant per il chiamante.
JobId_g GUID che identifica il processo del runbook.
ResultType Stato del processo del runbook. I valori possibili sono:
- Nuovo
- Creato
- Avviato
- Interrotto
- Sospeso
- Non riuscito
- Completato
Categoria La classificazione del tipo di dati. Per Automazione, il valore è JobLogs.
OperationName Tipo di operazione eseguita in Azure. Per Automazione, il valore è Job.
Conto risorse Nome dell'account di Automazione
SourceSystem Sistema usato dai log di Monitoraggio di Azure per raccogliere i dati. Il valore è sempre Azure per Diagnostica di Azure.
ResultDescription Stato del risultato del processo del runbook. I valori possibili sono:
- Processo avviato
- Processo non riuscito
- Processo completato
CorrelationId GUID di correlazione del processo del runbook.
ResourceId Automazione di Azure ID risorsa account del runbook.
SubscriptionId GUID della sottoscrizione di Azure per l'account di Automazione.
ResourceGroup Nome del gruppo di risorse dell'account di Automazione.
ResourceProvider Nome del provider di risorse. Il valore è MICROSOFT.AUTOMATION.
ResourceType Tipo di risorsa. Il valore è AUTOMATIONACCOUNTS.

Flussi di processo

Proprietà Descrizione
TimeGenerated Data e ora di esecuzione del processo del runbook.
RunbookName_s Nome del runbook.
Caller_s Chiamante che ha avviato l'operazione. I valori possibili sono un indirizzo di posta elettronica o il sistema per i processi pianificati.
StreamType_s Tipo di flusso di processo. I valori possibili sono:
- Avanzamento
- Output
- Avviso
- Errore
- Debug
- Dettagliato
Tenant_g GUID che identifica il tenant del chiamante.
JobId_g GUID che identifica il processo del runbook.
ResultType Lo stato del processo di runbook. I valori possibili sono:
- In corso
Categoria La classificazione del tipo di dati. Per Automazione, il valore è JobStreams.
OperationName Tipo di operazione eseguita in Azure. Per Automazione, il valore è Job.
Conto risorse Nome dell'account di Automazione.
SourceSystem Sistema usato dai log di Monitoraggio di Azure per raccogliere i dati. Il valore è sempre Azure per Diagnostica di Azure.
ResultDescription Descrizione che include il flusso di output dal runbook.
CorrelationId GUID di correlazione del processo del runbook.
ResourceId Automazione di Azure ID risorsa account del runbook.
SubscriptionId GUID della sottoscrizione di Azure per l'account di Automazione.
ResourceGroup Nome del gruppo di risorse dell'account di Automazione.
ResourceProvider Provider di risorse. Il valore è MICROSOFT.AUTOMATION.
ResourceType Tipo di risorsa. Il valore è AUTOMATIONACCOUNTS.

Nota

Verificare che le credenziali non vengano inviate ai flussi di processo. Il servizio rimuove le credenziali prima di visualizzare i flussi di processo nei log di diagnostica.

Eventi di controllo

Proprietà Descrizione
TenantID GUID che identifica il tenant del chiamante.
TimeGenerated (UTC) Data e ora di esecuzione del processo del runbook.
Categoria AuditEvent
ResourceGroup Nome del gruppo di risorse dell'account di Automazione.
ID sottoscrizione GUID della sottoscrizione di Azure per l'account di Automazione.
ResourceProvider MICROSOFT.AUTOMATION
Conto risorse Nome dell'account di Automazione
ResourceType AUTOMATIONACCOUNTS
OperationName I valori possibili sono Update, Create, Delete.
ResultType Stato del processo del runbook. Il valore possibile è: Completato.
CorrelationId GUID di correlazione del processo del runbook.
ResultDescription Stato del risultato del processo del runbook. I valori possibili sono Update, Create, Delete.
Tenant_g GUID che identifica il tenant del chiamante.
SourceSystem Sistema usato dai log di Monitoraggio di Azure per raccogliere i dati. Il valore è sempre Azure per Diagnostica di Azure.
clientInfo_IpAddress_s {scrubbed}
clientInfo_PrincipalName_s {scrubbed}
clientInfo_TenantId_g ID tenant del client.
clientInfo_Issuer_s
clientInfo_ObjectId_g ID oggetto del client.
clientInfo_AppId_g AppID del client.
clientInfo_ClientRequestId_g RequestID del client
targetResources_Resource_s Account, Job, Credential, Connessione ions, Variables, Runbook.
Type AzureDiagnostics
_ResourceId Automazione di Azure ID risorsa account del runbook.

Visualizzare i log di Automazione nei log di Monitoraggio di Azure

Dopo aver avviato l'invio dei flussi e dei log dei processi di Automazione ai log di Monitoraggio di Azure, è possibile esaminare le operazioni che è possibile eseguire con questi log all'interno dei log di Monitoraggio di Azure.

Per visualizzare i log eseguire questa query: kusto AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION"

Query di esempio per i log di processo e i flussi di processo

Trovare tutti i processi completati con errore

Oltre agli scenari come gli avvisi sugli errori, è possibile trovare quando un processo del runbook presenta un errore non irreversibile. In questi casi PowerShell produce un flusso di errore, ma gli errori non irreversibili non comportano la sospensione o l'esito negativo del processo.

  1. Nell'area di lavoro Log Analytics fare clic su Log.
  2. Nel campo della query digitare:
    AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and StreamType_s == "Error" | summarize AggregatedValue = count () by JobId_g. 
    
  3. Fare clic su Cerca.

Visualizzare flussi del processo per un processo

Quando si esegue il debug di un processo, è consigliabile esaminarne anche i flussi. La query seguente mostra tutti i flussi per un singolo processo 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

Visualizzare lo stato cronologico del processo

È infine consigliabile visualizzare la cronologia dei processi nel tempo. È possibile usare questa query per cercare lo stato dei processi nel tempo.

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

Grafico dello stato cronologico del processo di Log Analytics

Trovare i log che segnalano errori nei processi di automazione.

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

Trovare Automazione di Azure processi completati

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

Trovare Automazione di Azure processi non riusciti, sospesi o arrestati

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 

Elencare tutti i runbook e i processi completati correttamente con errori

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

Inviare un messaggio di posta elettronica quando un processo del runbook non riesce o viene sospeso

La procedura seguente illustra come configurare gli avvisi di posta elettronica in Monitoraggio di Azure per notificare quando si verifica un problema con un processo del runbook.

Per creare una regola di avviso, creare una ricerca log per i record del processo del runbook che devono richiamare l'avviso come descritto in Eseguire query sui log. Fare clic sulla regola di avviso +Nuovo per configurare la regola di avviso.

  1. Nell'account di Automazione, in Monitoraggio selezionare Log.

  2. Creare una query di ricerca log per l'avviso immettendo un criterio di ricerca nel campo della query.

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

    È anche possibile raggruppare in base al nome del runbook usando:

    AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and     Category == "JobLogs" and (ResultType == "Failed" or ResultType == "Suspended") | summarize AggregatedValue = count() by RunbookName_s 
    
  3. Per aprire la schermata Crea regola di avviso, fare clic su +Nuova regola di avviso nella parte superiore della pagina. Per altre informazioni sulle opzioni per configurare gli avvisi, vedere Avvisi di log in Azure

Automazione di Azure log di controllo di diagnostica

È ora possibile inviare log di controllo anche all'area di lavoro monitoraggio di Azure. Ciò consente alle aziende di monitorare le principali attività degli account di automazione per la sicurezza e la conformità. Se abilitata tramite le impostazioni di Diagnostica di Azure, sarà possibile raccogliere dati di telemetria sulle operazioni di creazione, aggiornamento ed eliminazione per i runbook di Automazione, i processi e gli asset di automazione, ad esempio connessione, credenziali, variabile e certificato. È anche possibile configurare gli avvisi per le condizioni del log di controllo come parte dei requisiti di monitoraggio della sicurezza.

Differenza tra log attività e log di controllo

Il log attività è un logdella piattaforma in Azure che fornisce informazioni dettagliate sugli eventi a livello di sottoscrizione. Il log attività per l'account di Automazione include informazioni su quando una risorsa di automazione viene modificata o creata o eliminata. Tuttavia, non acquisisce il nome o l'ID della risorsa.

I log di controllo per gli account di Automazione acquisiscono il nome e l'ID della risorsa, ad esempio la variabile di automazione, le credenziali, la connessione e così via, insieme al tipo di operazione eseguita per la risorsa e Automazione di Azure pulirebbero alcuni dettagli, ad esempio i dati IP client conformi alla conformità al GDPR.

I log attività visualizzano dettagli, ad esempio l'INDIRIZZO IP del client, perché un log attività è un log della piattaforma che fornisce informazioni di diagnostica e controllo dettagliate per le risorse di Azure. Vengono generati automaticamente per le attività che si verificano in ARM e vengono inoltrate al provider di risorse del log attività. Poiché i log attività fanno parte del monitoraggio di Azure, vengono visualizzati alcuni dati client per fornire informazioni dettagliate sull'attività client.  

Query di esempio per i log di controllo

Eseguire una query per visualizzare i log di controllo delle risorse di Automazione

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

Eseguire una query per monitorare qualsiasi operazione di aggiornamento, creazione o eliminazione di variabili

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

Eseguire una query per monitorare qualsiasi operazione del runbook, ad esempio creazione, bozza o aggiornamento

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

Eseguire una query per monitorare la creazione, l'aggiornamento o l'eliminazione di certificati

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

Eseguire una query per monitorare la creazione, l'aggiornamento o l'eliminazione di credenziali

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

Filtrare l'output dello stato del processo convertito in un oggetto JSON

Di recente è stato modificato il comportamento della scrittura dei dati dei log di Automazione nella AzureDiagnostics tabella nel servizio Log Analytics, in cui non suddivide più le proprietà JSON in campi separati. Se il runbook è stato configurato per formattare gli oggetti nel flusso di output in formato JSON come colonne separate, è necessario riconfigurare le query per analizzare tale campo in un oggetto JSON per accedere a tali proprietà. Questa operazione viene eseguita usando parse json per accedere a un elemento JSON specifico in un percorso noto.

Ad esempio, un runbook formatta la proprietà ResultDescription nel flusso di output in formato JSON con più campi. Per cercare lo stato dei processi che si trovano in uno stato di errore come specificato in un campo denominato Status, usare questa query di esempio per eseguire una ricerca in ResultDescription con lo stato Failed:

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

Formato JSON del flusso di processi cronologici di Log Analytics

Passaggi successivi