⚠️ Эта страница автоматически переведена, и перевод может быть несовершенным.
blog-post

Исследуйте данные Manticore с помощью OpenSearch Dashboards

View as markdown

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

Main view

Интеграция позволяет оставить 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.

  1. Откройте Management > Dashboards Management.
  2. Перейдите в Index Patterns и выберите Create index pattern.
  3. Введите app_events.
  4. Выберите event_time в качестве поля времени.
  5. Сохраните шаблон индекса.

Теперь поля 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):

  • terms
  • histogram
  • date_histogram
  • range
  • date_range

Поддерживаются следующие метрические агрегации:

  • max
  • min
  • sum
  • avg

В качестве первого графика создайте столбчатую диаграмму количества событий по сервисам:

  1. Используйте Count в качестве метрики.
  2. Добавьте группировку Terms по полю service.
  3. Примените изменения.
  4. Сохраните визуализацию под названием События по сервисам.

Также можно создать график временного ряда с 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.

Итоговый процесс выглядит просто:

  1. Агент или пайплайн собирает ваши данные.
  2. Manticore индексирует их в реальном времени.
  3. OpenSearch Dashboards отправляет запросы к Manticore по HTTP.
  4. Пользователи исследуют данные и создают дашборды в знакомом интерфейсе.

Заключение

Интеграция с OpenSearch Dashboards даёт пользователям Manticore удобный визуальный слой для анализа логов и исследования данных. После небольшой настройки можно искать документы в Discover, строить графики на основе поддерживаемых агрегаций и объединять их в дашборды, пока Manticore отвечает за хранение данных и выполнение запросов.

Актуальную информацию о совместимости и настройке смотрите в документации по интеграции OpenSearch Dashboards .

Установить Manticore Search

Установите Manticore Search одной командой в Linux или macOS:

curl https://manticoresearch.com | sh

Для расширенных вариантов установки см. полное руководство по установке и документацию .

Установить Manticore Search