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.
Per informazioni sull'uso di queste query nel portale di Azure, vedere Guida di Log Analytics. Per l'API REST, vedere Query.
Visualizzazione dei codici di risposta degli errori
Classificare i messaggi di log in base ai codici di risposta HTTP, escludere i log senza un codice di risposta e riepilogare il conteggio di ogni codice di risposta in base a una granularità temporale specificata. Esegue quindi il rendering di un grafico a colonne per la visualizzazione.
OEPDataplaneLogs
// Categorize messages based on HTTP response codes
| extend ResponseCode = case(
Message has_any ("Status=500", "Internal Server Error"), "500",
Message has_any ("Status=401", "Unauthorized"), "401",
Message has_any ("Status=403", "Forbidden"), "403",
Message has_any ("Status=429", "RequestBodyTooLarge"), "429",
""
)
// Filter out logs without a response code
| where ResponseCode != ""
// Summarize the count of each response code over a specified time range
| summarize Count = count() by bin(TimeGenerated, 5m), ResponseCode
// Render a column chart for visualization
| render columnchart
Analisi dell'attività utente nei log di archiviazione
Estrarre i valori UserId, filtrare i log in modo da includere solo quelli con userId e appartenenti alla categoria StorageLogs e verifica la presenza di metodi HTTP specifici. Riepiloga quindi il numero di log per utente a intervalli giornalieri ed esegue il rendering di un grafico a torta per la visualizzazione.
OEPDataplaneLogs
// Extract UserId from the Message field using a regular expression
| extend UserId = extract(@"user-id=([a-zA-Z0-9_-@.]+)", 1, Message)
// Filter out logs without a UserId
| where UserId != ""
// Filter logs to include only those in the "StorageLogs" category
| where Category == "StorageLogs"
// Filter logs to include only those with specific HTTP methods
| where Message has_any (
"GET",
"POST",
"PUT",
"DELETE",
"PATCH",
"HEAD",
"OPTIONS"
)
// Summarize the count of logs per user over daily intervals
| summarize Count = count() by bin(TimeGenerated, 1d), UserId
// Render a pie chart for visualization
| render piechart
Categorizzazione dei log per servizio OSDU
Questa query KQL riepiloga il numero di log per categoria nelle ultime 24 ore e crea un grafico a torta per la visualizzazione.
OEPDataplaneLogs
// Summarize the count of logs by category over the last day
| summarize Count = count() by bin(TimeGenerated, 1d), Category
// Render a pie chart for visualization
| render piechart
Visualizzazione dell'attività utente
Estrarre i valori UserId, escludere i log senza UserId e riepilogare il numero di log per utente nelle ultime 24 ore. Genera un grafico a torta per visualizzare l'attività dell'utente.
OEPDataplaneLogs
// Extract UserId from the Message field using a regular expression
| extend UserId = extract(@"user-id=([a-zA-Z0-9_-@.]+)", 1, Message)
// Filter out logs without a UserId
| where UserId != ""
// Summarize the count of logs per user over the last day
| summarize Count = count() by bin(TimeGenerated, 1d), UserId
// Render a pie chart to visualize user activity
| render piechart
Visualizzazione dell'attività recente
Filtra i log negli ultimi 30 minuti, li classifica in base ai codici di risposta HTTP e conta il numero totale di log ed errori. Riepiloga quindi questi conteggi in intervalli di 15 secondi ed esegue il rendering di un diagramma temporale per l'analisi visiva.
OEPDataplaneLogs
// Filter logs to the last 30 minutes
| where TimeGenerated >= ago(30m)
// | extend UserId = extract(@"user-id=([a-zA-Z0-9_-@.]+)", 1, Message) // Uncomment if you want to only display user actions
// | where notempty(UserId) //// Uncomment if you want to only display user actions
// Categorize messages based on HTTP response codes
| extend ResponseCode = case(
Message has_any ("Status=500", "Internal Server Error"), "500",
Message has_any ("Status=401", "Unauthorized"), "401",
Message has_any ("Status=403", "Forbidden"), "403",
Message has_any ("Status=429", "RequestBodyTooLarge"), "429",
""
)
// Mark entries as errors if they match specific response codes
| extend ErrorCount = ResponseCode has_any ("500", "401", "403", "429")
// Summarize total logs and errors in 15-second intervals
| summarize Total = count(), Errors = count(ErrorCount) by bin(TimeGenerated, 15s)
// Render a timechart for visual analysis
| render timechart with (ysplit=axes)
Verifica della presenza dell'ID di correlazione
Assicura che ogni voce di log abbia un CorrelationId. Se CorrelationId manca, estrae il valore dal campo Messaggio usando un'espressione regolare.
OEPDataplaneLogs
// Ensure each log entry has a CorrelationId by using the existing one or extracting it from the Message field
| extend CorrelationId = iff(notempty(CorrelationId), CorrelationId, extract(@"correlation-id=([a-zA-Z0-9_-]+)", 1, Message))
Estrazione e categorizzazione dei codici di risposta HTTP
Classificare i messaggi di log in base ai codici di risposta HTTP. Estende i dati di log con una nuova colonna denominata ResponseCode e visualizza solo i campi pertinenti.
OEPDataplaneLogs
// Define ResponseCodes based on Message content and extends into a separate column.
| extend ResponseCode = case(
Message has_any ("Status=500", "Internal Server Error"), "500", // Internal Server Error
Message has_any ("Status=401", "Unauthorized"), "401", // Unauthorized Access
Message has_any ("Status=403", "Forbidden"), "403", // Forbidden Access
Message has_any ("Status=429", "RequestBodyTooLarge"), "429", // Request Body Too Large
Message has_any ("Status=200", "200 OK"), "200", // Successful Request
Message has "Status=201", "201", // Resource Created
"" // Default case if no match
)
//
// Displays only relevant columns
//
| project TimeGenerated, Category, Message, LogLevel, CorrelationId, ResponseCode