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.