GitHubContribute in GitHub: Online bearbeiten

Beispiel: Top 10 Datenquellen

In diesem Beispiel wird gezeigt, wie die 10 Datenquellen mit den meisten Ereignissen gesucht werden.

In der folgenden Abfrage werden die folgenden Spalten in der Ansicht Ereignisse verwendet. Weitere Informationen zu Ansichten finden Sie unter Domänenmodell .

Spalten Typ Beschreibung
Datenquellen-ID Zeichenfolge Die eindeutige ID, die jeder konfigurierten Datenquelle zugeordnet ist.
Originalzeit lang Die Zeit in Millisekunden, in der das Ereignis von der Berichtseinheit generiert wurde.

Abfrage

events_all
    | project
        event_uuid,
        data_source_id,
        original_time
    | where original_time > ago(24h) and isnotempty(data_source_id)
    | lookup datasources on $left.data_source_id == $right.data_source_id
    | summarize EventCount=count_distinct(event_uuid) by DataSourceName=data_source_name
    | order by EventCount desc
    | take 10

Die Ergebnisse

datasourceName EventCount
CheckPointSource1 102394
CheckPointSource2 101391
paloAltoPASeriesSource2 82714
paloAltoPASeriesSource7 81714
microsoftWindowsSource2 75766
microsoftWindowsSource1 73766
microsoftWindowsSource9 72170
microsoftWindowsSource301 21170
ciscoASASource2 20172
ciscoASASource18 19272

Abfrageerläuterung

Der Anfang der Abfrage ist ziemlich einfach. Wir projizieren die erforderlichen Spalten und führen beliebige Konvertierungen durch, um die Arbeit mit Spalten zu vereinfachen.

 | project event_uuid, low_level_categories, original_time

Stellen Sie als Nächstes sicher, dass die where -Klausel (en) genau das widerspiegelt, wonach Sie suchen, um unnötige Kosten zu vermeiden. In diesem Fall suchen wir in den letzten 24 Stunden nach Ereignissen und nach 'data_source_id', die nicht leer sind. isnotempty wird verwendet, um nach Nullen und leeren Zeichenfolgen zu suchen.

  | where original_time > ago(24h) and isnotempty(data_source_id)

In den Ergebnissen soll der Name der Datenquelle und nicht die ID angezeigt werden, die mit dem Ereignis selbst gespeichert wird. Dazu wird der Operator lookup verwendet, um den Datenquellennamen basierend auf der Datenquellen-IDabzurufen. Nachdem der Suchoperator aufgerufen wurde, wird data_source_name zusätzlich zu data_source_idzur Projektion hinzugefügt.

  | lookup datasources on $left.data_source_id == $right.data_source_id

Sobald der Name aufgelöst wurde, wird mithilfe von count_distinct () in der Spalte event_uuid zusammengefasst, sodass nur die Anzahl der Ereignisse anhand des aufgelösten Attributs data_source_namegezählt wird. Die resultierende Projektion aus summarize enthält nur DataSourceName und EventCount. Alle vorherigen Spalten werden vom Operator entfernt.

  | summarize EventCount=count_distinct(event_uuid) 
        by DataSourceName=data_source_name

Die verbleibende Abfrage ist einfach ein Aufruf an sort für die Spalte EventCount , gefolgt von take 10, was zu den obersten 10 Datenquellen führt.

  | sort by EventCount desc
  | take 10


Alternativer Ansatz

Eine alternative Methode zur Verwendung von 'summarize' ist die Verwendung von Top-Hitters. Mit diesem Operator führt er dieselbe Operation wie 'summarize' aus, ist jedoch in der Regel effizienter, da es sich um eine Näherung handelt. Unterschiede in der Top-Hitters -Implementierung finden Sie unter KQL-Kompatibilität .

Abfrage

    events_all
      | project
          event_uuid,
          data_source_id,
          original_time
      | where original_time > ago(24h) and isnotempty(data_source_id)
      | lookup datasources on $left.data_source_id == $right.data_source_id
      | top-hitters 10 of data_source_name
      | project DataSourceName=data_source_name, EventCount=approximate_count_data_source_name

Die Ergebnisse

Die Ergebnisse sind mit den Ergebnissen der Easlier-Abfrage mit Zusammenfassung identisch. Die Ereignisanzahl ( EventCount ) wird nach dem Wert für DataSourceNameaggregiert.

datasourceName EventCount
CheckPointSource1 102394
CheckPointSource2 101391
paloAltoPASeriesSource2 82714
paloAltoPASeriesSource7 81714
microsoftWindowsSource2 75766
microsoftWindowsSource1 73766
microsoftWindowsSource9 72170
microsoftWindowsSource301 21170
ciscoASASource2 20172
ciscoASASource18 19272

Der einzige signifikante Unterschied besteht darin, dass ein zusätzliches Projekt hinzugefügt wurde, um die Namen und die Reihenfolge der Spalten zu ändern. Standardmäßig generiert top-hitters eine Spalte mit dem Namen approximate_count_data_source_name , sodass sie einfach in EventCount umbenannt wird.