source
Описание
Позволяет получить данные из источников.
Синтаксис
source <source-name> [exclude] [source-options]
Обязательные аргументы
| Параметр | Синтаксис | Описание |
|---|---|---|
source-name | <string> | Индекс-паттерн внутреннего хранилища, источник Search Anywhere с префиксом (hdh:, clk: и другие) либо имя Единицы данных или Пространства поиска при включенной соответствующей настройке. Для источников Search Anywhere размер выборки (qsize) допускается после имени через :. |
Примеры:
source sysmon_operational-*
source hdh:win_events
source clk:nix_events:1000
Единицы данных и Пространства поиска
При включенной настройке sme.core.data_units.search_enabled источником может быть Единица данных или Пространство поиска:
source du:audit_events
source ss:security_events earliest="now-1d" latest="now"
Короткое имя разрешается в следующем порядке: Пространство поиска, Единица данных, индекс-паттерн. Явные префиксы du: и ss: задают тип источника; если имя с таким префиксом не найдено, команда возвращает ошибку. Имена чувствительны к регистру. Маска в source остается индекс-паттерном и не перечисляет Единицы данных. Чтобы перечислить Единицы, задайте маску в составе Пространства поиска.
Единицу или Пространство нельзя перечислять через запятую с другими источниками либо применять к ним exclude(...). Правила временного поля, объединения, прав и ограничений описаны в разделе Поиск по Единицам данных и Пространствам поиска.
Индексы и источники Search Anywhere можно перечислить через запятую. По умолчанию в результате будет объединение данных по алгоритму команды append. Для использования механизмов внутреннего хранилища для объединения результатов см. опциональный аргумент append.
Пример:
source cisco_asa-*, clk:nix_events:1000
Опциональные аргументы
exclude- опциональный параметр, принимающий источники/паттерны источников, которые будут исключены из поискаsource-options- опциональные параметры, задающие дополнительные настройки поиска
| Параметр | Синтаксис | По умолчанию | Описание |
|---|---|---|---|
qsize | qsize=<int> | 1000000, при запросе через web-интерфейс 1000 | Максимальное количество выбираемых данных. |
timefield | timefield=<field> | @timestamp | Имя поля, в котором хранится временная метка. |
append | append = <boolean> | true | Режим объединения данных при запросе нескольких источников. При append = true используется алгоритм команды append, при append = false объединение выполняется с помощью внутренних механизмов хранилища. Примечания для append. |
earliest | earliest=<string> | Начальная временная метка поиска. | |
latest | latest=<string> | Конечная временная метка поиска. | |
timeout | timeout=<int> | См. Timeout внешних запросов | Таймаут внешнего запроса в миллисекундах. |
exclude | exclude(<source-name> [, <source-name> ...]) | Список источников, исключаемых из поиска. |
Для earliest и latest допустим следующий формат временных параметров: (+|-)<int>(s|m|h|d|w|month) | timestamp | unix-time:
- s/sec/secs/second/seconds - секунды
- m/min/mins/minute/minutes - минуты
- h/hr/hrs/hour/hours - часы
- d/day/days - дни
- w/week/weeks - недели
- mon/month/months - месяцы
Каждый источник может использовать собственные локальные параметры поиска, которые будут перегружать общие параметры. Для этого сам источник и его параметры должны быть написаны в скобках. См. Пример 4.
Примечания для append
- Использование параметра
append = falseвозможно только при запросе к OpenSearch. - Параметр
appendдолжен быть глобальным. - При
append = falseучитываются только глобальные параметры поиска.
Временные параметры по умолчанию
Если для источника не указан один или несколько временных параметров, во время сборки запроса для этих параметров будут подставлены значения по умолчанию.
Временные параметры по умолчанию хранятся в _cluster/settings в блоке sme.core.global_dt_params.
Предупреждение об установке временных параметров по умолчанию
Если для источника подставляются временные параметры по умолчанию, для него создается отдельное предупреждение с перечнем подставленных значений.
Например, при запросе к индексу sysmon_operational-* без указания временных полей ответ будет содержать предупреждение:
Default values were set for dtFieldName='@timestamp' from cluster settings, dtStart='now-24h' from cluster settings, dtEnd='now' from cluster settings for index 'sysmon_operational-*'
Приоритет временных параметров
Наивысший приоритет имеют локальные параметры источника: timefield, earliest и latest. Если они не заданы, используются глобальные параметры поиска: dtFieldName, dtStart и dtEnd. Если глобальный временной параметр также не задан, его значение берется из кластерных настроек.
Для Единицы данных непустое значение time_field из ее конфигурации имеет приоритет над dtFieldName запроса, но уступает явно заданному timefield в source. При поиске по Пространству каждая Единица данных использует свое поле, если timefield не задан для всего источника. Параметры earliest и latest также переопределяют временные границы запроса по Пространству.
Search Anywhere конфиговДля определения временного поля в запросе Search Anywhere действуют особые правила. Наивысший приоритет имеют локальные параметры поиска. Если timefield источника не задан явно, используется значение поля Временное поле по умолчанию конфигурации Search Anywhere. Если поле не заполнено, применяется общий порядок: dtFieldName из запроса или значение из кластерных настроек.
Игнорирование временных параметров
Если параметру dtStart или dtEnd передать пустую строку, соответствующая временная граница будет игнорироваться.
В данном примере будут запрошены все данные до текущего времени.
POST _sme
{
"query": "source sysmon_operational-* | aggs count ",
"dtStart": ""
}
Если параметру dtFieldName передать пустую строку, временные границы и сортировка по времени будут отключены.
Timeout внешних запросов
Значения таймаутов для внешних источников указываются в _cluster/settings.
| Название | Описание | Значение по умолчанию |
|---|---|---|
sme.sa.timeout.os | Таймаут для запросов к OpenSearch. | 60000 |
sme.sa.timeout.es | Таймаут для запросов к ElasticSearch. | 60000 |
sme.sa.timeout.click | Таймаут для запросов к ClickHouse. | 60000 |
sme.sa.timeout.hadoop | Таймаут для запросов к Hadoop Hive. | 60000 |
Hadoop HiveИсточник Hadoop Hive поддерживает только целочисленные таймауты в секундах, поэтому при запросе таймаут преобразуется в секунды с округлением вверх.
Примеры запросов
Пример 1
В данном примере будут найдены данные индексов ldap_users_*, кроме ldap_users_logs*, ldap_users_errors.
source ldap_users_* exclude(ldap_users_logs*, ldap_users_errors) timefield=event_time
Пример 2
source hdh:nix_events, ldap_computers-* qsize=1000 earliest=-2d latest=1649344240
Пример 3
В данном примере объединение данных выполняется при помощи OpenSearch.
source sysmon_operational-*, zabbix-* qsize = 150 append = false
Пример 4
В данном примере при запросе данных из индекса server_warnings используются локальные параметры, поэтому qsize и временные границы будут отличаться от запроса к winevent и zabbix. Параметр timefield не указан в локальных параметрах, поэтому для запроса к server_warnings будет использоваться значение из глобальных параметров.
source (server_warnings:10 earliest="now-10m" latest="now-5m"),
winevent, zabbix timefield=@timestamp earliest="now-1d" latest="now" qsize = 100