Condividi tramite


Risolvere i problemi relativi agli avvisi per la ricerca log in Monitoraggio di Azure

Questo articolo descrive come risolvere i problemi comuni relativi agli avvisi per la ricerca log in Monitoraggio di Azure. Fornisce anche soluzioni ai problemi comuni relativi alle funzionalità e alla configurazione degli avvisi del log.

È possibile usare gli avvisi del log per valutare i log delle risorse con una frequenza prestabilita utilizzando una query di Log Analytics e generare un avviso basato sui risultati. Le regole possono attivare una o più azioni usando i Gruppi di azioni. Per altre informazioni sulle funzionalità e sulla terminologia degli avvisi per la ricerca log, vedere Avvisi del log in Monitoraggio di Azure.

Nota

Questo articolo non illustra i casi in cui è stata attivata la regola di avviso, ma la notifica non è stata inviata nel portale di Azure. Vedere la risoluzione dei problemi relativa agli avvisi per casi come questi.

L'avviso per la ricerca log non è attivato quando dovrebbe

Se l'avviso per la ricerca log non è stato attivato quando dovrebbe essere presente, controllare gli elementi seguenti:

  1. La regola di avviso è in uno stato di integrità danneggiato o non disponibile?

    Visualizzare lo stato di integrità della regola di avviso per la ricerca log:

    1. Nel portale selezionare Monitoraggio, quindi Avvisi.

    2. Nella barra dei comandi superiore selezionare Regole di avviso. La pagina mostra tutte le regole di avviso in tutte le sottoscrizioni.

    3. Selezionare la regola di avviso di ricerca log da monitorare.

    4. Nel riquadro sinistro, in Guida selezionare Integrità risorse.

      Screenshot della sezione Integrità risorse in una regola di avviso di ricerca log.

    Per altre informazioni, vedere Monitorare l'integrità delle regole di avviso per la ricerca log.

  2. Controllare la latenza di inserimento dei log.

    Monitoraggio di Azure elabora terabyte dei log dei clienti da tutto il mondo, causando latenza di inserimento dei log.

    I log sono dati semistrutturati e sono intrinsecamente più latenti rispetto alle metriche. Se si verifica più di un ritardo di 4 minuti negli avvisi attivati, è consigliabile usare gli avvisi delle metriche. È possibile inviare dati all'archivio metriche dai log usando gli avvisi delle metriche per i log.

    Per ridurre la latenza, il sistema ritenta più volte la valutazione degli avvisi. Dopo l'arrivo dei dati, viene generato l'avviso, che nella maggior parte dei casi non è uguale al tempo di registrazione del log.

  3. Le azioni sono disattivate o la regola di avviso è configurata per la risoluzione automatica?

    Un problema comune è che si ritiene che l'avviso non sia stato attivato, ma la regola è stata configurata in modo che l'avviso non venga generato. Vedere le opzioni avanzate della regola di avviso per la ricerca log per verificare che non siano selezionate entrambe le opzioni seguenti:

    • La casella di controllo Disattiva azioni: consente di disattivare le azioni di avviso attivate per un determinato periodo di tempo.
    • Risolvi automaticamente avvisi: configura l'avviso in modo che si attivi solo una volta per ogni condizione soddisfatta.

    Elimina avvisi

  4. La risorsa della regola di avviso è stata spostata o eliminata?

    Se una risorsa di destinazione della regola di avviso viene spostata, viene rinominata o eliminata, tutte le regole di avviso del log che fanno riferimento a tale risorsa verranno interrotte. Per risolvere questo problema, le regole di avviso devono essere ricreate con una risorsa di destinazione valida per l'ambito.

  5. La regola di avviso utilizza un'identità gestita assegnata dal sistema?

    Quando si crea una regola di avviso del log con identità gestita assegnata dal sistema, l'identità viene creata senza autorizzazioni. Dopo aver creato la regola, è necessario assegnare i ruoli appropriati all'identità della regola, in modo che possa accedere ai dati di cui si vuole eseguire la query. Ad esempio, potrebbe essere necessario assegnargli un ruolo lettore per le aree di lavoro Log Analytics pertinenti oppure un ruolo Lettore e un ruolo Visualizzatore database per il cluster ADX pertinente. Per altre informazioni sull'uso delle identità gestite negli avvisi del log, vedere identità gestite.

  6. La query usata nella regola di avviso per la ricerca log è valida?

    Quando viene creata una regola di avviso del log, la query viene convalidata per la sintassi corretta. Tuttavia, a volte la query fornita nella regola di avviso del log può iniziare a dare esito negativo. Alcuni motivi comuni sono:

    • Le regole sono state create tramite l'API e l'utente ha ignorato la convalida.
    • La query viene eseguita su più risorse e una o più risorse sono state eliminate o spostate.
    • La query ha esito negativo perché:
      • I dati hanno smesso di passare a una tabella nella query per più di 30 giorni.
      • Le tabelle dei log personalizzate non sono state create perché il flusso di dati non è stato avviato.
    • Le modifiche apportate al linguaggio di query includono un formato modificato per i comandi e le funzioni, quindi la query fornita in precedenza non è più valida.

    Azure Integrità risorse monitora l'integrità delle risorse cloud, incluse le regole di avviso di ricerca log. Quando una regola di avviso di ricerca log è integra, la regola viene applicata e la query viene eseguita correttamente. È possibile usare l'integrità risorse per le regole di avviso per la ricerca log per informazioni sui problemi che interessano le regole di avviso per la ricerca log.

  7. La regola di avviso per la ricerca log è stata disabilitata?

    Se una query della regola di avviso per la ricerca log non riesce a valutare continuamente per una settimana, Monitoraggio di Azure la disabilita automaticamente.

