Создание SQL-запросов вручную

19 октября 2026

ID 264300

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

Выполнение SQL-запроса влияет на отображаемые столбцы таблицы.

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

Если SQL-запрос не содержит значения *, в таблице отображаются только столбцы для указанных полей, которые соответствуют нормализованной модели данных событий. Столбцы отображаются, даже если для них нет данных.

Чтобы сформировать SQL-запрос вручную:

  1. Следуйте инструкциям, чтобы открыть таблицу событий.
  2. Введите SQL-запрос в поле ввода.

    При вводе имени функции в поле SQL-запроса отображается список функций, которые можно использовать. При выборе функции справа отображается пример ее использования. Например, функция concatWithSeparator сопровождается следующим примером:

    concatWithSeparator('a', '1', '2', '3')

  3. Нажмите на кнопку Выполнить запрос.

    Выполнение запроса может занять до нескольких минут.

    Вы также можете запустить выполнение запроса в фоном режиме. Для этого нажмите на значок стрелки рядом с кнопкой Выполнить запрос и выберите Запустить в фоне. В этом случае происходит следующее:

    • Запрос будет добавлен в очередь на выполнение в фоновом режиме, и в разделе Обнаружение и реагирование будет создана задача на выполнение этого запроса.
    • Фоновые запросы выполняются с низким приоритетом параллельно.
    • Запрос не может быть отправлен на выполнение в фоновом режиме, если он содержит более 10 000 событий.

В таблице отобразятся результаты поиска по сформированному SQL-запросу. Результат выполнения запроса в фоновом режиме можно просмотреть в разделе Обнаружение и реагирование.

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

При необходимости вы можете отфильтровать события в таблице по периоду.

Чтобы отобразить непечатаемые символы в поле запроса SQL, нажмите любую из следующих комбинаций клавиш:

  • Ctrl+*/Command+*
  • Ctrl+Shift+8/Command+Shift+8

Если вы включите отображение непечатаемых символов в компоненте XDR, другие компоненты (такие как KUMA) не будут автоматически отображать непечатаемые символы, пока вы не перезагрузите вкладки браузера компонентов.

Поддерживаемые функции и операторы

SELECT

Поля событий, которые следует возвращать.

Для SELECT в приложении поддержаны следующие функции и операторы:

Функции агрегации: count, avg, max, min, sum.

Арифметические операторы: +, -, *, /, <, >, =, !=, >=, <=.

Вы можете комбинировать эти функции и операторы.

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

FROM

Источник данных.

WHERE

Условия фильтрации событий.

  • AND, OR, NOT, =, !=, >, >=, <, <=
  • IN
  • BETWEEN
  • LIKE
  • ILIKE
  • inSubnet
  • match (в запросах используется синтаксис регулярных выражений re2, специальные символы необходимо дополнительно экранировать с помощью обратной косой черты "\")

GROUP BY

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

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

ORDER BY

Столбцы, по которым следует сортировать возвращаемые данные.

Возможные значения:

  • DESC – по убыванию.
  • ASC – по возрастанию.

OFFSET

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

LIMIT

Количество отображаемых в таблице строк.

По умолчанию указано значение 250.

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

Используемые в поисковых запросах псевдонимы не должны содержать пробелов.

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

  • SELECT * FROM `events` WHERE Type IN ('Base', 'Audit') ORDER BY Timestamp DESC LIMIT 250

    Все события таблицы events с типом Base и Audit, отсортированные по столбцу Timestamp в порядке убывания. Количество отображаемых в таблице строк – 250.

  • SELECT * FROM `events` WHERE BytesIn BETWEEN 1000 AND 2000 ORDER BY Timestamp ASC LIMIT 250

    Все события таблицы events, для которых в поле BytesIn значение полученного трафика находится в диапазоне от 1000 до 2000 байт, отсортированные по столбцу Timestamp в порядке возрастания. Количество отображаемых в таблице строк – 250.

  • SELECT * FROM `events` WHERE Message LIKE '%ssh:%' ORDER BY Timestamp DESC LIMIT 250

    Все события таблицы events, которые в поле Message содержат данные, соответствующие заданному шаблону %ssh:% в нижнем регистре, и отсортированы по столбцу Timestamp в порядке убывания. Количество отображаемых в таблице строк – 250.

  • SELECT * FROM `events` WHERE inSubnet(DeviceAddress, '00.0.0.0/00') ORDER BY Timestamp DESC LIMIT 250

    Все события таблицы events для устройств, которые входят в подсеть 00.0.0.0/00, отсортированные по столбцу Timestamp в порядке убывания. Количество отображаемых в таблице строк – 250.

  • SELECT * FROM `events` WHERE match(Message, 'ssh.*') ORDER BY Timestamp DESC LIMIT 250

    Все события таблицы events, которые в поле Message содержат текст, соответствующий шаблону ssh.*, и отсортированы по столбцу Timestamp в порядке убывания. Количество отображаемых в таблице строк – 250.

  • SELECT max(BytesOut) / 1024 FROM `events`

    Максимальный размер исходящего трафика (КБ) за выбранный период времени.

  • SELECT count(ID) AS "Count", SourcePort AS "Port" FROM `events` GROUP BY SourcePort ORDER BY Port ASC LIMIT 250

    Количество событий и номер порта. События сгруппированы по номеру порта и отсортированы по столбцу Port в порядке возрастания. Количество отображаемых в таблице строк – 250.

    Столбцу ID в таблице событий присвоено имя Count, столбцу SourcePort присвоено имя Port.

  • SELECT * FROM `events` WHERE match(Message, 'ssh:\'connection.*') ORDER BY Timestamp DESC LIMIT 250

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

    Все события таблицы events, которые в поле Message содержат текст, соответствующий шаблону ssh: 'connection', и отсортированы по столбцу Timestamp в порядке убывания. Количество отображаемых в таблице строк – 250.

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!