Creare, visualizzare e gestire gli avvisi del log tramite Monitoraggio di Azure

Panoramica

Gli avvisi di log consentono agli utenti di usare una query di Log Analytics per valutare i log delle risorse a ogni frequenza impostata e generano un avviso in base ai risultati. Le regole possono attivare una o più azioni usando i gruppi di azioni. Altre informazioni sulle funzionalità e sulla terminologia degli avvisi di log.

Questo articolo illustra come creare e gestire gli avvisi di log usando Monitoraggio di Azure. Le regole di avviso sono definite da tre componenti:

  • Destinazione: una risorsa di Azure specifica da monitorare.
  • Criteri: logica da valutare. Se soddisfatto, l'avviso viene attivato.
  • Azione: Notifiche o automazione: posta elettronica, SMS, webhook e così via.

È anche possibile creare regole di avviso del log usando Azure Resource Manager modelli, descritti in un articolo separato.

Nota

I dati di log da un'area di lavoro Log Analytics possono essere inviati all'Monitoraggio di Azure delle metriche. Gli avvisi delle metriche hanno un comportamentodiverso, che può essere più opportuno a seconda dei dati in uso. Per informazioni su cosa e come è possibile instradare i log alle metriche, vedere Avviso metrica per i log.

Creare una regola per gli avvisi relativi ai log con il portale di Azure

Ecco i passaggi per iniziare a scrivere query per gli avvisi:

  1. Passare alla risorsa per cui si vuole creare un avviso. È consigliabile impostare regole di avviso su più risorse selezionando un ambito di sottoscrizione o di gruppo di risorse quando possibile. L'avviso su più risorse riduce i costi e la necessità di gestire più regole di avviso.

  2. In Monitoraggio selezionare Log.

  3. Eseguire una query sui dati del log che possono indicare il problema. È possibile usare l'argomento degli esempi di query di avviso per comprendere cosa è possibile individuare o iniziare a scrivere la propria query. È anche possibile trovare informazioni su come creare query di avviso ottimizzate.

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

    Log Analytics - Imposta avviso

Nota

È consigliabile creare avvisi su larga scala quando si usa la modalità di accesso alle risorse per i log, che viene eseguita su più risorse usando un gruppo di risorse o un ambito della sottoscrizione. L'avviso su larga scala riduce il sovraccarico di gestione delle regole. Per essere in grado di specificare come destinazione le risorse, includere la colonna id risorsa nei risultati. Altre informazioni sulla suddivisione degli avvisi in base alle dimensioni.

