Как установить OpenSearch на Ubuntu 24.04

OpenSearch – это проект Amazon, основанный на сообществе и являющийся форком Elasticsearch и Kibana. Это полностью открытая поисковая система и аналитический пакет с богатыми возможностями и инновационным функционалом. Основными компонентами проекта OpenSearch являются OpenSearch (форк Elasticsearch) и OpenSearch Dashboards (форк Kibana). Оба компонента предоставляют такие возможности, как корпоративная безопасность, оповещения, машинное обучение, SQL, управление состоянием индексов и многое другое.

В этом руководстве вы узнаете, как установить OpenSearch и OpenSearch Dashboard на сервер Ubuntu 24.04. Вы также защитите OpenSearch с помощью сертификатов TLS и включите аутентификацию с помощью имени пользователя и пароля.

Добавление репозитория OpenSearch

Для начала вам нужно добавить репозитории OpenSearch и OpenSearch Dashboard в вашу систему. В этом примере мы будем использовать последнюю стабильную версию OpenSearch.

Сначала выполните приведенную ниже команду для установки основных пакетов в систему Ubuntu.

sudo apt install lsb-release ca-certificates curl gnupg2 -y

Загрузите ключ GPG для репозитория OpenSearch с помощью следующей команды.

curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring

Добавьте репозитории для OpenSearch и OpenSearch Dashboard в вашу систему с помощью следующей команды. В этом примере вы будете использовать OpenSearch 2.x стабильная версия.

echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list

echo “deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/apt stable main” | sudo tee /etc/apt/sources.list.d/opensearch-dashboards-2.x.list

Наконец, запустите команду ‘apt‘ команда ниже, чтобы обновить индекс пакетов и получить новую информацию о пакете OpenSearch.

sudo apt update

Установка OpenSearch и OpenSearch Dashboard

После добавления репозитория OpenSearch вы установите OpenSearch и OpenSearch Dashboard через менеджер пакетов APT. Затем вы запустите обе службы с помощью команды ‘systemctl‘ утилита.

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

sudo openssl rand -hex 16

Теперь выполните приведенную ниже команду для установки ‘opensearch‘ и ‘opensearch-dashboard‘ пакеты. Обязательно измените ‘OPENSEARCH_INITIAL_ADMIN_PASSWORD‘ и введите ‘Y‘, чтобы подтвердить установку.

sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD=B07e_af7e9f8fe12e@85ab797ddc1f174Dapt-get install opensearch opensearch-dashboard

После завершения установки запустите команду ‘systemctl‘ команда ниже, чтобы перезагрузить менеджер systemd и применить новые служебные файлы.

sudo systemctl daemon-reload

Теперь вы можете запустить, включить и проверить OpenSearch с помощью следующей команды.

sudo systemctl enable --now opensearch
sudo systemctl status opensearch

Ниже вы можете увидеть, что OpenSearch запущен.

проверить opensearch

Наконец, теперь вы можете запустить, включить и проверить службу OpenSearch Dashboard с помощью следующей команды.

sudo systemctl enable --now opensearch-dashboards
sudo systemctl status opensearch-dashboards

В следующем выводе вы можете увидеть ‘opensearch-dashboards‘ служба запущена.

проверьте приборную панель opensearch

Настройка OpenSearch

Установив OpenSearch, вы будете настраивать установку через ‘/etc/opensearch/opensearch.yml‘ файл. Вы также увеличите максимальный размер JVM (виртуальной памяти Java) по умолчанию для OpenSearch, если это необходимо.

Откройте стандартную конфигурацию OpenSearch ‘/etc/opensearch/opensearch.yml‘ с помощью ‘nano‘ редактор.

sudo nano /etc/opensearch/opensearch.yml

Измените следующие конфигурации OpenSearch:

  • * Измените ‘network.host‘ с вашим локальным IP-адресом
  • * Добавьте опцию ‘discovery.type‘ как ‘одноузловой‘ для запуска OpenSearch в одном режиме
  • * Установите ‘plugins.security.disabled‘ к ‘ложь
# Bind OpenSearch to the correct network interface. Use 0.0.0.0
# to include all available interfaces or specify an IP address
# assigned to a specific interface.
network.host: 192.168.10.60

# Unless you have already configured a cluster, you should set
# discovery.type to single-node, or the bootstrap checks will
# fail when you try to start the service.
discovery.type: single-node

