OpenSearch Dashboards для многих является знакомым визуальным интерфейсом для исследования данных, построения графиков и создания интерактивных дашбордов. Хотя обычно он используется вместе с OpenSearch, его также можно подключить напрямую к Manticore Search.

Интеграция позволяет оставить Manticore в роли бэкенда для поиска и аналитики, а Discover, Visualize и Dashboards использовать в качестве пользовательского интерфейса. Это особенно удобно для логов и данных о событиях: такие инструменты, как Logstash, Filebeat, Fluent Bit и Vector, могут отправлять данные в Manticore, а OpenSearch Dashboards предоставляет удобный способ их просматривать.
В этом руководстве мы настроим подключение, добавим небольшой тестовый набор данных, поработаем с ним в Discover и создадим визуализацию.
Как работает интеграция
OpenSearch Dashboards взаимодействует с бэкендом через HTTP API. Manticore предоставляет совместимый API через свой HTTP-интерфейс, который по умолчанию использует порт 9308.
Совместимость обеспечивает плагин EmulateElastic в Manticore Buddy
. Он обрабатывает запросы, которые нужны OpenSearch Dashboards для запуска, получения списка индексов, поиска, фильтрации и поддерживаемых агрегаций. Buddy обычно запускается автоматически вместе с searchd, поэтому в стандартной установке Manticore необходимый компонент уже есть.
Это интеграция на уровне API, а не встроенный кластер OpenSearch. Manticore хранит данные и выполняет запросы, а OpenSearch Dashboards предоставляет визуальный интерфейс.
Предварительные требования
Для этого руководства понадобятся:
- Запущенный экземпляр Manticore Search с HTTP-эндпоинтом, доступным по адресу
http://localhost:9308 - Установленный и запущенный Manticore Buddy
- OpenSearch Dashboards 3.4.0 — протестированная и рекомендуемая на данный момент версия
- Manticore, работающий в RT-режиме
Другие версии OpenSearch Dashboards тоже могут работать, но они не были протестированы в той же степени. Версия, которую сообщает Manticore, должна совпадать с версией OpenSearch Dashboards.
Шаг 1: Настройте Manticore
Откройте конфигурационный файл Manticore и убедитесь, что HTTP-интерфейс включён. Укажите в kibana_version_string версию OpenSearch Dashboards, которую планируете использовать:
searchd {
listen = 127.0.0.1:9308:http
pid_file = /var/run/manticore/searchd.pid
data_dir = /var/lib/manticore
kibana_version_string = 3.4.0
}
Название kibana_version_string сохранено для совместимости с Elasticsearch-совместимым API. При запуске OpenSearch Dashboards проверяет версию бэкенда, поэтому несовпадение версий может привести к предупреждениям или помешать запуску приложения.
После изменения конфигурации перезапустите Manticore.
Если Manticore и OpenSearch Dashboards работают на разных хостах или в разных контейнерах, не привязывайте HTTP-интерфейс только к 127.0.0.1. Привяжите его к адресу, доступному для OpenSearch Dashboards, и ограничьте доступ с помощью сетевых настроек или межсетевого экрана.
Шаг 2: Настройте OpenSearch Dashboards
Откройте opensearch_dashboards.yml. При установке из tar-архива
файл обычно находится по пути config/opensearch_dashboards.yml, а при установке из пакета — в /etc/opensearch-dashboards/opensearch_dashboards.yml.
Укажите HTTP-эндпоинт Manticore в opensearch.hosts:
opensearch.hosts: ["http://localhost:9308"]
Manticore не предоставляет плагин OpenSearch Security. Поэтому соответствующий плагин Dashboards нужно отключить.
Если OpenSearch Dashboards установлен из tar-архива, остановите его и удалите плагин:
./bin/opensearch-dashboards-plugin remove securityDashboards
Если вы запускаете OpenSearch Dashboards в Docker, задайте обе настройки через переменные окружения:
environment:
OPENSEARCH_HOSTS: '["http://manticore:9308"]'
DISABLE_SECURITY_DASHBOARDS_PLUGIN: "true"
Здесь manticore — это имя хоста или контейнера, доступного из контейнера OpenSearch Dashboards. Если использовать localhost внутри этого контейнера, он будет указывать на сам контейнер, а не на Manticore.
Запустите OpenSearch Dashboards и откройте http://localhost:5601 .
Шаг 3: Добавьте тестовые данные в Manticore
Если у вас уже есть RT-таблица, этот шаг можно пропустить. В противном случае подключитесь к Manticore через MySQL-совместимый порт:
mysql -h127.0.0.1 -P9306
Создайте таблицу для небольшого набора событий приложения:
CREATE TABLE app_events (
message text,
service string,
status_code uint,
response_time float,
event_time timestamp
);
Добавьте несколько документов:
INSERT INTO app_events
(message, service, status_code, response_time, event_time)
VALUES
('Request completed', 'catalog', 200, 0.12, 1786924800),
('Request completed', 'checkout', 200, 0.31, 1786928400),
('Upstream timeout', 'checkout', 504, 2.75, 1786932000),
('Product not found', 'catalog', 404, 0.08, 1786935600),
('Request completed', 'catalog', 200, 0.15, 1786939200),
('Payment rejected', 'payments', 422, 0.44, 1786942800);
Эта схема даёт нам текст для поиска, поля для группировки, метрики для агрегации и временную метку для графиков по времени.
Шаг 4: Создайте шаблон индекса
OpenSearch Dashboards использует шаблон индекса для выбора источника данных, доступного в Discover и визуализациях. В этой интеграции шаблон соответствует имени таблицы Manticore.
- Откройте Management > Dashboards Management.
- Перейдите в Index Patterns и выберите Create index pattern.
- Введите
app_events. - Выберите
event_timeв качестве поля времени. - Сохраните шаблон индекса.
Теперь поля app_events должны быть доступны в OpenSearch Dashboards.
Шаг 5: Исследуйте данные в Discover
Откройте Discover и выберите шаблон индекса app_events. Теперь вы можете:
- Просматривать отдельные документы
- Искать по полю
message - Фильтровать по таким полям, как
serviceилиstatus_code - Менять диапазон времени
- Добавлять и удалять столбцы из результатов
Например, добавьте фильтр, в котором status_code больше или равен 400, чтобы сосредоточиться на неуспешных запросах. Затем можно добавить service, message, status_code и response_time в качестве столбцов, чтобы получить компактное представление ошибок.
Простые запросы DQL (Dashboards Query Language) работают с этой интеграцией. Расширенные возможности DQL — включая поиск по вложенным полям, регулярные выражения, нечёткий поиск, поиск с учётом близости слов и повышение веса термов — могут быть несовместимы с Manticore.
Шаг 6: Создайте визуализацию
Откройте Visualize, создайте новую визуализацию и выберите шаблон индекса app_events. OpenSearch Dashboards может использовать с Manticore следующие групповые агрегации (bucket aggregations):
termshistogramdate_histogramrangedate_range
Поддерживаются следующие метрические агрегации:
maxminsumavg
В качестве первого графика создайте столбчатую диаграмму количества событий по сервисам:
- Используйте
Countв качестве метрики. - Добавьте группировку
Termsпо полюservice. - Примените изменения.
- Сохраните визуализацию под названием События по сервисам.
Также можно создать график временного ряда с Date Histogram по event_time или построить график средней задержки, используя метрику avg по response_time.
Сохранив визуализации, откройте Dashboards, создайте дашборд и добавьте их. Фильтры на уровне дашборда позволяют отфильтровать все визуализации по сервису, коду статуса или диапазону времени.
Что поддерживается
Интеграция покрывает основной сценарий исследования данных:
- Поиск и фильтрацию документов в Discover
- Создание шаблонов индексов для таблиц Manticore
- Создание визуализаций с поддерживаемыми групповыми и метрическими агрегациями
- Сохранение визуализаций и объединение их в дашборды
- Управление шаблонами индексов и сохранёнными объектами в Dashboards Management
Manticore также эмулирует запросы уровня стека, необходимые при запуске OpenSearch Dashboards, включая информацию о версиях узлов, настройки кластера, объекты конфигурации и списки индексов.
Текущие ограничения
OpenSearch Dashboards включает множество функций, которые зависят от API или типов полей, специфичных для OpenSearch. Эти функции не поддерживаются данной интеграцией.
Не поддерживаются следующие типы полей:
- Географические и декартовы поля, такие как
geo_point,geo_shape,xy_pointиxy_shape - Типы диапазонов, такие как
integer_range,ip_rangeиdate_range - Специализированные типы поиска, такие как
semantic,rank_featureиpercolator - Векторные типы OpenSearch, такие как
knn_vectorиsparse_vector - Реляционные типы, такие как
nestedиjoin - Расширенные строковые типы, такие как
completionиsearch_as_you_type
Обычные поля text и keyword поддерживаются. Собственный векторный поиск Manticore по-прежнему доступен через SQL и JSON API, но OpenSearch Dashboards не может представить его через векторный тип поля OpenSearch.
Вложенные агрегации — блок aggs внутри другого блока aggs — не поддерживаются. Доступны только метрические агрегации, реализованные в Manticore.
Также недоступны приложения и инструменты администрирования, специфичные для OpenSearch, включая:
- Геопространственные визуализации
- Observability и аналитику трассировки
- Alerting и Anomaly Detection
- Security Analytics
- Index State Management и Index Management
- Performance Analyzer
- Сценарии работы с плагином OpenSearch Security
Эти ограничения не влияют на основной сценарий работы с Discover, визуализациями и дашбордами, описанный выше.
Загрузка реальных данных
После того как подключение заработает, тестовую таблицу можно заменить собственным пайплайном данных. Manticore интегрируется с Logstash , Filebeat , Fluent Bit и Vector . Эти инструменты могут собирать и преобразовывать логи или события перед отправкой в HTTP-эндпоинт Manticore, совместимый с Elasticsearch.
Итоговый процесс выглядит просто:
- Агент или пайплайн собирает ваши данные.
- Manticore индексирует их в реальном времени.
- OpenSearch Dashboards отправляет запросы к Manticore по HTTP.
- Пользователи исследуют данные и создают дашборды в знакомом интерфейсе.
Заключение
Интеграция с OpenSearch Dashboards даёт пользователям Manticore удобный визуальный слой для анализа логов и исследования данных. После небольшой настройки можно искать документы в Discover, строить графики на основе поддерживаемых агрегаций и объединять их в дашборды, пока Manticore отвечает за хранение данных и выполнение запросов.
Актуальную информацию о совместимости и настройке смотрите в документации по интеграции OpenSearch Dashboards .
