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

Поиск по Единицам данных и Пространствам поиска

Единица данных задает имя индекса, индекс-паттерна или таблицы хранилища. Пространство поиска объединяет несколько Единиц данных, например свежие события из внутреннего хранилища и архив из ClickHouse. Запрос обращается к этому имени, а параметры подключения и физическая привязка хранятся в конфигурации.

Подключение, Единица данных и Пространство поиска​

ОбъектЧто задаётПример
ПодключениеХранилище и параметры доступа к немуsystem_os — внутреннее хранилище; ch_events — ClickHouse
Единица данныхПодключение, физический объект и необязательное поле времениaudit_events → индексы auditd-* через system_os
Пространство поискаСписок Единиц данных или маски их имёнsecurity_events → audit_events, ch_audit_events

Единицы данных описывают существующие источники. Их создание не создаёт таблицы и индексы, не переносит события и не настраивает ротацию или репликацию. За хранение и срок жизни данных отвечают настройки самого хранилища.

Поиск поддерживает Единицы на внутреннем Smart Monitor Data Storage через system_os и на ClickHouse.

Поддерживаемые хранилища

Поиск по Единице с Подключением к внешнему OpenSearch не поддерживается.

Для поиска по одной Единице создавать Пространство не требуется. Единица внутреннего хранилища может указывать один индекс, алиас или индекс-паттерн; Единица ClickHouse — одну таблицу. Сохранение Единицы не проверяет наличие физического источника: запрос к отсутствующему индексу может вернуть пустую выдачу, к отсутствующей таблице ClickHouse — ошибку хранилища.

Включение поиска​

Поиск по Единицам и Пространствам включает динамическая кластерная настройка sme.core.data_units.search_enabled. По умолчанию она выключена. Администратор может включить её в Консоли разработчика:

PUT _cluster/settings
{
"persistent": {
"sme.core.data_units.search_enabled": true
}
}

Создание и редактирование трёх сущностей, проверка Подключений и сбор статистики работают при любом значении настройки. При выключенной настройке поиск не разрешает имена Единиц и Пространств.

Совпадающие имена

Перед включением проверьте совпадения имён Пространств, Единиц и индексов. Когда поиск включён, короткое имя сначала ищется среди Пространств, затем среди Единиц и только затем используется как индекс-паттерн. Создание объекта с совпадающим именем может изменить источник уже сохранённого запроса.

Как указать источник​

Явные формы выбирают тип источника:

source du:audit_events
source ss:security_events

Для короткого имени действует приоритет Пространство → Единица → индекс-паттерн:

source security_events

Имена чувствительны к регистру. Маска в source, например source audit_*, остаётся индекс-паттерном и не раскрывается в набор Единиц. Маски имён Единиц задаются в составе Пространства, в поле du_refs.

Если имя совпадает с ключевым словом SML, используйте кавычки вокруг явной ссылки: source 'du:count'. Имена индексов ss и du заключайте в кавычки: source 'ss'.

Неизвестное имя с du: или ss: даёт ошибку. Короткое неизвестное имя может перейти в поиск по индексам и вернуть пустую выдачу. Если объект существует, но недоступен, перехода к одноимённому индексу нет.

Единицу или Пространство нельзя перечислить через запятую с другими источниками либо применить к ним exclude(...). Для объединения Единиц задайте Пространство поиска.

Имена источников​

Имена Единиц и Пространств содержат от 1 до 256 символов: латинские буквы, цифры и _; одиночные точки и дефисы разделяют непустые части имени. Первая часть имени должна содержать хотя бы одну букву или _. Поэтому 2026_logs, _archive и archive.2026 допустимы, а 123 и 1-archive — нет. Имена clk, had, elk, os, db и api зарезервированы без учёта регистра.

Состав Пространства​

В состав входят имена Единиц или маски их имён с *, без префикса du:. Например, audit_* выбирает все подходящие Единицы, доступные пользователю. Состав определяется при каждом запросе: новая подходящая Единица включается автоматически. Маска учитывает регистр и не ищет индексы или таблицы напрямую. Если Единица подходит под несколько масок или указана явно, она участвует один раз.

Число участвующих Единиц ограничивает настройка sme.core.search_spaces.max_branches: по умолчанию 32, допустимо от 1 до 128. При превышении предела поиск завершается ошибкой.

Поле времени и временное окно​

Поле времени выбирается в следующем порядке:

  1. timefield в команде source.
  2. Непустое time_field в Единице данных.
  3. dtFieldName поискового запроса.
  4. Значение кластерной настройки по умолчанию.

Параметры earliest и latest в source переопределяют границы dtStart и dtEnd запроса. У Пространства собственного поля времени нет: каждая Единица использует своё, пока timefield не задан явно для всего запроса.

Если во всех Единицах время события хранится в поле event_time, его можно указать для всего Пространства:

source ss:security_events timefield=event_time earliest="now-1d" latest="now" qsize=1000
| table host, action

Явный timefield должен подходить всем Единицам Пространства. Если поле отсутствует или имеет неподходящий тип, результат может оказаться пустым. Поиск выдаёт предупреждение, когда может определить проблему по карте полей.

Объединение результатов​

При поиске по нескольким Единицам результаты объединяются по времени; по умолчанию новые события идут первыми. qsize ограничивает общую выдачу, также действует кластерный предел maxQsize. Команды после source, включая stats, обрабатывают уже выбранные строки.

Если разные Единицы указывают на пересекающиеся физические источники, одно событие может встретиться в результате несколько раз.

Пространство, в котором после разрешения состава осталась одна доступная Единица, выполняется как поиск по этой Единице: без объединения строк и ограничения набора агрегатных функций для нескольких Единиц.

Агрегации​

