eventstats
Описание
Выполняет статистические операции над данными. Сохраняет результаты в новом поле каждого события.
В отличие от stats, команда не уменьшает количество строк в результате - все исходные события сохраняются, а агрегированное значение добавляется к каждому из них как новое поле.
Синтаксис
eventstats <functions-expression> ["," <functions-expression>] [<by_expression>]
Аргументы
Подробное описание см. в команде stats.
Примеры запросов
В следующих примерах используется индекс auth_sessions:
| @timestamp | user | host | action | bytes |
|---|---|---|---|---|
| 2026-06-24T08:00:00Z | admin | dc-01 | logged-in | 1500 |
| 2026-06-24T08:15:00Z | admin | dc-01 | file-access | 3200 |
| 2026-06-24T08:30:00Z | admin | srv-01 | logged-in | 800 |
| 2026-06-24T09:00:00Z | john.doe | workstation-01 | logged-in | 1200 |
| 2026-06-24T09:10:00Z | john.doe | workstation-01 | file-access | 4500 |
| 2026-06-24T09:20:00Z | john.doe | workstation-02 | logged-in | 950 |
| 2026-06-24T10:00:00Z | guest | kiosk-01 | logged-in | 300 |
Пример 1
В данном примере eventstats добавляет к каждому событию количество сессий пользователя. Все 7 исходных событий сохраняются - в отличие от stats, строки не схлопываются.
source auth_sessions
| eventstats count by user
| @timestamp | user | host | action | bytes | count |
|---|---|---|---|---|---|
| 2026-06-24T08:00:00Z | admin | dc-01 | logged-in | 1500 | 3 |
| 2026-06-24T08:15:00Z | admin | dc-01 | file-access | 3200 | 3 |
| 2026-06-24T08:30:00Z | admin | srv-01 | logged-in | 800 | 3 |
| 2026-06-24T09:00:00Z | john.doe | workstation-01 | logged-in | 1200 | 3 |
| 2026-06-24T09:10:00Z | john.doe | workstation-01 | file-access | 4500 | 3 |
| 2026-06-24T09:20:00Z | john.doe | workstation-02 | logged-in | 950 | 3 |
| 2026-06-24T10:00:00Z | guest | kiosk-01 | logged-in | 300 | 1 |
Пример 2
В данном примере сначала вычисляется средний трафик avg(bytes) по каждому пользователю, затем where оставляет только события, в которых трафик превышает среднее значение по группе. Это позволяет выявить аномально высокие сессии относительно поведения конкретного пользователя.
source auth_sessions
| eventstats avg(bytes) by user
| where bytes > 'avg(bytes)'
Среднее по admin - 1833.33, по john.doe - 2216.67. В результате остаются только события, где трафик превышает это значение:
| @timestamp | user | host | action | bytes | avg(bytes) |
|---|---|---|---|---|---|
| 2026-06-24T08:15:00Z | admin | dc-01 | file-access | 3200 | 1833.333333 |
| 2026-06-24T09:10:00Z | john.doe | workstation-01 | file-access | 4500 | 2216.666667 |
Пример 3
В данном примере eventstats собирает все уникальные хосты пользователя в multivalue-массив values(host). Поле добавляется к каждой строке, что позволяет видеть полный список хостов прямо в контексте каждого события.
source auth_sessions
| eventstats values(host) by user
| @timestamp | user | host | action | bytes | values(host) |
|---|---|---|---|---|---|
| 2026-06-24T08:00:00Z | admin | dc-01 | logged-in | 1500 | ["dc-01", "srv-01"] |
| 2026-06-24T08:15:00Z | admin | dc-01 | file-access | 3200 | ["dc-01", "srv-01"] |
| 2026-06-24T08:30:00Z | admin | srv-01 | logged-in | 800 | ["dc-01", "srv-01"] |
| 2026-06-24T09:00:00Z | john.doe | workstation-01 | logged-in | 1200 | ["workstation-01", "workstation-02"] |
| 2026-06-24T09:10:00Z | john.doe | workstation-01 | file-access | 4500 | ["workstation-01", "workstation-02"] |
| 2026-06-24T09:20:00Z | john.doe | workstation-02 | logged-in | 950 | ["workstation-01", "workstation-02"] |
| 2026-06-24T10:00:00Z | guest | kiosk-01 | logged-in | 300 | ["kiosk-01"] |