Avviso del log per Log Analytics e Application Insights

  1. Se la sintassi della query è corretta, i dati cronologici per la query vengono visualizzati come grafico con l'opzione per modificare il periodo del grafico dalle ultime sei ore all'ultima settimana.

    Se i risultati della query contengono dati riepilogati o colonne specifiche del progetto senza colonna temporale, nel grafico viene visualizzato un singolo valore.

    Configurare una regola di avviso

  2. Scegliere l'intervallo di tempo in cui valutare la condizione specificata usando l'opzione Periodo.

  3. Gli avvisi del log possono essere basati su due tipi di misure:

    1. Numero di risultati: numero di record restituiti dalla query.
    2. Misurazione della metrica - Valore di aggregazione calcolato usando summarize raggruppato per espressioni scelte e selezione bin(). Ad esempio:
    // Reported errors
    union Event, Syslog // Event table stores Windows event records, Syslog stores Linux records
    | where EventLevelName == "Error" // EventLevelName is used in the Event (Windows) records
    or SeverityLevel== "err" // SeverityLevel is used in Syslog (Linux) records
    | summarize AggregatedValue = count() by Computer, bin(TimeGenerated, 15m)
    
  4. Per la logica di avviso delle misurazioni delle metriche, è possibile specificare facoltativamente come suddividere gli avvisi per dimensioni usando l'opzione Aggrega in. L'espressione di raggruppamento delle righe deve essere univoca e ordinata.

    Nota

    Poiché bin() può generare intervalli di tempo non uniforme, il servizio avvisi convertirà automaticamente la funzione bin() in una funzione bin_at() con l'ora appropriata in fase di esecuzione, per garantire risultati con un punto fisso.

    Nota

    La suddivisione in base alle dimensioni degli avvisi è disponibile solo per l'API scheduledQueryRules corrente. Se si usa l'API legacy degli avvisi di Log Analytics,è necessario passare a un'opzione. Altre informazioni sul passaggio a. L'avviso incentrato sulle risorse su larga scala è supportato solo nella versione dell'API 2020-05-01-preview e versioni successive.

    opzione aggrega in base a

  5. Successivamente, in base al set di dati di anteprima, operatore, valore sogliae frequenza.

  6. Facoltativamente, è anche possibile impostare il numero di violazioni per attivare un avviso usando Totale o Violazioni consecutive.

  7. Selezionare Fine.

  8. Definire il nome della regola di avviso, la descrizione e selezionare la gravità dell'avviso. Questi dettagli vengono usati in tutte le azioni di avviso. Inoltre, è possibile scegliere di non attivare la regola di avviso al momento della creazione selezionando Abilita regola al momento della creazione.

  9. Scegliere se eliminare le azioni delle regole per un periodo di tempo dopo l'avviso, usare l'opzione Elimina avvisi. La regola verrà comunque eseguita e creerà avvisi, ma le azioni non verranno attivate per evitare rumore. Per essere efficace, il valore delle azioni mute deve essere maggiore della frequenza di avviso.

    Elimina avvisi per gli avvisi del log

  10. Specificare se la regola di avviso deve attivare uno o più gruppi di azioni quando viene soddisfatta la condizione di avviso.

    Nota

    Fare riferimento ai limiti del servizio sottoscrizione di Azure per i limiti relativi alle azioni che è possibile eseguire.

  11. Facoltativamente, è possibile personalizzare le azioni nelle regole di avviso del log:

    • Oggetto del messaggio di posta elettronica personalizzato: esegue l'override dell'oggetto di posta elettronica delle azioni di posta elettronica. Non è possibile modificare il corpo del messaggio e questo campo non è per gli indirizzi di posta elettronica.
    • Includi payload Json personalizzato: esegue l'override del file JSON del webhook usato dai gruppi di azioni presupponendo che il gruppo di azioni contenga un'azione webhook. Altre informazioni sull'azione del webhook per gli avvisi del log.

    Override dell'azione per gli avvisi del log

  12. Se tutti i campi sono impostati correttamente, è possibile fare clic sul pulsante Crea regola di avviso e viene creato un avviso.

    Dopo pochi minuti l'avviso è funzionante e si attiva come descritto in precedenza.

    Creazione di regole

Creazione di un avviso di log per Log Analytics e Application Insights dalla gestione degli avvisi

Nota

La creazione dalla gestione degli avvisi non è attualmente supportata per i log incentrati sulle risorse

  1. Nel portale selezionareMonitoraggio e quindi scegliere Avvisi.

    Monitoraggio

  2. Selezionare Nuova regola di avviso.

    Aggiungi avviso

  3. Verrà visualizzato il riquadro Crea avviso. È in quattro parti:

    • Risorsa a cui si applica l'avviso.
    • Condizione da controllare.
    • Azioni da eseguire se la condizione è true.
    • Dettagli per assegnare un nome e una descrizione all'avviso.

    Creare una regola

  4. Fare clic sul pulsante Seleziona risorsa. Filtrare scegliendo Sottoscrizione, Tipo di risorsa e selezionare una risorsa. Verificare che la risorsa abbia i log disponibili.

    Selezionare una risorsa

  5. Usare quindi il pulsante Aggiungi condizione per visualizzare l'elenco delle opzioni di segnale disponibili per la risorsa. Selezionare l'opzione Ricerca log personalizzata.

    Selezionare una risorsa - ricerca log personalizzata

    Nota

    Il portale degli avvisi elenca le query salvate da Log Analytics e Application Insights e possono essere usate come query di avviso del modello.

  6. Dopo aver selezionato, scrivere, incollare o modificare la query di avviso nel campo Query di ricerca.

  7. Continuare con i passaggi successivi descritti nell'ultima sezione.

Avviso di log per tutti gli altri tipi di risorse

