Содержание
Создание SQL-запросов вручную
С помощью строки поиска вы можете вручную создавать SQL-запросы любой сложности для фильтрации событий.
Выполнение SQL-запроса влияет на отображаемые столбцы таблицы.
Если SQL-запрос содержит значение *, указанные в запросе столбцы добавляются в таблицу, если они отсутствовали. Удаление отображаемого столбца из последующих запросов не скрывает соответствующий столбец.
Если SQL-запрос не содержит значения *, в таблице отображаются только столбцы для указанных полей, которые соответствуют нормализованной модели данных событий. Столбцы отображаются, даже если для них нет данных.
Чтобы сформировать SQL-запрос вручную:
- Следуйте инструкциям, чтобы открыть таблицу событий.
- Введите 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.