# If you previously disabled the security plugin in opensearch.yml,
# be sure to re-enable it. Otherwise you can skip this setting.
plugins.security.disabled: false

Сохраните файл и выйдите из редактора после завершения работы.

Далее откройте конфигурацию JVM (виртуальной машины Java) ‘/etc/opensearch/jvm.options‘ с помощью ‘nano‘ редактор.

sudo nano /etc/opensearch/jvm.options

При необходимости увеличьте максимальное значение памяти по умолчанию для OpenSearch. По умолчанию используется значение ‘1 ГБ‘.

-Xms2g
-Xmx2g

Сохраните и выйдите из файла.

Наконец, запустите следующую команду ‘systemctl‘ команда для перезапуска ‘opensearch‘ и примените изменения. После этого OpenSearch будет работать на локальном IP-адресе в одиночном режиме.

sudo systemctl restart opensearch

Защита OpenSearch с помощью сертификатов TLS/SSL

Теперь, когда вы настроили OpenSearch, вам нужно настроить безопасность OpenSearch с помощью SSL/TLS сертификатов. В этом разделе вы отключите демонстрационные сертификаты, а затем сгенерируете корневые сертификаты, сертификаты администратора и сертификаты хоста/сервера.

Перед генерацией SSL-сертификатов удалите демонстрационные сертификаты из OpenSearch с помощью следующей команды.

rm -f /opt/opensearch/{esnode-key.pem,esnode.pem,kirk-key.pem,kirk.pem,root-ca.pem}

Отредактируйте конфигурацию OpenSearch ‘/etc/opensearch/opensearch.yml‘ с помощью ‘nano‘ редактор.

sudo nano /etc/opensearch/opensearch.yml

Комментарий ‘демонстрация‘ конфигурация безопасности для OpenSearch выглядит следующим образом.

отключить демонстрацию

Сохраните файл и выйдите из редактора.

Теперь создайте новую директорию ‘/etc/opensearch/certs‘ и перейдите в него. Этот каталог будет использоваться для хранения новых сертификатов для OpenSearch.

mkdir -p /etc/opensearch/certs; cd /etc/opensearch/certs

Генерация корневых сертификатов

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

openssl genrsa -out root-ca-key.pem 2048

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

openssl req -new -x509 -sha256 -key root-ca-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ROOT" -out root-ca.pem -days 730

Генерация сертификатов администратора

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

openssl genrsa -out admin-key-temp.pem 2048

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

openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem

Затем создайте новый сертификат запроса подписи (CSR) для сертификата администратора с помощью следующей команды.

openssl req -new -key admin-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=A" -out admin.csr

Теперь выполните следующую команду, чтобы подписать новый сертификат запроса на подпись (CSR) администратора корневым сертификатом.

openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730

корневой ca и admin

Генерация сертификатов хоста или сервера

Сгенерируйте закрытый ключ для хостов/серверов OpenSearch и преобразуйте сертификат в формат PKCS8.

openssl genrsa -out ubuntu24-key-temp.pem 2048
openssl pkcs8 -inform PEM -outform PEM -in ubuntu24-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out ubuntu24-key.PEM

