Condividi tramite


Inoltrare i log di diagnostica di 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 e i flussi di processo sono visibili nel portale di Azure o con PowerShell per 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, runbook e altre operazioni di creazione, modifica ed eliminazione di asset di Automazione.

Grazie ai 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 visualizzazione o regole di avviso.

Monitoraggio di Azure usa una versione del Linguaggio di query Kusto (KQL) usato da Esplora dati di Azure 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.

Impostazioni di diagnostica di Automazione di Azure

È 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 (Desired State Configuration).
AuditEvent Tutti i log delle risorse che registrano le interazioni dei clienti con i dati o le impostazioni del servizio Automazione di Azure.
Metrica Processi totali, aggiornamenti totali, esecuzioni dei computer di distribuzione, esecuzioni di distribuzione degli aggiornamenti totali.

Configurare le impostazioni di diagnostica nel 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 Account di Automazione, in Monitoraggio, selezionare Impostazioni di diagnostica.

    Screenshot che mostra la selezione dell’opzione delle impostazioni di diagnostica.

  2. Fare clic su Aggiungi impostazione di diagnostica.

    Screenshot che mostra la selezione di aggiunta delle impostazioni di diagnostica.

  3. Immettere un nome delle impostazioni in Nome delle impostazioni di diagnostica se non ne è presente 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 per 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 l’aggiunta di ulteriori informazioni.

      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 dell’hub eventi.
        • Spazio dei nomi dell’hub eventi: creare un hub eventi se non ne è ancora disponibile uno.
        • Nome hub eventi (facoltativo): se non si specifica un nome, verrà 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 Quote e limiti degli hub eventi di Azure.
        • Criteri degli hub eventi (facoltativo): un criterio definisce le autorizzazioni del meccanismo dei flussi. Vedere funzionalità degli hub eventi.
      • Archiviazione: scegliere la sottoscrizione, l’account di archiviazione e i criteri di conservazione. Screenshot che mostra l’account di archiviazione.

      • Integrazione 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. Può verificarsi una differenza di tempo di 15 minuti tra l’evento generato e la sua visualizzazione nell’area di lavoro Log Analytics.

Eseguire query sui log

Per eseguire query sui log generati:

  1. Nell’account di Automazione, in Monitoraggioselezionare 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

La diagnostica di Automazione di Azure crea i tipi di record seguenti nei log di Monitoraggio di Azure, contrassegnati come AzureDiagnostics. Le tabelle nelle sezioni seguenti sono esempi di record generati da 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:
- 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 ID risorsa del runbook dell’account di Automazione di Azure.
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 ID risorsa del runbook dell’account di Automazione di Azure.
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 Aggiornare, Creare, Eliminare.
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 Aggiornare, Creare, Eliminare.
Tenant_g GUID che identifica il tenant del chiamante.
SourceSystem Sistema usato dai log di Monitoraggio di Azure per raccogliere 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, Processo, Credenziali, Connessioni, Variabili, Runbook.
Type AzureDiagnostics
_ResourceId ID risorsa del runbook dell’account di Automazione di Azure.

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 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 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 processi di Automazione di Azure completati

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

Trovare processi di Automazione di Azure 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 una query sui log. Fare clic su +Nuova regola di avviso per configurare la regola di avviso.

  1. Nell’account di Automazione, in Monitoraggioselezionare 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 creare raggruppamenti 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

Log di controllo di diagnostica di Automazione di Azure

È ora possibile inviare log di controllo anche all’area di lavoro di Monitoraggio di Azure. Ciò consente alle aziende di monitorare le principali attività degli account di Automazione per la sicurezza e la conformità. Se l’opzione è abilitata tramite le impostazioni di Diagnostica di Azure, sarà possibile raccogliere i dati di telemetria relativi a operazioni di creazione, aggiornamento ed eliminazione per i runbook, i processi e gli asset di automazione, ad esempio connessione, credenziali, variabile e certificato di Automazione. È 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 log della 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, le credenziali, la connessione di Automazione e così via, insieme al tipo di operazione eseguita per la risorsa e Automazione di Azure eliminerà alcuni dettagli, ad esempio i dati IP del client in conformità con il 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, visualizzano 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 creare, creare una bozza o aggiornare

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 di log di Automazione nella tabella AzureDiagnostics nel servizio Log Analytics: le proprietà JSON non vengono più suddivise 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 a un oggetto JSON per accedere a tali proprietà. Questa operazione viene eseguita usando analizzare 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 chiamato Stato, usare questa query di esempio per eseguire una ricerca in ResultDescription con lo stato Non riuscito:

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