Nota

Attualmente non sono presenti addebiti aggiuntivi per la versione dell'API 2020-05-01-preview e gli avvisi di log incentrati sulle risorse. I prezzi per le funzionalità in anteprima verranno annunciati in futuro e verrà fornita una notifica prima dell'inizio della fatturazione. Se si sceglie di continuare a usare la nuova versione dell'API e gli avvisi di log incentrati sulle risorse dopo il periodo di preavviso, verrà addebitata la tariffa applicabile.

  1. Iniziare dalla scheda Condizione:

    1. Verificare che i valori di Measure, Aggregation typee Aggregation granularity siano corretti.

      1. Per impostazione predefinita, la regola conta il numero di risultati negli ultimi 5 minuti.
      2. Se si rilevano risultati di query riepilogati, la regola verrà aggiornata automaticamente entro pochi secondi per acquisire tale risultato.
    2. Scegliere la suddivisione degli avvisi in base alle dimensioni,se necessario:

      • La colonna ID risorsa viene selezionata automaticamente, se rilevata, e modifica il contesto dell'avviso attivato nella risorsa del record.
      • La colonna ID risorsa può essere de-selezionata per gli avvisi relativi alla sottoscrizione o ai gruppi di risorse. La deselezione è utile quando i risultati della query sono basati su più risorse. Ad esempio, una query che controlla se l'80% delle macchine virtuali del gruppo di risorse riscontra un utilizzo elevato della CPU.
      • È anche possibile selezionare fino a sei suddivisioni aggiuntive per qualsiasi tipo di colonne di tipo numero o testo usando la tabella delle dimensioni.
      • Gli avvisi vengono generati separatamente in base alla suddivisione in base a combinazioni univoche e il payload degli avvisi include queste informazioni.

      Selezionare i parametri di aggregazione e la suddivisione

    3. Il grafico di anteprima mostra i risultati delle valutazioni delle query nel tempo. È possibile modificare il periodo del grafico o selezionare serie temporiali diverse risultanti dalla suddivisione univoca degli avvisi in base alle dimensioni.

      Grafico di anteprima

    4. Successivamente, in base ai dati di anteprima, impostare la logica di avviso. Operatore, Valore sogliae Frequenza.

      Grafico di anteprima con soglia e logica di avviso

    5. Facoltativamente, è possibile impostare Numero di violazioni per attivare l'avviso nella sezione Opzioni avanzate.

      Advanced Options

  2. Nella scheda Azioni selezionare o creare i gruppi di azioni necessari.

    Scheda Azioni

  3. Nella scheda Dettagli definire i dettagli della regola di avviso e Dettagli progetto. Facoltativamente, è possibile impostare se non avviare l'esecuzione ora o disattivare le azioni per un periodo dopo l'attivazione della regola di avviso.

    Nota

    Le regole di avviso del log sono attualmente senza stato e generano un'azione ogni volta che viene creato un avviso, a meno che non venga definita la modifica.

    Scheda Dettagli

  4. Nella scheda Tag impostare i tag necessari nella risorsa della regola di avviso.

    Scheda Tag

  5. Nella scheda Rivedi e crea verrà eseguita una convalida che informa di eventuali problemi. Esaminare e approvare la definizione della regola.

  6. Se tutti i campi sono corretti, selezionare il pulsante Crea e completare la creazione della regola di avviso. Tutti gli avvisi possono essere visualizzati dalla gestione degli avvisi.

    Scheda Rivedi e crea

Visualizzare e gestire gli avvisi del log nel portale di Azure

  1. Nel portale selezionarela risorsa pertinente o il servizio Monitoraggio. Selezionare quindi Avvisi nella sezione Monitoraggio.

  2. La gestione degli avvisi visualizza tutti gli avvisi generati. Altre informazioni sulla gestione degli avvisi.

    Nota

    Le regole di avviso del log sono attualmente senza stato e non risolvono.

  3. Selezionare il pulsante Gestisci regole di avviso nella barra superiore per modificare le regole:

     gestione delle regole di avviso

Gestione degli avvisi di log con PowerShell

Nota