È inoltre disponibile un esempio dell'evento del Log attività inviato quando una regola è disabilitata.

Esempio di Log attività quando la regola è disabilitata

{
    "caller": "Microsoft.Insights/ScheduledQueryRules",
    "channels": "Operation",
    "claims": {
        "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/spn": "Microsoft.Insights/ScheduledQueryRules"
    },
    "correlationId": "abcdefg-4d12-1234-4256-21233554aff",
    "description": "Alert: test-bad-alerts is disabled by the System due to : Alert has been failing consistently with the same exception for the past week",
    "eventDataId": "f123e07-bf45-1234-4565-123a123455b",
    "eventName": {
        "value": "",
        "localizedValue": ""
    },
    "category": {
        "value": "Administrative",
        "localizedValue": "Administrative"
    },
    "eventTimestamp": "2019-03-22T04:18:22.8569543Z",
    "id": "/SUBSCRIPTIONS/<subscriptionId>/RESOURCEGROUPS/<ResourceGroup>/PROVIDERS/MICROSOFT.INSIGHTS/SCHEDULEDQUERYRULES/TEST-BAD-ALERTS",
    "level": "Informational",
    "operationId": "",
    "operationName": {
        "value": "Microsoft.Insights/ScheduledQueryRules/disable/action",
        "localizedValue": "Microsoft.Insights/ScheduledQueryRules/disable/action"
    },
    "resourceGroupName": "<Resource Group>",
    "resourceProviderName": {
        "value": "MICROSOFT.INSIGHTS",
        "localizedValue": "Microsoft Insights"
    },
    "resourceType": {
        "value": "MICROSOFT.INSIGHTS/scheduledqueryrules",
        "localizedValue": "MICROSOFT.INSIGHTS/scheduledqueryrules"
    },
    "resourceId": "/SUBSCRIPTIONS/<subscriptionId>/RESOURCEGROUPS/<ResourceGroup>/PROVIDERS/MICROSOFT.INSIGHTS/SCHEDULEDQUERYRULES/TEST-BAD-ALERTS",
    "status": {
        "value": "Succeeded",
        "localizedValue": "Succeeded"
    },
    "subStatus": {
        "value": "",
        "localizedValue": ""
    },
    "submissionTimestamp": "2019-03-22T04:18:22.8569543Z",
    "subscriptionId": "<SubscriptionId>",
    "properties": {
        "resourceId": "/SUBSCRIPTIONS/<subscriptionId>/RESOURCEGROUPS/<ResourceGroup>/PROVIDERS/MICROSOFT.INSIGHTS/SCHEDULEDQUERYRULES/TEST-BAD-ALERTS",
        "subscriptionId": "<SubscriptionId>",
        "resourceGroup": "<ResourceGroup>",
        "eventDataId": "12e12345-12dd-1234-8e3e-12345b7a1234",
        "eventTimeStamp": "03/22/2019 04:18:22",
        "issueStartTime": "03/22/2019 04:18:22",
        "operationName": "Microsoft.Insights/ScheduledQueryRules/disable/action",
        "status": "Succeeded",
        "reason": "Alert has been failing consistently with the same exception for the past week"
    },
    "relatedEvents": []
}

Un avviso per la ricerca log viene attivato quando non dovrebbe

Una regola di avviso del log configurata in Monitoraggio di Azure potrebbe essere attivata in modo imprevisto. Le sezioni seguenti descrivono alcuni motivi comuni.

  1. L'avviso è stato attivato a causa di problemi di latenza?

    Monitoraggio di Azure elabora terabyte di log dei clienti a livello globale, il che può causare latenza di inserimento dei log. Sono disponibili funzionalità predefinite per evitare falsi avvisi, ma questi possono comunque verificarsi su dati molto latenti (oltre 30 minuti) e dati con picchi di latenza.

    I log sono dati semistrutturati e sono intrinsecamente più latenti rispetto alle metriche. Se si verificano molti errori negli avvisi attivati, è consigliabile usare gli avvisi delle metriche. È possibile inviare dati all'archivio metriche dai log usando gli avvisi delle metriche per i log.

    Gli avvisi per la ricerca log funzionano meglio quando si tenta di rilevare dati specifici all'interno dei log. Sono meno efficaci quando si tenta di rilevare la mancanza di dati nei log, ad esempio gli avvisi sull'heartbeat della macchina virtuale.

Messaggi di errore durante la configurazione delle regole di avviso per la ricerca log

Vedere le sezioni seguenti per messaggi di errore specifici e relative risoluzioni.

