Integrare Automazione di Azure State Configuration con i log di Monitoraggio di Azure

Nota

Prima di abilitare Automation State Configuration, si vuole sapere che una versione più recente di DSC è ora disponibile a livello generale, gestita da una funzionalità di Criteri di Azure configurazione guest denominata. Il servizio di configurazione guest combina le funzionalità dell'estensione DSC, Automazione di Azure State Configuration e le funzionalità più comunemente richieste dai clienti. La configurazione guest include anche il supporto del computer ibrido tramite server abilitati per Arc.

State Configuration di Automazione di Azure mantiene i dati sullo stato dei nodi per 30 giorni. È possibile inviare dati sullo stato del nodo ai log di Monitoraggio di Azure se si preferisce conservare questi dati per un periodo più lungo. Lo stato della conformità è visibile nel portale di Azure o tramite PowerShell per i nodi e per le singole risorse DSC nelle configurazioni dei nodi.

I log di Monitoraggio di Azure offrono una maggiore visibilità operativa ai dati di State Configuration di Automazione e consentono di risolvere gli eventi imprevisti più rapidamente. Con i log di Monitoraggio di Azure è possibile:

  • Ottenere informazioni sulla conformità per nodi gestiti e singole risorse.
  • Attivare un messaggio di posta elettronica o un avviso in base allo stato di conformità.
  • Scrivere query avanzate in tutti i nodi gestiti.
  • Correlare lo stato di conformità negli account di Automazione.
  • Usare visualizzazioni personalizzate e query di ricerca per visualizzare i risultati del runbook, lo stato dei processi del runbook e altri indicatori chiave o metriche correlati.

Nota

Questo articolo è stato aggiornato di recente in modo da usare il termine log di Monitoraggio di Azure anziché Log Analytics. I dati di log vengono comunque archiviati in un'area di lavoro Log Analytics e vengano ancora raccolti e analizzati dallo stesso servizio Log Analytics. Si sta procedendo a un aggiornamento della terminologia per riflettere meglio il ruolo dei log in Monitoraggio di Azure. Per informazioni dettagliate, vedere Modifiche della terminologia di Monitoraggio di Azure.

Prerequisiti

Per iniziare a inviare i report di Automation State Configuration ai log di Monitoraggio di Azure, è necessario:

  • Il modulo Az di PowerShell installato. Verificare di avere l'ultima versione. Se necessario, eseguire Update-Module -Name Az.

Configurare l'integrazione con i log di Monitoraggio di Azure

Per iniziare a importare dati da Automazione di Azure State Configuration nei log di Monitoraggio di Azure, seguire questa procedura. Per i passaggi che usano il portale, vedere Inoltrare Automazione di Azure dati del processo ai log di Monitoraggio di Azure.

  1. Dal computer accedere alla sottoscrizione di Azure con il cmdlet PowerShell Connessione-AzAccount e seguire le istruzioni visualizzate.

    # Sign in to your Azure subscription
    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
    # If you have multiple subscriptions, set the one to use
    # Select-AzSubscription -SubscriptionId "<SUBSCRIPTIONID>"
    
  2. Specificare un valore appropriato per le variabili automationAccount con il nome effettivo dell'account di Automazione e workspaceName con il nome effettivo dell'area di lavoro Log Analytics. A questo punto, eseguire lo script.

    $automationAccount = "automationAccount"
    $law = "workspaceName"
    
  3. Ottenere l'ID risorsa dell'account di Automazione eseguendo i comandi di PowerShell seguenti.

    # Find the ResourceId for the Automation account
    $AutomationResourceId = (Get-AzResource `
       -ResourceType 'Microsoft.Automation/automationAccounts' | 
       WHERE {$_.Name -eq $automationAccount}).ResourceId
    
  4. Ottenere l'ID risorsa dell'area di lavoro Log Analytics eseguendo i comandi di PowerShell seguenti.

     # Find the ResourceId for the Log Analytics workspace
     $WorkspaceResourceId = (Get-AzResource `
         -ResourceType 'Microsoft.OperationalInsights/workspaces' | 
         WHERE {$_.Name -eq $law}).ResourceId
    
  5. Per configurare le impostazioni di diagnostica nell'account di Automazione per inoltrare i dati del log dello stato del nodo DSC ai log di Monitoraggio di Azure, il cmdlet di PowerShell seguente crea un'impostazione di diagnostica usando tale destinazione.

     Set-AzDiagnosticSetting `
         -ResourceId $AutomationResourceId `
         -WorkspaceId $WorkspaceResourceId `
         -Enabled $true `
         -Category 'DscNodeStatus'
    

    Quando si vuole interrompere l'inoltro dei dati di log da Automation State Configuration ai log di Monitoraggio di Azure, eseguire il cmdlet di PowerShell seguente.

     Set-AzDiagnosticSetting `
         -ResourceId $AutomationResourceId `
         -WorkspaceId $WorkspaceResourceId `
         -Enabled $false `
         -Category 'DscNodeStatus'
    