Questo articolo è stato aggiornato per usare il modulo Az di Azure PowerShell. Il modulo Az di PowerShell è ora il modulo di PowerShell consigliato per l'interazione con Azure. Per iniziare a usare il modulo Az PowerShell, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Nota

PowerShell non è attualmente supportato nella versione dell'API 2020-05-01-preview

I cmdlet di PowerShell elencati di seguito sono disponibili per gestire le regole con l'API Regole di query pianificate.

Nota

I cmdlet di PowerShell ScheduledQueryRules possono gestire solo le regole create nell'API Regole di query pianificate corrente. Le regole di avviso del log create usando l'API di avviso di Log Analytics legacy possono essere gestite solo tramite PowerShell dopo il passaggio all'API Regole di query pianificate.

Ecco alcuni passaggi di esempio per la creazione di una regola di avviso del log con PowerShell:

$source = New-AzScheduledQueryRuleSource -Query 'Heartbeat | summarize AggregatedValue = count() by bin(TimeGenerated, 5m), _ResourceId' -DataSourceId "/subscriptions/a123d7efg-123c-1234-5678-a12bc3defgh4/resourceGroups/contosoRG/providers/microsoft.OperationalInsights/workspaces/servicews"

$schedule = New-AzScheduledQueryRuleSchedule -FrequencyInMinutes 15 -TimeWindowInMinutes 30

$metricTrigger = New-AzScheduledQueryRuleLogMetricTrigger -ThresholdOperator "GreaterThan" -Threshold 2 -MetricTriggerType "Consecutive" -MetricColumn "_ResourceId"

$triggerCondition = New-AzScheduledQueryRuleTriggerCondition -ThresholdOperator "LessThan" -Threshold 5 -MetricTrigger $metricTrigger

$aznsActionGroup = New-AzScheduledQueryRuleAznsActionGroup -ActionGroup "/subscriptions/a123d7efg-123c-1234-5678-a12bc3defgh4/resourceGroups/contosoRG/providers/microsoft.insights/actiongroups/sampleAG" -EmailSubject "Custom email subject" -CustomWebhookPayload "{ `"alert`":`"#alertrulename`", `"IncludeSearchResults`":true }"

$alertingAction = New-AzScheduledQueryRuleAlertingAction -AznsAction $aznsActionGroup -Severity "3" -Trigger $triggerCondition

New-AzScheduledQueryRule -ResourceGroupName "contosoRG" -Location "Region Name for your Application Insights App or Log Analytics Workspace" -Action $alertingAction -Enabled $true -Description "Alert description" -Schedule $schedule -Source $source -Name "Alert Name"

Ecco alcuni passaggi di esempio per la creazione di una regola di avviso del log usando PowerShell con query tra risorse:

$authorized = @ ("/subscriptions/a123d7efg-123c-1234-5678-a12bc3defgh4/resourceGroups/contosoRG/providers/microsoft.OperationalInsights/workspaces/servicewsCrossExample", "/subscriptions/a123d7efg-123c-1234-5678-a12bc3defgh4/resourceGroups/contosoRG/providers/microsoft.insights/components/serviceAppInsights")

$source = New-AzScheduledQueryRuleSource -Query 'Heartbeat | summarize AggregatedValue = count() by bin(TimeGenerated, 5m), _ResourceId' -DataSourceId "/subscriptions/a123d7efg-123c-1234-5678-a12bc3defgh4/resourceGroups/contosoRG/providers/microsoft.OperationalInsights/workspaces/servicews" -AuthorizedResource $authorized

$schedule = New-AzScheduledQueryRuleSchedule -FrequencyInMinutes 15 -TimeWindowInMinutes 30

$metricTrigger = New-AzScheduledQueryRuleLogMetricTrigger -ThresholdOperator "GreaterThan" -Threshold 2 -MetricTriggerType "Consecutive" -MetricColumn "_ResourceId"

$triggerCondition = New-AzScheduledQueryRuleTriggerCondition -ThresholdOperator "LessThan" -Threshold 5 -MetricTrigger $metricTrigger

