Установка OpenSearch в CentOS

centos Applications

Проект OpenSearch, созданный компанией Amazon, представляет собой форк поискового проекта, основанного на старых версиях Elasticsearch и Kibana. Эти проекты были созданы в первую очередь для поддержки Amazon OpenSearch Service (ранее Amazon Elasticsearch Service).

Что такое OpenSearch

Больше информации об OpenSearch

Начиная с версии 7.11 (в феврале 2021 года), Elastic изменил лицензию продуктов на Elastic License v2 (ELv2) и SSPL, в связи с этим Amazon создал собственный форк на базе Elasticsearch 7.10.

OpenSearch – это распределенный, управляемый сообществом, лицензированный Apache 2.0, со 100 % открытым исходным кодом комплект поисковых и аналитических ресурсов для различных примеров использования, таких как:

  • Мониторинг приложений в режиме реального времени
  • Анализ журналов
  • Поиск по веб-сайтам

OpenSearch представляет собой легко масштабируемую систему для обеспечения быстрого доступа и реагирования на большие объемы данных.

OpenSearch работает на базе поисковой библиотеки Apache Lucene и поддерживает ряд поисковых и аналитических возможностей, таких как поиск по методу k-ближайших соседей (KNN), SQL, обнаружение аномалий, Machine Learning Commons, Trace Analytics, полнотекстовый поиск и многое другое.

Установка OpenSearch в CentOS

Перед началом установки, необходимо изменить параметры ядра Linux следующим образом

Устанавливаем Java

sudo yum install java

Добавляем репозиторий Opensearch в CentOS

репозиторий Opensearch в CentOS

Рекомендуется, но не обязательно, формируем кеш yum командой ниже

yum makecache

И устанавливаем opensearch

yum install opensearch

Дожидаемся окончания установки. Нам остается только запустить службу opensearch

Добавление в автоматический запуск opensearch

Проверим статус службы

sudo systemctl status opensearch

Так  проверяем доступность API, логин и пароль по умолчанию admin:admin

curl -X GET https://localhost:9200 -u 'admin:admin' --insecure

так же, проверяем список доступных (установленных) плагинов

curl -X GET https://localhost:9200/_cat/plugins?v -u 'admin:admin' --insecure

Настройка OpenSearch

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

Следующие рекомендуемые настройки позволят вам:

  • Привязать OpenSearch к IP-адресу или сетевому интерфейсу на хосте.
  • Установить начальный и максимальный размеры кучи JVM.
  • Определить переменную окружения, указывающую на поставляемый JDK.
  • Настроить собственные сертификаты TLS - сторонний центр сертификации (ЦС) не требуется.
  • Создайте пользователя admin с пользовательским паролем.

Если вы запустили сценарий демонстрации безопасности, то вам нужно будет вручную перенастроить измененные параметры. Прежде чем продолжить, обратитесь к разделу "Конфигурация безопасности".

Прежде чем изменять какие-либо файлы конфигурации, всегда полезно сохранить резервную копию перед внесением изменений. Резервный файл может быть использован для устранения любых проблем, вызванных неправильной конфигурацией.

Откройте файл opensearch.yml.

добавьте следующие строки:

Сохраните изменения и закройте файл.

Укажите начальный и максимальный размеры кучи JVM.

Откройте файл jvm.options.

Измените значения начального и максимального размеров кучи. В качестве отправной точки, вы должны установить эти значения на половину доступной системной памяти. Для выделенных хостов это значение может быть увеличено в зависимости от требований рабочего процесса.
Например, если хост-машина имеет 8 ГБ памяти, то начальный и максимальный размеры кучи следует установить на 4 ГБ:

Сохраните изменения и закройте файл.

Настройка TLS

Сертификаты TLS обеспечивают дополнительную безопасность вашего кластера, позволяя клиентам подтверждать идентичность узлов и шифровать трафик между клиентом и узлом. Для получения дополнительной информации обратитесь к разделам Настройка сертификатов TLS и Генерация сертификатов, которые включены в документацию Security Plugin. Для работы в среде разработки обычно достаточно самоподписанных сертификатов. В этом разделе мы расскажем вам об основных шагах, необходимых для создания собственных TLS сертификатов и их применения к вашему хосту OpenSearch.

