# **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": "", "_type": "_doc", "_id": "", "_version": 1, "_source": { "title": "The Wind Rises", "release_date": "2013-07-20" } } ``` ### Доступ к данным Подключение к порталу самообслуживания производится с помощью веб-браузера. Для доступа к интерфейсам управления портала самообслуживания могут использоваться браузеры актуальных версий: - Google Chrome 72 и выше; - Mozilla Firefox 63 и выше. Чтобы получить доступ к данным, необходимо ввести логин (`opensearch`) и пароль. Данный раздел в дальнейшем будет дополняться информацией про аутентификацию и авторизацию доступа к данным OpenSearch. ## Работа с панелями (OpenSearch Dashboards) OpenSearch Dashboards — инструмент для визуализации данных, с помощью которого пользователи могут создавать информативные и интерактивные панели на основе данных из OpenSearch. Пользователи могут взаимодействовать с данными на дашбордах, применять фильтры и детализировать информацию для более глубокого анализа. Инструмент предоставляет различные типы визуализаций, включая графики, диаграммы и карты, чтобы визуально представлять разнообразные данные. OpenSearch Dashboards поддерживает совместную работу, что позволяет нескольким пользователям одновременно создавать и редактировать дашборды. Помимо этого, дашборды можно импортировать и экспортировать для обмена настройками и визуализациями между различными инсталляциями OpenSearch Dashboards. В составе настоящего релиза OpenSearch поставляется без преднастроенных панелей. Предполагается, что администраторы кастомизируют панели под бизнес-задачи. ### Создание пользовательских панелей с использованием различных виджетов и визуализаций Подробнее о работе с OpenSearch Dashboards см. в Руководстве администратора KeyStack и документации [OpenSearch Dashboards](https://opensearch.org/docs/latest/dashboards/index/). ## Работа с данными OpenSearch позволяет осуществлять поиск в логах по ключевым словам, фразам и полям, используя Dashboards Query Language (DQL). Интерфейс доступа к данным представлен на рисунке ниже. ![auth](Media/opensearch_discover_ui.png){.bg-warning w=200px align=center} Рисунок 4 — Интерфейс инструмента Discover, через который осуществляется доступ к данным ## Примеры запросов 1. Пример вывода всех сообщений, содержащих информацию о роутере, с id `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`: ``` "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ``` 2. Пример вывода всех сообщений об ошибках на определенном хосте `host-1`: ``` Hostname: "host-1" and log_level: ERROR ``` 3. Пример вывода всех сообщений сервиса `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](https://opensearch.org/docs/latest/dashboards/dql/). ## Добавление нового output для сборщика логов Подробнее о добавлении нового output для сборщика логов см. в Руководстве администратора KeyStack. ## Клонирование существующих виртуальных машин с кастомизацией Подробнее о клонировании с существующих виртуальных машин с кастомизацией см. в Руководстве администратора KeyStack.