$aznsActionGroup = New-AzScheduledQueryRuleAznsActionGroup -ActionGroup "/subscriptions/a123d7efg-123c-1234-5678-a12bc3defgh4/resourceGroups/contosoRG/providers/microsoft.insights/actiongroups/sampleAG" -EmailSubject "Custom email subject" -CustomWebhookPayload "{ `"alert`":`"#alertrulename`", `"IncludeSearchResults`":true }"

$alertingAction = New-AzScheduledQueryRuleAlertingAction -AznsAction $aznsActionGroup -Severity "3" -Trigger $triggerCondition
New-AzScheduledQueryRule -ResourceGroupName "contosoRG" -Location "Region Name for your Application Insights App or Log Analytics Workspace" -Action $alertingAction -Enabled $true -Description "Alert description" -Schedule $schedule -Source $source -Name "Alert Name" 

È anche possibile creare l'avviso di log usando un modello e i file di parametri usando PowerShell:

Connect-AzAccount

Select-AzSubscription -SubscriptionName <yourSubscriptionName>

New-AzResourceGroupDeployment -Name AlertDeployment -ResourceGroupName ResourceGroupofTargetResource `
  -TemplateFile mylogalerttemplate.json -TemplateParameterFile mylogalerttemplate.parameters.json

Gestione degli avvisi di log tramite l'interfaccia della riga di comando

Nota

Il supporto dell'interfaccia della riga di comando di Azure è disponibile solo per la versione dell'API scheduledQueryRules 2020-05-01-preview e versioni successive. La versione pervious dell'API può usare l'interfaccia Azure Resource Manager comando con i modelli, come descritto di seguito. Se si usa l'API legacy degli avvisi di Log Analytics,è necessario passare all'uso dell'interfaccia della riga di comando. Altre informazioni sul passaggio a.

Nelle sezioni precedenti è stato descritto come creare, visualizzare e gestire le regole di avviso del log portale di Azure. Questa sezione descrive come eseguire la stessa operazione usando l'interfaccia della riga di comando di Azure multipiattaforma. Azure Cloud Shell è il metodo più rapido per iniziare a usare l'interfaccia della riga di comando di Azure. Per questo articolo si userà Cloud Shell.

  1. Passare a portale di Azure, selezionare Cloud Shell.

  2. Al prompt è possibile usare i comandi con l'opzione --help per altre informazioni sul comando e su come usarlo. Ad esempio, il comando seguente mostra l'elenco dei comandi disponibili per la creazione, la visualizzazione e la gestione degli avvisi del log:

    az monitor scheduled-query --help
    
  3. È possibile creare una regola di avviso del log che monitora il conteggio degli errori degli eventi di sistema:

    az monitor scheduled-query create -g {ResourceGroup} -n {nameofthealert} --scopes {vm_id} --condition "count \'union Event, Syslog | where TimeGenerated > ago(1h) | where EventLevelName == \"Error\" or SeverityLevel== \"err\"\' > 2" --description {descriptionofthealert}
    
  4. È possibile visualizzare tutti gli avvisi di log in un gruppo di risorse usando il comando seguente:

    az monitor scheduled-query list -g {ResourceGroup}
    
  5. È possibile visualizzare i dettagli di una determinata regola di avviso del log usando il nome o l'ID risorsa della regola:

    az monitor scheduled-query show -g {ResourceGroup} -n {AlertRuleName}
    
    az monitor scheduled-query show --ids {RuleResourceId}
    
  6. È possibile disabilitare una regola di avviso del log usando il comando seguente:

    az monitor scheduled-query update -g {ResourceGroup} -n {AlertRuleName} --enabled false
    
  7. È possibile eliminare una regola di avviso del log usando il comando seguente:

    az monitor scheduled-query delete -g {ResourceGroup} -n {AlertRuleName}
    

È anche possibile usare l'interfaccia Azure Resource Manager riga di comando con i file dei modelli:

az login

az deployment group create \
    --name AlertDeployment \
    --resource-group ResourceGroupofTargetResource \
    --template-file mylogalerttemplate.json \
    --parameters @mylogalerttemplate.parameters.json

In caso di esito positivo per la creazione, viene restituito 201. In caso di esito positivo per l'aggiornamento, viene restituito 200.

Passaggi successivi