Теперь выполните следующую команду, чтобы сгенерировать запрос на сертификат (CSR) для вашего хоста.[CN или Common Name должно соответствовать fqdn вашего хост-сервера, а не имени хоста. В этом примере fqdn для сервера – ‘ubuntu24.local‘.

openssl req -new -key ubuntu24-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ubuntu24.local" -out ubuntu24.csr

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

echo 'subjectAltName=DNS:ubuntu24.local' > ubuntu24.ext

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

openssl x509 -req -in ubuntu24.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out ubuntu24.pem -days 730 -extfile ubuntu24.ext

сертификат сервера

Настройка сертификатов

Удалите временные сертификаты, CSR (запросы на сертификаты) для администратора и хоста, а также файл расширения со следующими параметрами.

rm *temp.pem *csr *ext
ls

Теперь преобразуйте файл ‘root-ca.pem‘ сертификат в ‘root-ca.crt‘ файл с помощью следующей команды.

openssl x509 -outform der -in root-ca.pem -out root-ca.crt

После этого скопируйте файл ‘root-ca.crt‘ сертификат в ‘/usr/local/share/ca-certificates‘ каталог и загрузите корневой сертификат на сервер.

sudo cp root-ca.crt /usr/local/share/ca-certificates
sudo update-ca-certificates

добавить корневой сертификат

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

sudo chown -R opensearch:opensearch /etc/opensearch/certs
sudo chmod 0700 /etc/opensearch/certs
sudo chmod 0600 /etc/opensearch/certs/*.pem
sudo chmod 0600 /etc/opensearch/certs/*.crt

Добавление сертификатов в OpenSearch

После генерации TLS-сертификатов для OpenSearch вам нужно добавить новую конфигурацию в ‘opensearch.yml‘ файл. В этом случае вы добавите новую конфигурацию в ‘opensearch.yml’ с помощью bash-скрипта.

Прежде чем добавлять сертификаты на сервер OpenSearch, выполните приведенную ниже команду для создания резервной копии ‘opensearch.yml‘ файл и настройте свой сервер fqdn.

sudo cp /etc/opensearch/opensearch.yml /etc/opensearch/opensearch.yml.orig
sudo hostnamectl set-hostname ubuntu24.local

Теперь создайте новый файл ‘add-cert.sh‘ файл с ‘nano‘ редактор.

nano add-cert.sh

Вставьте в файл следующие конфигурации. Этим вы добавите новые конфигурации в файл конфигурации OpenSearch ‘opensearch.yml

#! /bin/bash

# Before running this script, make sure to replace the CN in the
# node’s distinguished name with a real DNS A record.

echo “plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/ubuntu24.pem” | sudo tee -a /etc/opensearch/opensearch.yml
echo “plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/ubuntu24-key.pem” | sudo tee -a /etc/opensearch/opensearch.yml
echo “plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem” | sudo tee -a /etc/opensearch/opensearch.yml
echo “plugins.security.ssl.http.enabled: true” | sudo tee -a /etc/opensearch/opensearch.yml
echo “plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/ubuntu24.pem” | sudo tee -a /etc/opensearch/opensearch.yml
echo “plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/ubuntu24-key.pem” | sudo tee -a /etc/opensearch/opensearch.yml
echo “plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem” | sudo tee -a /etc/opensearch/opensearch.yml
echo “plugins.security.allow_default_init_securityindex: true” | sudo tee -a /etc/opensearch/opensearch.yml
echo “plugins.security.authcz.admin_dn:” | sudo tee -a /etc/opensearch/opensearch.yml
echo ” – ‘CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'” | sudo tee -a /etc/opensearch/opensearch.yml
echo “plugins.security.nodes_dn:” | sudo tee -a /etc/opensearch/opensearch.yml
echo ” – ‘CN=ubuntu24.hwdomain.lan,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'” | sudo tee -a /etc/opensearch/opensearch.yml
echo “plugins.security.audit.type: internal_opensearch” | sudo tee -a /etc/opensearch/opensearch.yml
echo “plugins.security.enable_snapshot_restore_privilege: true” | sudo tee -a /etc/opensearch/opensearch.yml
echo “plugins.security.check_snapshot_restore_write_privileges: true” | sudo tee -a /etc/opensearch/opensearch.yml
echo “plugins.security.restapi.roles_enabled: [\”all_access\”, \”security_rest_api_access\”]” | sudo tee -a /etc/opensearch/opensearch.yml

Сохраните файл и выйдите из редактора после завершения работы.

Теперь сделайте в файле ‘add-cert.sh‘ файл исполняемым и выполните его с помощью следующей команды. Новые конфигурации будут добавлены в файл ‘opensearch.yml’.

chmod +x add-cert.sh
./add-cert.sh

добавить новую конфигурацию

Защита OpenSearch с помощью парольной аутентификации

На данном этапе вы настроили OpenSearch с сертификатами SSL/TLS, и на следующем этапе вы настроите аутентификацию с помощью пароля для OpenSearch. Вы установите двух пользователей, которые будут использоваться для входа в OpenSearch и интеграции в OpenSearch Dashboard.

Перейдите на страницу ‘/usr/share/opensearch/plugins/opensearch-security/tools‘ каталог и выполните команду ‘hash.sh‘ сценарий для генерации нового пароля для OpenSearch. Выполните скрипт ‘hash.sh‘ дважды, чтобы сгенерировать два пароля для OpenSearch и OpenSearch Dashboard. Также не забудьте скопировать сгенерированный пароль в заметку.

cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh

Теперь откройте файл ‘/etc/opensearch/opensearch-security/internal_users.yml‘ со следующим ‘nano‘ редактор.

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

Изменение хэш-пароля для пользователя ‘admin‘ и ‘kibanaserver‘ с вашим паролем ранее. На экране появится ‘admin‘ пользователь будет использоваться для входа в OpenSearch Dashboard, ‘kibanaserver‘ пользователь будет использоваться для связи между OpenSearch и OpenSearch Dashboard.

admin:
hash: "$2y$12$zPtsgbrpfmInPRuDEKvDKetuzhUzsQWyCpE9foT1uun5RTMW51p9K"
reserved: true
backend_roles:
- "admin"
description: "Admin user"

kibanaserver:
hash: “$2y$12$zPtsgbrpfmInPRuDEKvDKetuzhUzsQWyCpE9foT1uun5RTMW51p9K”
reserved: true
description: “Demo OpenSearch Dashboards user”

Сохраните файл и выйдите из редактора после завершения работы.

Теперь выполните приведенную ниже команду, чтобы перезапустить ‘opensearch‘ и примените изменения.

sudo systemctl restart opensearch

После перезапуска OpenSearch выполните приведенную ниже команду, чтобы применить ваши SSL-сертификаты к OpenSearch.

cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h 192.168.10.60 -p 9200 -cd /etc/opensearch/opensearch-security/ -cacert /etc/opensearch/certs/root-ca.pem -cert /etc/opensearch/certs/admin.pem -key /etc/opensearch/certs/admin-key.pem -icl -nhnv

Если все прошло успешно, вы увидите результат, подобный этому:

добавить ceerts

Наконец, запустите команду ‘curl‘ команда ниже, чтобы проверить аутентификацию на сервере OpenSearch.

curl https://192.168.10.60:9200 -u admin:password -k
curl https://node-rock1:9200 -u kibanaserver:kibanapass -k

После успешной проверки вы сможете получить доступ к OpenSearch с вашим именем пользователя и паролем по протоколу HTTPS.

доступ к opensearch

Настройка панели OpenSearch Dashboard

После настройки парольной аутентификации вам предстоит настроить панель OpenSearch Dashboard, отредактировав файл ‘opensearch-dashboard,yml‘.

Откройте конфигурацию для OpenSearch Dashboard ‘/etc/opensearch-dashboards/opensearch-dashboard.yml‘ с ‘nano‘ редактор.

sudo nano /etc/opensearch-dashboards/opensearch-dashboard.yml

Введите свой локальный IP-адрес в ‘server.host‘, как показано ниже:

server.host: "192.168.10.60"

Убедитесь, что вы изменили хост, имя пользователя и пароль OpenSearch на свои данные.

opensearch.hosts: ["https://192.168.10.60:9200"]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanapass

Сохраните файл и выйдите из редактора.

Теперь запустите программу ‘systemctl‘ команда ниже, чтобы перезапустить OpenSearch Dashboard и применить ваши изменения. После этого OpenSearch Dashboard должна быть подключена к OpenSearch.

sudo systemctl restart opensearch-dashboards

Далее откройте веб-браузер и зайдите на сайт http://192.168.10.60:5601. Если установка прошла успешно, вы увидите страницу входа в OpenSearch Dashboard.

Введите свой логин и пароль администратора, затем нажмите кнопку ‘Войти‘.

вход

После входа в систему выберите опцию ‘Добавить данные‘, чтобы добавить новые данные, или нажмите кнопку ‘Исследовать самостоятельно‘ вариант.

изучить свой собственный

Чтобы убедиться в связи между OpenSearch и OpenSearch Dashboard, необходимо проверить статус OpenSearch на панели управления.

На странице ‘Менеджмент‘ раздел, нажмите ‘Dev Tools‘.

инструменты разработчика

В разделе консоли введите ‘GET /‘ и нажмите кнопку воспроизведения. Если подключение к OpenSearch и OpenSearch Dashboard прошло успешно, вы увидите следующую страницу.

запрос

Заключение

Поздравляем! Вы установили OpenSearch и OpenSearch Dashboard на сервер Ubuntu 24.04. OpenSearch работает в одиночном режиме, а установка защищена с помощью HTTPS. Наконец, вы настроили аутентификацию для OpenSearch и интегрировали OpenSearch с OpenSearch Dashboard.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *