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

source

Описание

Позволяет получить данные из источников.

Синтаксис

source <source-name> [source-options]

Обязательные аргументы

ПараметрСинтаксисОписание
source-name<string>Для источника OpenSearch необходимо просто указать название индекс паттерна, для запроса данных из источников Hadoop или Clickhouse требуется префикс: hdh: или clk: соответственно. В данной ситуации указание размера выборки (qsize) допускается через : после префикса и названия источника.

Примеры:

source sysmon_operational-*

source hdh:win_events

source clk:nix_events:1000

Запрос из нескольких источников

Допустим запрос сразу из нескольких источников с помощью их перечисления через запятую. По умолчанию в результате будет объединение данных по алгоритму команды append. Для использования механизмов внутреннего хранилища для объединения результатов см. опциональный аргумент append.

Пример:

source cisco_asa-*, clk:nix_events:1000

Опциональные аргументы

  • source-options - опциональные параметры, задающие дополнительные настройки поиска.
ПараметрСинтаксисПо умолчаниюОписание
qsizeqsize=<int>1000000, при запросе через web-интерфейс 1000Максимальное количество выбираемых данных.
timefieldtimefield=<field>@timestampИмя поля в котором хранится временная метка.
appendappend = <bool>trueРежим объединения данных при запросе нескольких источников. При append = true используется алгоритм команды append, при append = false объединение выполняется при помощи внутенних механизмов хранилища. Примечания для append.
earliestearliest=<string>Начальная временная метка поиска.
latestlatest=<string>Конечная временная метка поиска.

Для 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. В случае если и глобальный временной параметр не указан, значение временного параметра для источника будет взято из кластерных настроек.

Приоритет временного поля для Search Anywhere конфигов

Для определения временного поля при Search Anywhere запросе действуют особые правила. Наивысшим приоритетом также обладают локальные параметры поиска. Если timefield для источника не указан явно, то он берется из поля Временное поле по умолчанию из Search Anywhere конфига. Если оно не заполнено, как и в общем случае используется dtFieldName из запроса или значение из кластерных настроек.

Игнорирование временных параметров

Если при запросе передать параметр dtStart или dtEnd со значением равным пустой строке, то эта временная граница будет игнорироваться.

В данном примере будут запрошены все данные до текущего времени.

POST _sme
{
"query": "source sysmon_operational-* | aggs count ",
"dtStart": ""
}
подсказка

Если передать параметр dtFieldName равный пустой строке, то временные границы и сортировка по времени будут отключены.

Примеры запросов

Пример 1

source ldap_users-* 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