Visualizzare i log di configurazione dello stato

È possibile eseguire ricerche nei log di State Configuration per le operazioni DSC eseguendo una ricerca nei log di Monitoraggio di Azure. Dopo aver configurato l'integrazione con i log di Monitoraggio di Azure per i dati di Automation State Configuration, passare all'account di Automazione nel portale di Azure. In Monitoraggio selezionare Quindi Log.

Logs

Chiudere la finestra di dialogo Query . Il riquadro Ricerca log viene aperto con un'area di query con ambito definito in base alla risorsa dell'account di Automazione. I record relativi alle operazioni DSC sono archiviati nella tabella AzureDiagnostics. Per trovare nodi non conformi, digitare la query seguente.

AzureDiagnostics
| where Category == "DscNodeStatus"
| where OperationName contains "DSCNodeStatusData"
| where ResultType != "Compliant"

Dettagli di filtro:

  • Filtrare in base a DscNodeStatusData per restituire le operazioni per ogni nodo di State Configuration.
  • Filtrare in base a DscResourceStatusData per restituire le operazioni per ogni risorsa DSC chiamata nella configurazione del nodo applicata a tale risorsa.
  • Filtrare in base a DscResourceStatusData per restituire le informazioni sugli errori per tutte le risorse DSC che hanno esito negativo.

Per altre informazioni sulla creazione di query di log per trovare dati, vedere Panoramica delle query di log in Monitoraggio di Azure.

Inviare un messaggio di posta elettronica in caso di errore di un controllo della conformità alla configurazione dello stato

  1. Tornare alla query creata in precedenza.

  2. Premere il pulsante "+ Nuova regola di avviso" per avviare il flusso di creazione dell'avviso.

  3. Nella query seguente sostituire NODENAME con il nome effettivo del nodo gestito e quindi incollare la query modificata nella casella di testo Cerca query :

    AzureDiagnostics
    | where Category == "DscNodeStatus"
    | where NodeName_s == "NODENAME"
    | where OperationName == "DscNodeStatusData"
    | where ResultType == "Failed"
    

    Se sono stati configurati log da più account di Automazione o sottoscrizioni nell'area di lavoro, è possibile raggruppare gli avvisi per sottoscrizione o account di Automazione. Derivare il nome dell'account Resource di Automazione dalla proprietà nei risultati della ricerca log di DscNodeStatusData.

  4. Esaminare Creare, visualizzare e gestire gli avvisi delle metriche usando Monitoraggio di Azure per completare i passaggi rimanenti.

Trovare le risorse DSC con errori in tutti i nodi

Uno dei vantaggi dell'uso dei log di Monitoraggio di Azure è la possibilità di cercare controlli non riusciti tra i nodi. Per trovare tutte le istanze di risorse DSC non riuscite, usare la query seguente:

AzureDiagnostics 
| where Category == "DscNodeStatus"
| where OperationName == "DscResourceStatusData"
| where ResultType == "Failed"

Visualizzare lo stato cronologico dei nodi DSC

Per visualizzare la cronologia dello stato dei nodi DSC nel tempo, è possibile usare questa query:

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" 
| where Category == "DscNodeStatus"
| where ResultType != "started"
| summarize count() by ResultType

Verrà visualizzato un grafico dello stato dei nodi nel tempo.

Record dei log di Monitoraggio di Azure

Automazione di Azure diagnostica creare due categorie di record nei log di Monitoraggio di Azure:

  • Dati sullo stato del nodo (DscNodeStatusData)
  • Dati sullo stato della risorsa (DscResourceStatusData)

DscNodeStatusData

