OpenSearch

Описание работы с OpenSearch, панели и запросы

OpenSearch — инструмент для поиска и анализа данных в документах с открытым исходным кодом. Разработанный на основе Elasticsearch, OpenSearch предоставляет эффективное хранилище и обработку данных, а также масштабируемую архитектуру.

Основные возможности OpenSearch:

  • Полнотекстовый поиск (full text queries): OpenSearch предлагает инструменты для выполнения сложных полнотекстовых поисковых запросов.

  • Структурированные запросы (structured queries): можно использовать структурированные запросы, аналогичные SQL, для более точного и удобного извлечения данных.

  • Сложносоставные запросы (complex queries), сочетающие в себе предыдущие типы запросов.

  • Масштабируемость: OpenSearch может быть легко масштабирован для обработки как небольших, так и очень больших объемов данных.

  • Гибкая структура: использование JSON-документов для хранения данных обеспечивает гибкость в адаптации схемы к различным типам информации.

Некоторые возможности поиска в OpenSearch:

  • Поиск по индексам: можно проводить поиск как по конкретному индексу в кластере, так и по нескольким индексам.

  • Асинхронный поиск: поддерживается асинхронный поиск для обработки больших запросов, которые могут выполняться длительное время.

Кластеры и узлы

Распределенный дизайн OpenSearch подразумевает взаимодействие с несколькими кластерами OpenSearch.

Каждый кластер представляет собой набор из одного или нескольких узлов — серверов, которые хранят данные и обрабатывают поисковые запросы. В кластере из одного узла одна машина должна делать все: управлять состоянием кластера, индексировать и искать данные, а также выполнять любую предварительную обработку данных перед их индексированием. По мере роста кластера можно разделить обязанности. Узлы с быстрыми дисками и большим объемом оперативной памяти могут отлично справляться с индексацией и поиском данных, в то время как узел с достаточной мощностью процессора и маленьким диском может управлять состоянием кластера.

Индексы и документы

В OpenSearch индексы представляют собой механизм организации и хранения данных. Каждый индекс ассоциирован с набором данных, который может быть легко найден и эффективно проанализирован. Каждый индекс представляет собой коллекцию документов в формате JSON.

{
  "title": "The Wind Rises",
  "release_date": "2013-07-20"
}

Когда вы добавляете документ в индекс, OpenSearch добавляет некоторые метаданные, например, уникальный идентификатор документа (id):

{
  "_index": "<index-name>",
  "_type": "_doc",
  "_id": "<document-id>",
  "_version": 1,
  "_source": {
    "title": "The Wind Rises",
    "release_date": "2013-07-20"
  }
}

Доступ к данным

Подключение к интерфейсу OpenSearch реализовано через портал самообслуживания. Чтобы получить доступ к данным, необходимо перейти на вкладку меню “Логирование”, ввести логин (opensearch) и пароль.

Работа с панелями (OpenSearch Dashboards)

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

В составе настоящего релиза OpenSearch поставляется без преднастроенных панелей. Предполагается, что администраторы кастомизируют панели под бизнес-задачи.

Создание пользовательских панелей с использованием различных виджетов и визуализаций

Подробнее о работе с OpenSearch Dashboards см. в Руководстве администратора KeyStack и документации OpenSearch Dashboards.

Работа с данными

OpenSearch позволяет осуществлять поиск в логах по ключевым словам, фразам и полям, используя Dashboards Query Language (DQL). Интерфейс доступа к данным представлен на рисунке ниже.

auth

Интерфейс инструмента Discover, через который осуществляется доступ к данным

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

  1. Вывести все сообщения, содержащие информацию о роутере, с id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:

"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  1. Вывести все сообщения об ошибках на определенном хосте host-1:

Hostname: "host-1" and log_level: ERROR
  1. Вывести все сообщения сервиса nova-compute с хоста host-2 о ВМ с id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, исключая записи уровня INFO:

Hostname: "host-2" and programname: "nova-compute" and "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" and not log_level: INFO

Более подробно о запросах и DQL смотрите в документации OpenSearch DQL.

Добавление нового output для сборщика логов

Подробнее о добавлении нового output для сборщика логов см. в Руководстве администратора KeyStack.

Конфигурация OpenSearch

Компонент позволяет настроить тайм-аут для сессий и файла cookie. Для этого необходимо в момент конфигурации региона добавить файл по пути config/opensearch/opensearch.yml со следующими параметрами:

opensearch_security.cookie.ttl: 86400000
opensearch_security.session.ttl: 86400000
opensearch_security.session.keepalive: true

Описание параметров:

  • opendistro_security.cookie.ttl — целое число, время жизни файла cookie в миллисекундах. Для файла cookie сеанса можно установить значение 0. Значение по умолчанию — 1 час.

  • opendistro_security.session.ttl — целое число, продолжительность сеанса в миллисекундах. Если этот параметр установлен, пользователю будет предложено повторно войти в систему по истечении заданного времени, независимо от файла cookie. Значение по умолчанию — 1 час.

  • opendistro_security.session.keepalive — логическое значение: если установлено значение true, то продолжительность сеанса продлевается с помощью функции открытия файла distro_security.session.ttl при каждом запросе. Значение по умолчанию — true.

При деплое региона необходимо указать параметр KOLLA_ARGS -t opensearch.

Данный раздел в дальнейшем будет дополняться.