Перейти к основному содержимому
Версия: 6.2

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 - опциональные параметры, задающие дополнительные настройки поиска
ПараметрСинтаксисПо умолчаниюОписание
qsizeqsize=<int>1000000, при запросе через web-интерфейс 1000Максимальное количество выбираемых данных.
timefieldtimefield=<field>@timestampИмя поля, в котором хранится временная метка.
appendappend = <boolean>trueРежим объединения данных при запросе нескольких источников. При append = true используется алгоритм команды append, при append = false объединение выполняется с помощью внутренних механизмов хранилища. Примечания для append.
earliestearliest=<string>Начальная временная метка поиска.
latestlatest=<string>Конечная временная метка поиска.
timeouttimeout=<int>См. Timeout внешних запросовТаймаут внешнего запроса в миллисекундах.
excludeexclude(<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
Timeout для 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