Impossibile convalidare la query perché è necessaria l'autorizzazione per i log

Se viene visualizzato questo messaggio di errore durante la creazione o la modifica della query della regola di avviso, assicurarsi di disporre delle autorizzazioni per leggere i log delle risorse di destinazione.

  • Autorizzazioni necessarie per leggere i log in modalità di accesso al contesto dell'area di lavoro: Microsoft.OperationalInsights/workspaces/query/read.
  • Autorizzazioni necessarie per leggere i log in modalità di accesso al contesto delle risorse (inclusa la risorsa Application Insights basata sull'area di lavoro): Microsoft.Insights/logs/tableName/read.

Per altre informazioni sulle autorizzazioni, vedere Gestire l'accesso alle aree di lavoro Log Analytics.

La frequenza di un minuto non è supportata per questa query

Esistono alcune limitazioni all'uso di una frequenza delle regole di avviso di un minuto. Quando si imposta la frequenza della regola di avviso su un minuto, viene eseguita una manipolazione interna per ottimizzare la query. Questa manipolazione può causare l'esito negativo della query se contiene operazioni non supportate.

Per un elenco di scenari non supportati, vedere questa nota.

Impossibile risolvere l'espressione scalare denominata <>

Questo messaggio di errore può essere restituito durante la creazione o la modifica della query della regola di avviso se:

  • Si sta facendo riferimento a una colonna che non esiste nello schema della tabella.
  • Si fa riferimento a una colonna che non è stata usata in una clausola di progetto precedente della query.

Per attenuare questo problema, è possibile aggiungere la colonna alla clausola di progetto precedente o usare l'operatore columnifexists.

L'API ScheduledQueryRules non è supportata per gli avvisi OMS di sola lettura

Questo messaggio di errore viene restituito quando si tenta di aggiornare o eliminare le regole create con la versione dell'API legacy mediante il portale di Azure.

  1. Modificare o eliminare la regola a livello di codice usando l'API REST di Log Analytics.
  2. Consigliato: aggiornare le regole di avviso per l'uso dell'API Regole di query pianificate (l'API legacy è in fase di deprecazione).

È stato raggiunto il limite del servizio regole di avviso

Per informazioni dettagliate sul numero di regole di avviso per la ricerca log per sottoscrizione e sui limiti massimi delle risorse, vedere Limiti del servizio Monitoraggio di Azure. Vedere Controllare il numero totale di regole di avviso del log in uso per verificare il numero di regole di avviso delle metriche attualmente in uso. Se è stato raggiunto il limite di quota, la procedura seguente potrebbe aiutare a risolvere il problema.

  1. Provare a eliminare o a disabilitare le regole di avviso della ricerca log che non sono più in uso.

  2. Usare la suddivisione per dimensioni per ridurre il numero di regole. Quando si usa la suddivisione per dimensioni, una regola può monitorare molte risorse.

  3. Se è necessario aumentare il limite di quota, continuare ad aprire una richiesta di supporto e fornire le informazioni seguenti:

    • ID sottoscrizione e ID risorsa per cui devono essere aumentati i limiti di quota
    • Motivo dell'aumento della quota
    • Limite di quota richiesto

Filtro temporale incompleto nelle query ARG e ADX

Quando si usano query di Azure Esplora dati (ADX) o Azure Resource Graph (ARG) negli avvisi di ricerca log, è possibile che si verifichi un problema per cui l'impostazione "Granularità aggregazione" non applica un filtro temporale alle query. Ciò può causare risultati imprevisti e potenziali problemi di prestazioni, perché la query restituisce tutti i 30 giorni, anziché l'intervallo di tempo previsto.

Per risolvere questo problema, è necessario applicare in modo esplicito i filtri temporali nelle query ARG e ADX. Ecco i passaggi per assicurarsi:

  1. Filtro orario corretto: identificare l'intervallo di tempo: determinare l'intervallo di tempo specifico di cui eseguire la query. Ad esempio, se si desidera eseguire query sui dati delle ultime 24 ore, è necessario specificare questo intervallo di tempo nella query.

  2. Modificare la query: aggiungere un filtro temporale alla query ARG o ADX per limitare i dati restituiti all'intervallo di tempo desiderato. Di seguito è riportato un esempio di come modificare la query:

    // Original query without time filter
    resources
    | where type == "microsoft.compute/virtualmachines"

    // Modified query with time filter
    resources
    | where type == "microsoft.compute/virtualmachines"
    | where timestamp >= ago(24h)
  1. Testare la query: eseguire la query modificata per assicurarsi che restituisca i risultati previsti entro l'intervallo di tempo specificato.
  2. Aggiorna avvisi: aggiornare gli avvisi di ricerca log per usare la query modificata con il filtro temporale esplicito. In questo modo si garantisce che gli avvisi siano basati sui dati corretti e non includano dati cronologici non necessari. Applicando filtri temporali espliciti nelle query ARG e ADX, è possibile evitare il problema di recuperare dati eccessivi e assicurarsi che gli avvisi di ricerca log siano accurati ed efficienti.

Passaggi successivi