Перейдите в каталог, где будут храниться сертификаты.

Удалите демонстрационные сертификаты.

Сгенерируйте корневой сертификат. Это то, что вы будете использовать для подписи других сертификатов.

Используйте закрытый ключ для создания самоподписанного корневого сертификата. Обязательно замените аргументы, переданные в -subj, чтобы они отражали ваш конкретный хост.

Далее создайте сертификат администратора. Этот сертификат используется для получения повышенных прав для выполнения административных задач, связанных с плагином безопасности.

Создайте закрытый ключ для сертификата администратора.

Преобразуйте закрытый ключ в PKCS#8.

Создайте запрос на подписание сертификата (CSR). Общее имя (CN) "A" является приемлемым, поскольку этот сертификат используется для аутентификации повышенного доступа и не привязан к хосту.

Подпишите сертификат администратора с помощью корневого сертификата и закрытого ключа, которые вы создали ранее.

Создайте сертификат для конфигурируемого узла.

Преобразуйте закрытый ключ в PKCS#8.

Создайте CSR и замените аргументы, переданные в -subj, чтобы они отражали ваш конкретный хост.

# CN должен соответствовать записи DNS A для хоста - не используйте имя хоста.

Создайте файл расширения, определяющий DNS-имя SAN для узла. Этот должно соответствовать записи DNS A хоста.

Подпишите сертификат узла с помощью корневого сертификата и закрытого ключа, которые вы создали ранее.

Удалите временные файлы, которые больше не нужны.

Убедитесь, что оставшиеся сертификаты принадлежат пользователю opensearch.

Добавьте эти сертификаты в opensearch.yml, как описано в разделе Генерация сертификатов. Опытные пользователи также могут добавить настройки с помощью сценария:

(Необязательно) Добавьте доверие для самоподписанного корневого сертификата.

Скопируйте корневой сертификат в нужный каталог

Добавить доверие

Настройка пользователя

Пользователи определяются и аутентифицируются OpenSearch различными способами. Один из способов, не требующий дополнительной инфраструктуры бэкенда, заключается в ручной настройке пользователей в файле internal_users.yml. Дополнительную информацию о настройке пользователей смотрите в разделе Файлы YAML. Следующие шаги объясняют, как удалить всех демонстрационных пользователей, кроме пользователя admin, и как заменить пароль admin по умолчанию с помощью скрипта.

Перейдите в каталог инструментов плагинов безопасности.

Запустите файл hash.sh для генерации нового пароля. Этот сценарий завершится неудачно, если не определен путь к JDK.

Введите нужный пароль в подсказке и запишите хэш на выходе.

 OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh

Откройте файл internal_users.yml.

Удалите всех демо-пользователей, кроме admin, и замените хэш на результат, полученный с помощью hash.sh в предыдущем шаге. Файл должен выглядеть так, как показано в следующем примере:

/etc/opensearch/opensearch-security/internal_users.yml

Применить изменения

Теперь, когда сертификаты TLS установлены, а демо-пользователи удалены или им присвоены новые пароли, остается последний шаг - применить изменения в конфигурации. Этот последний шаг настройки требует вызова securityadmin.sh, пока OpenSearch запущен на хосте.

OpenSearch должен быть запущен, чтобы securityadmin.sh применил изменения. Если вы внесли изменения в opensearch.yml, перезапустите OpenSearch.

Откройте отдельный термина на хосте и перейдите в каталог, содержащий securityadmin.sh.

Запустите сценарий. Определения аргументов, которые необходимо передать, см. в разделе Применить изменения с помощью securityadmin.sh.

Вы можете опустить переменную окружения, если вы объявили ее в своем $PATH.

Заключение

В данной статье мы обьяснили как установить и настроить OpenSearch в CentOS, которыя является альтернативой Elasticsearch под лицензией Apache 2.0, со 100 % открытым исходным кодом.

Avatar for Gnostis
Gnostis
Добавить комментарий