Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure Log Analytics è una piattaforma di registrazione centralizzata che aggrega i log dalle app, dalle risorse di Azure, dalle macchine virtuali, dai contenitori e altro ancora. L'integrazione con Data API Builder (DAB) consente alle aziende di soddisfare i requisiti di conformità, governance e osservabilità. A differenza di Application Insights (incentrato su APM), Log Analytics offre un'aggregazione di log più ampia con il supporto KQL (Kusto Query Language).
Prerequisiti
- File di configurazione DAB esistente.
- Sottoscrizione di Azure con autorizzazioni per creare risorse di Log Analytics.
- Area di lavoro Log Analytics di Azure con:
- Tabella personalizzata (che termina con
_CL) - Regola di raccolta dati
- Un endpoint di raccolta dati (DCE)
- Tabella personalizzata (che termina con
- Identità gestita abilitata nell'host DAB (Servizio app di Azure, App per contenitori, macchina virtuale, ecc.).
- CLI generatore di API dati. Installare l'interfaccia della riga di comando
Configurare le risorse di Azure Log Analytics
Prima di configurare DAB, creare le risorse di Azure necessarie.
Creare un'area di lavoro Log Analytics
- Passare allearee di lavoro Log Analytics del> di Azure.
- Seleziona + Crea.
- Scegliere la sottoscrizione, il gruppo di risorse e l'area.
- Specificare un nome dell'area di lavoro.
- Selezionare Rivedi e crea>Crea.
Creazione di una tabella personalizzata
Le tabelle personalizzate per l'API di inserimento dei log devono terminare con _CL.
- Nell'area di lavoro Log Analytics passare a Tabelle.
- Selezionare + Crea>nuovo log personalizzato (basato su DCR).
- Immettere il nome della tabella , ad esempio
DabLogs_CL. - Definire lo schema con queste colonne:
-
Time(data e ora) -
LogLevel(stringa) -
Message(stringa) -
Component(stringa) -
Identifier(stringa)
-
- Fare clic su Crea.
Creare un endpoint di raccolta dati (DCE)
- Passare a Monitor>Endpoint di Raccolta Dati.
- Seleziona + Crea.
- Scegliere la sottoscrizione, il gruppo di risorse e l'area.
- Specificare un nome , ad esempio
my-dce. - Selezionare Rivedi e crea>Crea.
- Copiare l'URL dell'endpoint di inserimento dei log , ad esempio
https://my-dce.eastus-1.ingest.monitor.azure.com.
Creare una regola di raccolta dati
- Passare a Monitor>Regole di Raccolta Dati.
- Seleziona + Crea.
- Scegliere sottoscrizione, gruppo di risorse, area.
- Specificare un nome , ad esempio
my-dcr. - In Origini dati selezionare Log di testo personalizzati.
- Configurare:
- Endpoint raccolta dati: Selezionare il tuo DCE.
- Destinazione: Area di lavoro Log Analytics.
-
Tabella: tabella personalizzata (
DabLogs_CL).
- Selezionare Rivedi e crea>Crea.
- Copiare l'ID non modificabile (inizia con
dcr-).
Configurare l'autenticazione
DAB usa l'identità gestita di Azure per l'autenticazione in Log Analytics. Nessuna credenziale viene archiviata nella configurazione.
Abilitare l'identità gestita
az webapp identity assign \
--name my-app \
--resource-group my-rg
Assegnare autorizzazioni
Concedere il ruolo Monitoring Metrics Publisher alla tua identità gestita sul DCR.
# Get Managed Identity principal ID
PRINCIPAL_ID=$(az webapp identity show \
--name my-app \
--resource-group my-rg \
--query principalId -o tsv)
# Get DCR resource ID
DCR_ID=$(az monitor data-collection rule show \
--name my-dcr \
--resource-group my-rg \
--query id -o tsv)
# Assign role
az role assignment create \
--assignee $PRINCIPAL_ID \
--role "Monitoring Metrics Publisher" \
--scope $DCR_ID
Importante
Senza questa assegnazione di ruolo, DAB non può inviare log a Log Analytics anche con la configurazione corretta.
Configurare Log Analytics
Aggiungere una sezione azure-log-analytics sotto runtime.telemetry nel file di configurazione.
{
"runtime": {
"telemetry": {
"azure-log-analytics": {
"enabled": true,
"dab-identifier": "my-dab-instance",
"flush-interval-seconds": 10,
"auth": {
"custom-table-name": "DabLogs_CL",
"dcr-immutable-id": "dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"dce-endpoint": "https://my-dce.eastus-1.ingest.monitor.azure.com"
}
}
}
}
}
Proprietà di configurazione
| Proprietà | Description | Impostazione predefinita | Constraints |
|---|---|---|---|
enabled |
Abilitare o disabilitare l'integrazione di Log Analytics. | false |
Boolean |
dab-identifier |
Stringa univoca per identificare le voci di log da questa istanza DAB. | DabLogs |
Qualsiasi stringa |
flush-interval-seconds |
Con quale frequenza (in secondi) i log vengono scaricati in Log Analytics. | 5 |
Deve essere > 0 |
auth.custom-table-name |
Nome di tabella personalizzato nell'area di lavoro Log Analytics. | (obbligatorio) | Deve terminare con _CL |
auth.dcr-immutable-id |
ID non modificabile della regola di raccolta dati. | (obbligatorio) | Inizia con dcr- |
auth.dce-endpoint |
URL dell'endpoint di raccolta dati. | (obbligatorio) | HTTPS URL |
Command-line
Configurare Log Analytics tramite dab configure.
Abilitare Log Analytics
dab configure \
--runtime.telemetry.azure-log-analytics.enabled true
Impostare l'identificatore DAB
dab configure \
--runtime.telemetry.azure-log-analytics.dab-identifier my-dab-instance
Impostare l'intervallo di scaricamento
dab configure \
--runtime.telemetry.azure-log-analytics.flush-interval-seconds 10
Impostare il nome della tabella personalizzata
dab configure \
--runtime.telemetry.azure-log-analytics.auth.custom-table-name DabLogs_CL
Impostare l'ID non modificabile di DCR
dab configure \
--runtime.telemetry.azure-log-analytics.auth.dcr-immutable-id dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Impostare l'endpoint DCE
dab configure \
--runtime.telemetry.azure-log-analytics.auth.dce-endpoint https://my-dce.eastus-1.ingest.monitor.azure.com
Avvia DAB
Avviare DAB con il file di configurazione:
dab start
Controllare i log di avvio di DAB per:
Azure Log Analytics is enabled.
Come funziona
Quando Log Analytics è abilitato, DAB:
- Esegue l'autenticazione in Azure usando l'identità gestita dell'host.
- Raggruppa le voci di log in base a
flush-interval-seconds. - Invia i log all'endpoint di raccolta dati (DCE).
- DCE instrada i log tramite la regola di raccolta dati (DCR) per la trasformazione.
- DCR inserisce i log nella tabella di Log Analytics personalizzata.
Flusso di dati
DAB Application
↓
ILogger (ASP.NET Core)
↓
Log Analytics Logger Provider
↓
Managed Identity Authentication
↓
Data Collection Endpoint (DCE)
↓
Data Collection Rule (DCR)
↓
Log Analytics Workspace (Custom Table)
Cosa viene acquisito
| Tipo di telemetria | Fonte | Esempi |
|---|---|---|
| Tracce |
ILogger chiamate in DAB |
Registri di avvio, registri di esecuzione di query, avvisi |
| Errors | Gestione delle eccezioni | Errori di runtime, errori di configurazione, errori del database |
| Informazioni sul componente | DAB internals | Quale modulo ha generato il log |
| ID dell'istanza | Configurazione |
dab-identifier valore per il filtro |
Struttura di log
Ogni voce di log inviata a Log Analytics contiene questi campi:
| Campo | TIPO | Description | Example |
|---|---|---|---|
Time |
datetime | Timestamp (ISO 8601) | 2026-01-27T14:30:00Z |
LogLevel |
corda | Gravità del registro |
Information, Warning, Error |
Message |
corda | Messaggio di log | Request completed successfully |
Component |
corda | Componente DAB che ha generato il log | Azure.DataApiBuilder.Service.Startup |
Identifier |
corda | Valore da dab-identifier config |
my-dab-instance |
Annotazioni
Colonne di tabella personalizzate in Log Analytics con suffissi: _s per le stringhe, _d per i numeri double, _t per le date e così via.
Eseguire query sui log in Log Analytics
Aprire l'area di lavoro Log Analytics nel portale di Azure.
Passare a Log ed eseguire una query KQL:
DabLogs_CL | where Identifier_s == "my-dab-instance" | where LogLevel_s in ("Warning", "Error") | where TimeGenerated > ago(1h) | project TimeGenerated, LogLevel_s, Message_s, Component_s | order by TimeGenerated desc
Interrogazioni di esempio
Conteggio dei log per livello:
DabLogs_CL
| where TimeGenerated > ago(24h)
| summarize Count=count() by LogLevel_s
Trovare errori in un componente specifico:
DabLogs_CL
| where Component_s contains "SqlQueryExecutor"
| where LogLevel_s == "Error"
| project TimeGenerated, Message_s
Considerazioni sulle prestazioni e i costi
Comportamento di invio in batch
DaB batch registra i log e li invia ogni flush-interval-seconds:
- 5 secondi (impostazione predefinita): bilanciamento ottimale per la maggior parte degli scenari.
- 1-2 secondi: registrazione quasi in tempo reale (chiamate API più elevate, costi più elevati).
- 10-60 secondi: chiamate API ridotte ma log ritardati.
Ottimizzazione dei costi
I prezzi di Log Analytics si basano su:
- Inserimento dati: per GB inseriti.
- Conservazione dei dati: per GB al mese dopo il livello gratuito.
Ridurre i costi:
- Aumentare
flush-interval-secondsper raggruppare più log. - Usare filtri a livello di log per escludere i log dettagliati. Per altre informazioni, vedere Personalizzare il livello di dettaglio del log.
- Impostare la conservazione dei dati appropriata nell'area di lavoro Log Analytics.
Esempio: filtrare per ridurre il volume
{
"runtime": {
"telemetry": {
"log-level": {
"Default": "Warning",
"Microsoft": "Error"
},
"azure-log-analytics": {
"enabled": true,
"flush-interval-seconds": 30,
"auth": {
"custom-table-name": "DabLogs_CL",
"dcr-immutable-id": "dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"dce-endpoint": "https://my-dce.eastus-1.ingest.monitor.azure.com"
}
}
}
}
}
In questo modo vengono inviati solo i log degli avvisi e degli errori , riducendo significativamente il volume.
Conservazione dei dati
La conservazione dei dati di Log Analytics è configurabile per ogni area di lavoro:
| Tier | Conservazione predefinita | Conservazione massima |
|---|---|---|
| Livello gratuito | 7 giorni | 7 giorni |
| Pagamento in base al consumo | 30 giorni | 730 giorni (2 anni) |
Configurare la conservazione: l'area di lavoro Log Analytics → Utilizzo e i costi stimati → conservazione dei dati.
Suggerimento
Per i requisiti di conformità, considerare l'archiviazione dei log meno recenti in Archiviazione di Azure per la conservazione a lungo termine.
Risoluzione dei problemi
Log non visualizzati in Log Analytics
Sintomo: DAB viene avviato correttamente, ma non vengono visualizzati log nell'area di lavoro Log Analytics.
Possibili cause:
Configurazione incompleta: controllare i log di avvio di DAB per individuare errori come
Logs won't be sent to Azure Log Analytics because the Custom Table Name is not available in the config file.Verificare tutte le proprietà di autenticazione necessarie:custom-table-name,dcr-immutable-id,dce-endpoint.Identità gestita non assegnata: verificare che l'identità gestita sia abilitata con
az webapp identity show --name my-app --resource-group my-rg. Controllare l'assegnazione di ruolo conaz role assignment list --assignee <principal-id> --scope <dcr-id>.Endpoint DCE o ID DCR non corretto: verificare che il formato dell'endpoint DCE sia
https://<dce-name>.<region>-1.ingest.monitor.azure.com. Verificare che l'ID non modificabile di DCR inizi condcr-.Tabella personalizzata non esistente: le tabelle personalizzate devono terminare con
_CL. Lo schema della tabella deve corrispondere alla struttura del log.
Errore: L'intervallo di svuotamento deve essere positivo
Causa: flush-interval-seconds è impostato su 0 o un valore negativo.
Soluzione: impostare su flush-interval-seconds un numero intero positivo (minimo 1).
I log DAB mostrano "Azure Log Analytics è disabilitato"
Causa: enabled è o manca false dalla configurazione.
Soluzione: impostare enabled: true nella configurazione.
Log Analytics contro Application Insights
| Capability | Approfondimenti sulle Applicazioni | Log Analytics |
|---|---|---|
| Concentrazione (or Messa a fuoco) | Monitoraggio delle prestazioni dell'applicazione (APM) | Aggregazione centralizzata dei log |
| Linguaggio di query | KQL | KQL |
| Ambito | Applicazione singola | App, macchine virtuali, contenitori, risorse di Azure |
| Caso d'uso | Prestazioni, eccezioni, tracce | Conformità, governance, correlazione tra risorse |
| Authentication | stringa di connessione | Identità gestita (tramite DCR/DCE) |
Usare Application Insights quando sono necessarie funzionalità di APM come il rilevamento delle richieste, il mapping delle dipendenze e la profilatura delle prestazioni. Usare Log Analytics quando è necessaria la registrazione centralizzata tra più risorse con requisiti di conformità aziendali.