Секции aggs и timeaggs считают на стороне хранилищ, затем результаты сводятся. Для фильтрации и группировки по нескольким Единицам выбирайте поля с одинаковыми именами и совместимыми типами в участвующих источниках. Для Пространства с несколькими участвующими Единицами поддерживаются:

СекцияФункции
aggscount, sum, min, max, avg, values, dc
timeaggscount, sum, min, max, avg

avg учитывает сумму и количество значений во всех участвующих Единицах. Функции median, perc, earliest и latest в этих секциях над несколькими Единицами не поддерживаются. Это ограничение агрегатных функций; опции временного окна earliest и latest в source поддерживаются.

source ss:security_events earliest="now-1d" latest="now"
| aggs count by host

У values предел — 10 000 уникальных значений. При усечении объединённого списка выдаётся предупреждение. dc в aggs над Пространством вычисляется объединением списков: если хотя бы одна Единица отдаёт 10 000 или больше уникальных значений в группе, точность не гарантируется и значение этой группы остаётся пустым с предупреждением. Даты из разных хранилищ с различающимся представлением могут считаться разными значениями.

Количество групп и ограничения самого хранилища действуют отдельно от предела values. Превышение числа корзин агрегирования может привести к ошибке запроса к отдельной Единице. При частичном ответе агрегат отражает только участвовавшие данные.

Неполный результат и отказы​

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

При отказе части запросов возможен результат от остальных Единиц с предупреждениями.

Права доступа​

Кластерные разрешения Подключений, Единиц данных и Пространств поиска перечислены в справочнике ролей.

Права на Пространство и его Единицы проверяются раздельно. Разрешение читать Пространство не открывает все входящие в него Единицы. При создании владельцем объекта становится автор; доступ другим пользователям и ролям задаётся владельцем отдельно.

Для внутреннего хранилища дополнительно нужны права пользователя на физические индексы.

При поиске по ClickHouse используется учётная запись Подключения. Её доступ к таблицам настраивается в ClickHouse.

Статистика источников​

Статистика Единицы описывает её физический источник: объём, количество строк, диапазон времени и схему. Это сохранённый снимок, который собирается раз в пять минут, независимо от включения поиска. Чтение статистики не запускает новый поиск. При ручном обновлении снимок моложе 60 секунд по умолчанию возвращается без повторного сбора.

Свежесть и полнота статистики

При неудачном сборе отдельный показатель может сохранить прежнее значение и время сбора. После десяти минут снимок считается устаревшим, но продолжает возвращаться. Проверяйте время и статус показателя: отсутствие значения не означает ноль, а полный сбор основных показателей не гарантирует наличия всех сведений об источнике.

У внутреннего хранилища объём данных отражает размер основных шардов, а объём на диске — размер с репликами. Для ClickHouse оба показателя берутся из размера таблицы и не обозначают объём несжатых исходных событий. Для движков Replicated и Distributed доступен ограниченный набор статистики. У фильтрованного алиаса количество строк и диапазон времени учитывают фильтр, а размеры относятся к индексам под алиасом.

Кластерные настройки​

Параметры изменяются динамически через /_cluster/settings. Указывайте полное имя параметра в разделе persistent, как в примере включения поиска. Чтобы вернуть значение по умолчанию, передайте null вместо значения.

Поиск и конфигурации​

ПараметрПо умолчаниюНазначение
sme.core.data_units.search_enabledfalseВключает поиск по именам Единиц данных и Пространств
sme.core.search_spaces.max_branches32Максимальное число Единиц в поисковом запросе к Пространству; от 1 до 128
sme.core.default_connectionsystem_osИмя Подключения по умолчанию, возвращаемое при чтении параметров хранилища
sme.core.system_connections.index_name.sm_sme_system_connectionsИндекс, из которого SME читает конфигурации Подключений
sme.core.data_units.index_name.sm_sme_data_unitsИндекс, из которого SME читает конфигурации Единиц данных
sme.core.search_spaces.index_name.sm_sme_search_spacesИндекс, из которого SME читает конфигурации Пространств поиска

Сбор состояния и статистики​

ПараметрПо умолчаниюНазначение
sme.core.data_unit_state.schema_max_fields1000Максимальное число полей в снимке схемы; от 1 до 10 000
sme.core.data_unit_state.schema_max_indices_per_field20Максимальное число имён индексов у одного поля схемы; от 1 до 1000
sme.core.data_unit_state.opensearch_request_timeout30sОжидание одного запроса к внутреннему хранилищу при сборе статистики; от 1s до 10m
sme.core.data_unit_state.clickhouse_query_timeout30sСрок выполнения одного запроса статистики к ClickHouse; от 1s до 10m
sme.core.data_unit_state.clickhouse_connect_timeout10sОжидание установки соединения с ClickHouse при сборе статистики; от 1s до 2m
sme.core.data_unit_state.clickhouse_connection_budget120sОбщий срок сбора по одному Подключению ClickHouse, без установки соединения и ожидания очереди; от 10s до 10m
sme.core.data_unit_state.connection_check_timeout5sСрок проверки доступности одного Подключения при плановом или ручном обновлении статусов; от 1s до 1m
sme.core.data_unit_state.refresh_min_age60sМинимальный возраст снимка или статуса Подключения для повторного ручного сбора; от 0s до 1h, 0s отключает ограничение
sme.core.data_unit_state.refresh_response_timeout45sОжидание ответа ручного обновления; от 1s до 10m. После истечения срока сбор может продолжаться в фоне
sme.core.data_unit_state.refresh_lock_duration300sСрок блокировки одновременного ручного сбора одного объекта; от 10s до 1h
sme.core.data_unit_state.refresh_max_ids1000Максимальное число уникальных имён объектов в одном ручном обновлении; от 1 до 1000