Zum Hauptinhalt wechseln

Empfehlungen zur Log Analytics-Abfragesprache für die Operatoren Summarize und Join

Veröffentlichungsdatum: 29 Mai, 2018

Dieses Update beschreibt Empfehlungen für die Abfragesprachensyntax in Azure Log Analytics und Application Insights für die Operatoren Summarize und Join. Bestehende Syntax wird weiterhin unterstützt, wir empfehlen jedoch dringend, Ihre Abfragesyntax in gespeicherten Suchen ggf. zu ändern, um mehrdeutige Ergebnisse zu vermeiden.

Wenn Sie zu diesen Empfehlungen Fragen haben, kontaktieren Sie uns.

Automatische Stundengruppierung im Summarize-Operator

Derzeit werden Daten, die nach datetime-Schlüssel aggregiert werden, automatisch in Stunden gruppiert. In diesem Beispiel wird die vom Summarize-Operator verwendete Gruppe TimeGenerated automatisch auf Stundengruppen gerundet:

SecurityEvent

| where TimeGenerated > ago(1d)

| where EventID == 4625

| summarize count() by TimeGenerated

Hier sind die Abfrageergebnisse:

TimeGenerated [UTC]

count_

2018-02-04T09:00:00.000

2018-02-04T10:00:00.000

2018-02-04T11:00:00.000

2018-02-04T12:00:00.000

2018-02-04T13:00:00.000

2018-02-04T14:00:00.000

2018-02-04T15:00:00.000

2018-02-04T16:00:00.000

2018-02-04T17:00:00.000

2018-02-04T18:00:00.000

1.205

1.268

1.234

1.173

1.007

1.042

1.041

1.049

1.090

1.113

 

Empfohlene Aktionen:

  • Wenn Sie die automatische Einteilung in Gruppen weder in gespeicherten Gruppen noch in Warnungen verwenden (z.B. bei Zusammenfassung nach TimeGenerated):
    • Es ist keine Aktion erforderlich.
  • Wenn Sie die Funktion zum automatischen Einteilen in Gruppen nicht beachten, geben Ihre Abfragen möglicherweise Ergebnisse mit einer nicht beabsichtigten Aggregation nach Stunden zurück:
    • Überprüfen Sie, ob Sie Daten nach dem datetime-Schlüssel aggregieren (z.B. durch Zusammenfassen nach TimeGenerated). Korrigieren Sie in diesem Fall die Abfragen so, dass eine ausdrückliche Gruppierung verwendet wird, z.B. durch Zusammenfassen nach bin(TimeGenerated, 1h).
  • Wenn Sie die Funktion zum automatischen Einteilen in Gruppen beachten und sich auf sie verlassen:
    • Korrigieren Sie die Abfragen so, dass eine ausdrückliche Gruppierung verwendet wird, z.B. durch Zusammenfassen nach bin(TimeGenerated, 1h).

Gleichheitsausdrücke im Join-Operator

Derzeit erlaubt die Sprachsyntax, mehrdeutige Gleichheitsausdrücke als Join-Attribute zu verwenden (z.B. key1 == key2), die zu unerwünschten Ergebnissen führen. Wir empfehlen, mehrdeutige Gleichheitsausdrücke zu ändern, um dieses Verhalten zu vermeiden.

Hier ist ein Beispiel für einen mehrdeutigen Join-Ausdruck (Summieren der täglichen Sitzungsdauer pro Computer):

SecurityEvent

| where EventID == 4624

| join kind= inner (

    SecurityEvent

    | where EventID == 4634

    ) on TargetLogonId == TargetLogonId

| extend Duration = LogoffTime - LogonTime

| summarize sum(Duration) by bin(LogonTime, 1d), Computer

 

Empfohlene Aktionen:

  • Wenn Sie Gleichheitsausdrücke in Join-Operatoren weder in gespeicherten Suchen noch in Warnungen verwenden:
    • Es ist keine Aktion erforderlich.
  • Wenn Sie Gleichheitsausdrücke in Join-Operatoren verwenden:
    • Korrigieren Sie die Syntax des Join-Operators.
    • Korrigieren Sie Ihre Abfragen. Die Spaltennamen sollten entsprechend der Besitzertabelle, die durch die Notationen $left und $right angegeben ist, qualifiziert sein. Beispiele:

| join … on $left.Col1 == $right.Col2

| join … on X (entspricht: | join … on $left.X == $right.X)

 

  • Log Analytics
  • Azure Monitor
  • Services

Verwandte Produkte