Monitorare e risolvere problemi relativi alla raccolta dati DCR in Monitoraggio di Azure
Questo articolo fornisce metriche e log dettagliati che è possibile usare per monitorare le prestazioni e risolvere eventuali problemi relativi alla raccolta dati in Monitoraggio di Azure. Questi dati di telemetria sono attualmente disponibili per gli scenari di raccolta dati definiti da regole di raccolta dati (DCR) ad esempio l'agente di Monitoraggio di Azure e l'API di inserimento di log.
Importante
Questo articolo si riferisce solo agli scenari di raccolta dati che usano DCR, incluse le seguenti:
- Log raccolti con l'agente di Monitoraggio di Azure (AMA)
- Log inseriti tramite l'API di inserimento log
- Log raccolti da altri metodi che usano una DCR di trasformazione dell'area di lavoro
Vedere la documentazione per altri scenari per informazioni su monitoraggio e risoluzione dei problemi che potrebbero essere disponibili.
Le funzionalità di diagnostica DCR includono metriche e log degli errori generati durante l'elaborazione dei log. Le metriche DCR forniscono informazioni sul volume di dati inseriti, sul numero e sulla natura di eventuali errori di elaborazione e statistiche correlate alla trasformazione dei dati. I log degli errori DCR vengono generati ogni volta che l'elaborazione dei dati non riesce e ogni volta che i dati non raggiungono la destinazione.
Log degli errori DCR
I log degli errori vengono generati quando i dati raggiungono la pipeline di inserimento di Monitoraggio di Azure ma non raggiungono la destinazione. Esempi di condizioni di errore includono:
- Errori di recapito dei log
- Errori di trasformazione in cui la struttura dei log rende la trasformazione KQL non valida
- Chiamate API di inserimento log:
- con qualsiasi risposta HTTP diversa da 200/202
- con payload contenente dati in formato non valido
- con payload oltre i limiti di inserimento
- limitazione a causa dell'eccedenza dei limiti delle chiamate API
Per evitare una registrazione eccessiva di errori persistenti correlati allo stesso flusso di dati, ogni ora alcuni errori verranno registrati solo un numero limitato di volte accompagnati da un messaggio di errore di riepilogo. L'errore viene quindi disattivato fino alla fine dell'ora. Il numero di volte in cui viene registrato un determinato errore può variare a seconda dell'area in cui viene distribuita la DCR.
Alcuni errori di inserimento dei log non verranno registrati perché non possono essere associati a una DCR. Potrebbero non essere registrati gli errori seguenti:
- Errori causati da un URI di chiamata in formato non valido (codice di risposta HTTP 404)
- Alcuni errori interni del server (codice di risposta HTTP 500)
Abilitare i log degli errori DCR
I log degli errori DCR vengono implementati come log delle risorse in Monitoraggio di Azure. Abilitare la raccolta di log creando un'impostazione di diagnostica per la DCR. Per ogni DCR è necessaria una propria impostazione di diagnostica. Per informazioni dettagliate, vedere Creare impostazioni di diagnostica in Monitoraggio di Azure. Selezionare la categoria Errori di log e Invia all'area di lavoro Log Analytics. È possibile selezionare la stessa area di lavoro usata dal Registro Azure Container oppure consolidare tutti i log degli errori in una singola area di lavoro.
Recuperare i log degli errori DCR
I log degli errori vengono scritti nella tabella DCRLogErrors nell'area di lavoro Log Analytics specificata nell'impostazione di diagnostica. Di seguito sono riportate le query di esempio che è possibile usare in Log Analytics per recuperare questi log.
Recuperare tutti i log degli errori per una DCR specifica
DCRLogErrors
| where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/microsoft.insights/datacollectionrules/my-dcr"
Recuperare tutti i log degli errori per un flusso di input specifico in una determinata DCR
DCRLogErrors
| where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/microsoft.insights/datacollectionrules/my-dcr"
| where InputStreamId == "Custom-MyTable_CL"
Metriche DCR
Le metriche DCR vengono raccolte automaticamente per tutti i DCR ed è possibile analizzarle usando Esplora metriche, ad esempio le metriche della piattaforma per altre risorse di Azure. Il flusso di input è incluso come una dimensione, quindi, se si dispone di una DCR con più flussi di input, è possibile analizzarli filtrandoli o suddividendoli. Alcune metriche includono altre dimensioni, come illustrato nella tabella seguente.
Metric | Dimensioni | Descrizione |
---|---|---|
Byte di inserimento log per minuto | Flusso di input | Numero totale di byte ricevuti al minuto. |
Registra le richieste di inserimento al minuto | Flusso di input Codice di risposta HTTP |
Numero di chiamate ricevute al minuto |
Righe di log eliminate al minuto | Flusso di input | Numero di righe di log eliminate al minuto durante l'elaborazione. Sono incluse le righe eliminate a causa di criteri di filtro nella trasformazione KQL e le righe eliminate a causa di errori. |
Registra righe ricevute al minuto | Flusso di input | Numero di righe di log ricevute per l'elaborazione al minuto. |
Durata trasformazione log al minuto | Flusso di input | Runtime medio di trasformazione KQL al minuto. Rappresenta l'efficienza del codice di trasformazione KQL. I flussi di dati con tempi di esecuzione della trasformazione più lunghi possono riscontrare ritardi nell'elaborazione dei dati e una maggiore latenza dei dati. |
Registra errori di trasformazione al minuto | Flusso di input Tipo di errore |
Numero di errori di elaborazione rilevati al minuto |
Risoluzione dei problemi comuni
Se mancano i dati previsti nell'area di lavoro Log Analytics, seguire questa procedura di base per risolvere il problema. Ciò presuppone che sia stata abilitata la registrazione DCR come descritto in precedenza.
- Controllare le metriche quali
Logs Ingestion Bytes per Min
eLogs Rows Received per Min
per assicurarsi che i dati raggiungano Monitoraggio di Azure. In caso contrario, controllare l'origine dati per assicurarsi che invii dati come previsto. - Verificare
Logs Rows Dropped per Min
per controllare se vengono eliminate righe. Ciò potrebbe non indicare un errore perché le righe potrebbero essere eliminate da una trasformazione. Se le righe eliminate sono le stesse diLogs Rows Dropped per Min
, nell'area di lavoro non verranno inseriti dati. EsaminareLogs Transformation Errors per Min
per verificare se sono presenti errori di trasformazione. - Controllare
Logs Transformation Errors per Min
per verificare se sono presenti errori dalle trasformazioni applicate ai dati in ingresso. Ciò potrebbe essere dovuto a modifiche apportate alla struttura dei dati o alla trasformazione stessa. - Controllare
DCRLogErrors
per verificare la presenza di eventuali errori di inserimento che potrebbero essere stati registrati. Questo può fornire dettagli aggiuntivi per identificare la causa radice del problema.
Monitoraggio dell'inserimento dei log
I segnali seguenti possono essere utili per monitorare l'integrità della raccolta di log con le DCR. Creare regole di avviso per identificare queste condizioni.
Segnale | Possibili cause e azioni |
---|---|
Nuove voci in DCRErrorLogs o cambiamento imprevisto in Log Transform Errors . |
- Problemi con la configurazione dell'API di inserimento log, ad esempio l'autenticazione, l'accesso alla DCR o a DCE, problemi di payload delle chiamate. - Modifiche nella struttura dei dati che causano errori di trasformazione KQL. - Modifiche alla configurazione della destinazione dati che causano errori di recapito dei dati. |
Cambiamento imprevisto in Logs Ingestion Bytes per Min |
- Modifiche alla configurazione dell'inserimento dei log nel client, incluse le impostazioni di Agente di Monitoraggio di Azure. - Modifiche nella struttura dei log inviati. |
Cambiamento imprevisto nel rapporto tra Logs Ingestion Bytes per Min e Logs Rows Received per Min |
- Modifiche nella struttura dei log inviati. Esaminare le modifiche per assicurarsi che i dati vengano elaborati correttamente con la trasformazione KQL. |
Cambiamento imprevisto in Logs Transformation Duration per Min |
- Modifiche nella struttura dei log che influiscono sull'efficienza dei criteri di filtro dei log impostati nella trasformazione KQL. Esaminare le modifiche per assicurarsi che i dati vengano elaborati correttamente con la trasformazione KQL. |
Logs Ingestion Requests per Min o Logs Ingestion Bytes per Min che si avvicinano ai limiti del servizio API di inserimento log. |
- Esaminare e ottimizzare la configurazione DCR per evitare la limitazione. |
Avvisi
Anziché risolvere i problemi in modo reattivo, creare regole di avviso per ricevere una notifica proattiva quando si verifica una potenziale condizione di errore. La tabella seguente fornisce esempi di regole di avviso che è possibile creare per monitorare l'inserimento dei log.
Condizione | Dettagli dell'avviso |
---|---|
Modifiche improvvise delle righe eliminate | Regola di avviso delle metriche che usa una soglia dinamica per Logs Rows Dropped per Min . |
Numero di chiamate API che si avvicinano ai limiti del servizio | Regola di avviso delle metriche che usa una soglia statica per Logs Ingestion Requests per Min . Impostare una soglia vicina a 12.000, ovvero il limite di servizio per le richieste massime al minuto per DCR. |
Log degli errori | Avviso di query di log con DCRLogErrors . Usare una misura di Righe di tabella e il Valore soglia pari a 1 per ricevere un avviso ogni volta che vengono registrati errori. |