Использование ES|QL в Kibana
Вы можете использовать ES|QL в Kibana для запроса и агрегирования данных, создания визуализаций и настройки оповещений.
Это руководство показывает, как использовать ES|QL в Kibana. Чтобы следовать запросам, загрузите набор образцовых данных «Образцы веб-логов», выбрав Образцы данных на странице Интеграции в Kibana, выбрав Другие образцы наборов данных и нажав Добавить данные на карте Образцы веб-логов.
Включить или отключить ES|QL
ES|QL включён по умолчанию в Kibana. Его можно отключить, используя параметр enableESQL в Дополнительных настройках.
Это скроет пользовательский интерфейс ES|QL из различных приложений. Однако пользователи смогут получить доступ к существующим артефактам ES|QL, таким как сохранённые поиски и визуализации.
Начало работы с ES|QL
Чтобы начать работу с ES|QL в Discover, откройте главное меню и выберите Discover. Затем выберите Попробовать ES|QL из строки меню приложения.
Строка запроса
После переключения в режим ES|QL в строке запроса отображается пример запроса. Например:
from kibana_sample_data_logs | limit 10
Каждый запрос начинается с команды источника. В этом запросе команда источника — FROM. FROM извлекает данные из потоков данных, индексов или псевдонимов. В этом примере данные извлекаются из kibana_sample_data_logs.
За команду источника могут следовать одна или несколько команд обработки. В этом запросе команда обработки — LIMIT. LIMIT ограничивает количество извлекаемых строк.
Нажмите кнопку Справка ES|QL, чтобы открыть справочную документацию по всем командам и функциям внутри приложения или получить рекомендуемые запросы, которые помогут вам начать работу.
Для удобства написания запросов автодополнение предлагает возможные команды и функции:
Ключевые слова ES|QL нечувствительны к регистру. Следующий запрос идентичен предыдущему:
FROM kibana_sample_data_logs | LIMIT 10
Сделайте запрос удобочитаемым
Для удобочитаемости вы можете помещать каждую команду обработки на новую строку. Следующий запрос идентичен предыдущему:
FROM kibana_sample_data_logs | LIMIT 10
Это можно сделать, используя кнопку Добавить переносы строк на знаки '|' в нижней части редактора запросов.
Вы можете настроить высоту редактора, перетаскивая его нижнюю границу по своему усмотрению.
Предупреждения
Запрос может привести к появлению предупреждений, например, при запросе неподдерживаемого типа поля. В этом случае в строке запроса отобразится символ предупреждения. Чтобы увидеть подробное предупреждение, разверните строку запроса и нажмите предупреждения.
История запросов
Вы можете повторно использовать свои недавние запросы ES|QL в строке запроса. В строке запроса нажмите Показать недавние запросы.
Затем вы можете прокрутить свои недавние запросы:
Избранные запросы
Из истории запросов вы можете пометить некоторые запросы как избранные, чтобы быстрее найти и получить к ним доступ позже.
В строке запроса нажмите Показать недавние запросы.
На вкладке Недавние вы можете отметить звёздочкой любые запросы.
На вкладке Избранные вы найдёте все запросы, которые ранее отметили звёздочкой.
Таблица результатов
Для примера запроса таблица результатов отображает 10 строк. Без команды LIMIT таблица результатов по умолчанию отображает до 1000 строк. Используя LIMIT, вы можете увеличить предел до 10 000 строк.
Предел в 10 000 строк применим только к количеству строк, извлеченных запросом и отображаемых в Discover. Любые запросы или агрегации выполняются на полном наборе данных.
Каждая строка отображает два столбца для примера запроса: столбец с полем @timestamp и столбец со всем документом. Чтобы отобразить определённые поля из документов, используйте команду KEEP:
FROM kibana_sample_data_logs | KEEP @timestamp, bytes, geo.dest
Чтобы отобразить все поля как отдельные столбцы, используйте KEEP *:
FROM kibana_sample_data_logs | KEEP *
Максимальное количество столбцов в Discover — 50. Если запрос возвращает более 50 столбцов, Discover отображает только первые 50.
Сортировка
Чтобы отсортировать по одному из столбцов, щелкните имя столбца, по которому хотите отсортировать, и выберите порядок сортировки. Обратите внимание, что это выполняет сортировку на стороне клиента. Это сортирует только строки, извлеченные запросом, что может не быть полным набором данных из-за (неявного) ограничения. Чтобы отсортировать весь набор данных, используйте команду SORT:
FROM kibana_sample_data_logs | KEEP @timestamp, bytes, geo.dest | SORT bytes DESC
Фильтрация по времени
Чтобы отобразить данные в заданном временном диапазоне, вы можете использовать стандартный фильтр времени, пользовательские временные параметры или команду WHERE.
Стандартный фильтр времени
Стандартный фильтр времени включен, если индексы, которые вы запрашиваете, содержат поле с именем @timestamp.
Пользовательские временные параметры
Если ваши индексы не содержат поля с именем @timestamp, вы можете использовать параметры ?_tstart и ?_tend для указания временного диапазона. Эти параметры работают с любым полем со временем и автоматически синхронизируются с фильтром времени.
FROM my_index | WHERE custom_timestamp >= ?_tstart AND custom_timestamp < ?_tend
Вы также можете использовать параметры ?_tstart и ?_tend с функцией BUCKET для создания автоматически увеличивающихся временных ведер в визуализациях ES|QL анализ и визуализация данных. Например:
FROM kibana_sample_data_logs | STATS average_bytes = AVG(bytes) BY BUCKET(@timestamp, 50, ?_tstart, ?_tend)
В этом примере используются 50 ведра, что является максимальным количеством ведер.
Команда WHERE
Вы также можете ограничить временной диапазон с помощью команды WHERE и функции NOW. Например, если поле со временем называется timestamp, чтобы запросить последние 15 минут данных:
FROM kibana_sample_data_logs | WHERE timestamp > NOW() - 15minutes
Анализ и визуализация данных
Между строкой запроса и таблицей результатов Discover отображает гистограмму дат. По умолчанию, если индексы, которые вы запрашиваете, не содержат поля @timestamp, гистограмма не отображается. Но вы можете использовать пользовательское поле времени с параметрами ?_tstart и ?_tend, чтобы включить её.
Визуализация адаптируется к запросу. Характер запроса определяет тип визуализации. Например, этот запрос агрегирует общее количество байтов на страну назначения:
FROM kibana_sample_data_logs | STATS total_bytes = SUM(bytes) BY geo.dest | SORT total_bytes DESC | LIMIT 3
Полученная визуализация — это столбчатая диаграмма, отображающая 3 ведущие страны:
Чтобы внести изменения в визуализацию, например, изменить тип визуализации, оси и цвета, щелкните кнопку карандаша (). Это откроет встроенный редактор:
Вы можете сохранить визуализацию в новой или существующей панели, нажав кнопку сохранения (). После сохранения на панели вы попадете на страницу «Панели». Вы можете продолжить вносить изменения в визуализацию. Нажмите кнопку параметров в правом верхнем углу (
) и выберите Редактировать визуализацию ES|QL, чтобы открыть встроенный редактор:
Добавить панель на панель
Вы можете использовать запросы ES|QL для создания панелей на своих панелях. Чтобы добавить панель на панель, в разделе Панели нажмите кнопку Добавить панель и выберите ES|QL.
Проверьте запрос ES|QL, нажав кнопку фильтров панели ():
Вы также можете отредактировать визуализацию ES|QL отсюда. Нажмите кнопку параметров в правом верхнем углу () и выберите Редактировать визуализацию ESQL, чтобы открыть встроенный редактор.
Создать политику обогащения
Команда ES|QL ENRICH позволяет обогатить ваш набор данных запроса полями из другого набора данных. Прежде чем вы сможете использовать ENRICH, необходимо создать и выполнить политику обогащения. Если политика существует, она будет предложена автодополнением. Если нет, нажмите Создать, чтобы создать её.
Далее, вы можете ввести имя политики, тип политики, индексы источника и, необязательно, запрос:
Нажмите Далее, чтобы выбрать поле сопоставления и поля обогащения:
Наконец, нажмите Создать и выполнить.
Теперь вы можете использовать политику обогащения в запросе ES|QL:
FROM kibana_sample_data_logs | STATS total_bytes = SUM(bytes) BY geo.dest | SORT total_bytes DESC | LIMIT 3 | ENRICH countries
Создание правила оповещения
Вы можете использовать запросы ES|QL для создания оповещений. Из Discover нажмите Оповещения и выберите Создать правило порога поиска. Это откроет панель, которая позволит вам создать правило, используя запрос ES|QL. Далее вы можете протестировать запрос, добавить соединитель и сохранить правило.
Ограничения
- Интерфейс пользователя для фильтрации данных недоступен, когда Discover находится в режиме ES|QL. Чтобы отфильтровать данные, напишите запрос, который использует команду
WHERE. - Discover отображает не более 10 000 строк. Это ограничение применяется только к количеству строк, полученных запросом и отображенных в Discover. Запросы и агрегации выполняются на полном наборе данных.
- Discover отображает не более 50 столбцов. Если запрос возвращает более 50 столбцов, Discover отображает только первые 50.
- Экспорт CSV из Discover отображает не более 10 000 строк. Это ограничение применяется только к количеству строк, полученных запросом и отображенных в Discover. Запросы и агрегации выполняются на полном наборе данных.
- Запрос к множеству индексов сразу без фильтров может привести к ошибке в kibana, которая выглядит как
[esql] > Unexpected error from Elasticsearch: The content length (536885793) is bigger than the maximum allowed string (536870888). Ответ от ES|QL слишком длинный. ИспользуйтеDROPилиKEEP, чтобы ограничить количество возвращаемых полей.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/esql-kibana.html