Proprietà Descrizione
TimeGenerated Data e ora dell'esecuzione del controllo della conformità.
OperationName DscNodeStatusData.
ResultType Valore che indica se il nodo è conforme.
NodeName_s Nome del nodo gestito.
NodeComplianceStatus_s Valore dello stato che specifica se il nodo è conforme.
DscReportStatus Valore dello stato che indica se il controllo di conformità è stato eseguito correttamente.
ConfigurationMode Modalità usata per applicare la configurazione al nodo. I valori possibili sono:
  • ApplyOnly: DSC applica la configurazione e non esegue altre operazioni a meno che non venga eseguito il push di una nuova configurazione nel nodo di destinazione o quando viene eseguito il pull di una nuova configurazione da un server. Dopo l'applicazione iniziale di una nuova configurazione, DSC non verifica la deriva da uno stato configurato in precedenza. DSC tenta di applicare la configurazione fino a quando non ha esito positivo prima che il ApplyOnly valore venga applicato.
  • ApplyAndMonitor: valore predefinito. Gestione configurazione locale applica qualsiasi nuova configurazione. Dopo l'applicazione iniziale di una nuova configurazione, in caso di deviazione del nodo di destinazione rispetto allo stato desiderato, DSC segnala la discrepanza nei log. DSC tenta di applicare la configurazione fino a quando non ha esito positivo prima che il ApplyAndMonitor valore venga applicato.
  • ApplyAndAutoCorrect: DSC applica le nuove configurazioni. Dopo l'applicazione iniziale di una nuova configurazione, in caso di deviazione del nodo di destinazione rispetto allo stato desiderato, DSC segnala la discrepanza nei log e quindi applica di nuovo la configurazione corrente.
HostName_s Nome del nodo gestito.
IPAddress Indirizzo IPv4 del nodo gestito.
Categoria DscNodeStatus.
Risorsa Nome dell'account di Automazione di Azure.
Tenant_g GUID che identifica il tenant del chiamante.
NodeId_g GUID che identifica il nodo gestito.
DscReportId_g GUID che identifica il report.
LastSeenTime_t Data e ora dell'ultima visualizzazione del report.
ReportStartTime_t Data e ora dell'avvio del report.
ReportEndTime_t Data e ora del completamento del report.
NumberOfResources_d Numero di risorse DSC chiamate nella configurazione applicata al nodo.
SourceSystem Il sistema di origine che identifica il modo in cui i log di Monitoraggio di Azure hanno raccolto i dati. Il valore è sempre Azure per diagnostica di Azure.
ResourceId Identificatore di risorsa dell'account di Automazione di Azure.
ResultDescription Descrizione della risorsa per questa operazione.
SubscriptionId ID della sottoscrizione di Azure (GUID) per l'account di Automazione.
ResourceGroup Nome del gruppo di risorse per l'account di Automazione.
ResourceProvider MICROSOFT.AUTOMATION.
ResourceType AUTOMATIONACCOUNTS.
CorrelationId GUID che rappresenta l'identificatore di correlazione del report di conformità.

DscResourceStatusData

Proprietà Descrizione
TimeGenerated Data e ora dell'esecuzione del controllo della conformità.
OperationName DscResourceStatusData.
ResultType Indica se la risorsa è conforme.
NodeName_s Nome del nodo gestito.
Categoria DscNodeStatus.
Risorsa Nome dell'account di Automazione di Azure.
Tenant_g GUID che identifica il tenant del chiamante.
NodeId_g GUID che identifica il nodo gestito.
DscReportId_g GUID che identifica il report.
DscResourceId_s Nome dell'istanza della risorsa DSC.
DscResourceName_s Nome della risorsa DSC.
DscResourceStatus_s Indica se la risorsa DSC è conforme.
DscModuleName_s Nome del modulo di PowerShell che include la risorsa DSC.
DscModuleVersion_s Versione del modulo di PowerShell che include la risorsa DSC.
DscConfigurationName_s Nome della configurazione applicata al nodo.
ErrorCode_s Codice errore in caso di esito negativo della risorsa.
ErrorMessage_s Messaggio di errore in caso di esito negativo della risorsa.
DscResourceDuration_d Durata, in secondi, dell'esecuzione della risorsa DSC.
SourceSystem Come i log di Monitoraggio di Azure hanno raccolto i dati. Il valore è sempre Azure per diagnostica di Azure.
ResourceId Identificatore dell'account di Automazione di Azure.
ResultDescription Descrizione per questa operazione.
SubscriptionId ID della sottoscrizione di Azure (GUID) per l'account di Automazione.
ResourceGroup Nome del gruppo di risorse per l'account di Automazione.
ResourceProvider MICROSOFT.AUTOMATION.
ResourceType AUTOMATIONACCOUNTS.
CorrelationId GUID che rappresenta l'ID di correlazione del report di conformità.

Passaggi successivi