Установка OpenSearch · 26 min read · Oct 12, 2025

Как установить OpenSearch на Debian 12

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

Этот учебник покажет вам, как установить OpenSearch на сервер Debian 12. Вы также узнаете, как защитить вашу установку с помощью пользовательских TLS-сертификатов и включить аутентификацию в OpenSearch.

Предварительные требования

  • Сервер с установленным Debian 12 и минимум 4 ГБ ОЗУ.

  • Пользователь, не являющийся root, с правами sudo.

  • Упрощенный брандмауэр (UFW) включен и работает.

  • Полное доменное имя (FQDN), например opensearch.example.com, указывающее на ваш сервер. Это полезно, если вы хотите обслуживать OpenSearch Dashboards через SSL с помощью прокси-сервера.

  • Все обновлено. $ sudo apt update && sudo apt upgrade

  • Для учебника и работы Craft CMS требуется несколько основных пакетов. Некоторые из них уже могут быть на вашем сервере. $ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y

Шаг 1 - Настройка брандмауэра

Первый шаг перед установкой любых пакетов — настроить брандмауэр для разрешения HTTP и HTTPS соединений.

Проверьте статус брандмауэра.

$ sudo ufw status

Вы должны увидеть что-то похожее на следующее.

Статус: активен

Кому                         Действие      Откуда
--                         ------      ----
OpenSSH                    ALLOW       Везде
OpenSSH (v6)               ALLOW       Везде (v6)

Разрешите порты HTTP и HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Проверьте статус снова, чтобы подтвердить.

$ sudo ufw status
Статус: активен

Кому                         Действие      Откуда
--                         ------      ----
OpenSSH                    ALLOW       Везде
80/tcp                     ALLOW       Везде
443/tcp                    ALLOW       Везде
OpenSSH (v6)               ALLOW       Везде (v6)
80/tcp (v6)                ALLOW       Везде (v6)
443/tcp (v6)               ALLOW       Везде (v6)

Шаг 2 - Подготовка системы

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

Сначала проверьте, включена ли у вас swap-память.

$ free -m

Если у вас включен swap, вы должны увидеть аналогичный вывод.

               total        used        free      shared  buff/cache   available
Mem:            7945        1083        6492          34         636        6861
Swap:           4242           0        4242

Выполните следующие команды, чтобы отключить пространство swap навсегда.

$ sudo swapoff -a
$ sudo sed -i '/ swap / s/^\(.*\)$/#
1/g' /etc/fstab

Проверьте swap-память снова, и она должна показать следующее.

               total        used        free      shared  buff/cache   available
Mem:            7945        1113        6449          37         651        6831
Swap:              0           0           0

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

Проверьте текущее значение переменной vm.max_map_count.

$ sysctl -n vm.max_map_count
65530

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

$ sudo sysctl -w vm.max_map_count=262144

Это будет работать только до перезагрузки системы. Чтобы сделать это значение постоянным, добавьте строку vm.max_map_count=262144 в файл /etc/sysctl.conf, используя следующую команду.

$ echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf

Вы можете сделать изменение постоянным, перезагрузив систему или выполнив следующую команду.

$ sudo sysctl -p

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

Выполните следующую команду, чтобы установить имя хоста.

$ sudo hostnamectl set-hostname opensearch

Добавьте FQDN (полное доменное имя) в файл /etc/hosts. Здесь мы сопоставляем имя хоста opensearch с доменным именем opensearch.example.com и указываем его на IP-адрес сервера. Замените в команде ниже на IP-адрес вашего сервера.

$ echo "  opensearch.example.com  opensearch" | sudo tee -a /etc/hosts

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

$ hostname
opensearch
$ hostname -f
opensearch.example.com

Это завершает процесс оптимизации нашей системы для работы с OpenSearch.

Шаг 3 - Установка OpenSearch

Импортируйте GPG-ключ OpenSearch, используемый для подписи пакета установки.

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

Создайте файл репозитория APT для OpenSearch.

$ 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

Обновите список репозиториев системы.

$ sudo apt update

Проверьте все доступные версии OpenSearch.

$ sudo apt list -a opensearch
Listing... Done
opensearch/stable 2.12.0 amd64
opensearch/stable 2.11.1 amd64
opensearch/stable 2.11.0 amd64
opensearch/stable 2.10.0 amd64
opensearch/stable 2.9.0 amd64
opensearch/stable 2.8.0 amd64
opensearch/stable 2.7.0 amd64
opensearch/stable 2.6.0 amd64
opensearch/stable 2.5.0 amd64

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

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

$ sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD= apt install opensearch

Если вы увидите следующее предупреждение во время установки, вы можете смело игнорировать его.

......
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
......

Или вы можете установить конкретную версию.

$ sudo apt install opensearch=2.11.1

Перезагрузите демон службы.

$ sudo systemctl daemon-reload

Включите службу OpenSearch.

$ sudo systemctl enable opensearch

Запустите службу OpenSearch.

$ sudo systemctl start opensearch

Проверьте статус службы OpenSearch.

$ sudo systemctl status opensearch

Вы должны получить следующий вывод.

? opensearch.service - OpenSearch
     Loaded: loaded (/lib/systemd/system/opensearch.service; enabled; preset: enabled)
     Active: active (running) since Sat 2024-03-02 06:37:01 UTC; 5s ago
       Docs: https://opensearch.org/
   Main PID: 31109 (java)
      Tasks: 75 (limit: 4652)
     Memory: 1.3G
        CPU: 1min 3.128s
     CGroup: /system.slice/opensearch.service
             ??31109 /usr/share/opensearch/jdk/bin/java -Xshare:auto -Dopensearch.networkaddress.cache.ttl=60 -Dopensearch.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true...

Шаг 4 - Тестирование OpenSearch

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

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

Вы должны получить аналогичный вывод.

{
  "name" : "opensearch",
  "cluster_name" : "opensearch",
  "cluster_uuid" : "3oFvYn96St2MOpDP3Sf29g",
  "version" : {
    "distribution" : "opensearch",
    "number" : "2.12.0",
    "build_type" : "deb",
    "build_hash" : "2c355ce1a427e4a528778d4054436b5c4b756221",
    "build_date" : "2024-02-20T02:18:31.541484890Z",
    "build_snapshot" : false,
    "lucene_version" : "9.9.2",
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

Запросите конечную точку плагинов OpenSearch, чтобы увидеть список доступных плагинов.

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

Вы также можете использовать следующую команду для этого же.

$ /usr/share/opensearch/bin/opensearch-plugin list

Вы должны получить аналогичный вывод.

name       component                            version
opensearch opensearch-alerting                  2.12.0.0
opensearch opensearch-anomaly-detection         2.12.0.0
opensearch opensearch-asynchronous-search       2.12.0.0
opensearch opensearch-cross-cluster-replication 2.12.0.0
opensearch opensearch-custom-codecs             2.12.0.0
opensearch opensearch-flow-framework            2.12.0.0
opensearch opensearch-geospatial                2.12.0.0
opensearch opensearch-index-management          2.12.0.0
opensearch opensearch-job-scheduler             2.12.0.0
opensearch opensearch-knn                       2.12.0.0
opensearch opensearch-ml                        2.12.0.0
opensearch opensearch-neural-search             2.12.0.0
opensearch opensearch-notifications             2.12.0.0
opensearch opensearch-notifications-core        2.12.0.0
opensearch opensearch-observability             2.12.0.0
opensearch opensearch-performance-analyzer      2.12.0.0
opensearch opensearch-reports-scheduler         2.12.0.0
opensearch opensearch-security                  2.12.0.0
opensearch opensearch-security-analytics        2.12.0.0
opensearch opensearch-skills                    2.12.0.0
opensearch opensearch-sql                       2.12.0.0

Вы можете установить дополнительные плагины, используя следующую команду.

$ /usr/share/opensearch/bin/opensearch-plugin install 

Вы можете найти список доступных плагинов OpenSearch на их официальном сайте.

Шаг 5 - Настройка OpenSearch

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

OpenSearch хранит свою конфигурацию в файле /etc/opensearch/opensearch.yml. Откройте его для редактирования.

$ sudo nano /etc/opensearch/opensearch.yml

Найдите строку #network.host: 192.168.0.1 и раскомментируйте ее, удалив хеш (#) перед ней и изменив ее значение, как показано. Это привязывает OpenSearch ко всем доступным интерфейсам. Вы также можете ввести конкретный IP, чтобы привязать его к конкретному интерфейсу.

# Установите адрес привязки на конкретный IP (IPv4 или IPv6):
#
network.host: 0.0.0.0

Добавьте следующие строки в конец файла.

# Если вы еще не настроили кластер, вы должны установить
# discovery.type в single-node, иначе проверки загрузки
# не пройдут, когда вы попытаетесь запустить службу.
discovery.type: single-node

# Если вы ранее отключили плагин безопасности в opensearch.yml,
# обязательно включите его снова. В противном случае вы можете пропустить эту настройку.
plugins.security.disabled: false

Поскольку мы устанавливаем на одном сервере, мы установили discovery.type в single-node. Установка plugins.security.disabled в false включает плагин безопасности OpenSearch.

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Нам также нужно указать начальные и максимальные размеры кучи JVM (Java Virtual Memory). Эта настройка зависит от размера ОЗУ вашего сервера. Например, мы используем сервер с 4 ГБ ОЗУ, поэтому устанавливаем размер кучи на 3 ГБ.

Создайте и откройте файл heapsize.options в каталоге /etc/opensearch/jvm.options.d для редактирования. Он перезапишет значение по умолчанию, установленное в файле /etc/opensearch/jvm.options.

$ sudo nano /etc/opensearch/jvm.options.d/heapsize.options

Добавьте в него следующие строки.

-Xms3g
-Xmx3g

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Перезапустите службу OpenSearch, чтобы применить изменения.

$ sudo systemctl restart opensearch

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

$ curl -sS "https://localhost:9200/_cat/nodes?h=heap*&v" -u 'admin:' --insecure

Вы должны получить следующий вывод.

heap.current heap.percent heap.max
     345.5mb           11      3gb

Шаг 6 - Настройка TLS для OpenSearch

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

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

Все сертификаты OpenSearch хранятся в каталоге /etc/opensearch. Первый шаг — удалить сертификаты по умолчанию, установленные во время установки OpenSearch.

Перейдите в каталог OpenSearch.

$ cd /etc/opensearch

Удалите сертификаты по умолчанию.

$ sudo rm -f *.pem

Откройте файл конфигурации OpenSearch для редактирования.

$ sudo nano opensearch.yml

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

######## Начало конфигурации демонстрации безопасности OpenSearch ########
# ПРЕДУПРЕЖДЕНИЕ: пересмотрите все строки ниже, прежде чем переходить в производство
#plugins.security.ssl.transport.pemcert_filepath: esnode.pem
#plugins.security.ssl.transport.pemkey_filepath: esnode-key.pem
#plugins.security.ssl.transport.pemtrustedcas_filepath: root-ca.pem
#plugins.security.ssl.transport.enforce_hostname_verification: false
#plugins.security.ssl.http.enabled: true
#plugins.security.ssl.http.pemcert_filepath: esnode.pem
#plugins.security.ssl.http.pemkey_filepath: esnode-key.pem
#plugins.security.ssl.http.pemtrustedcas_filepath: root-ca.pem
#plugins.security.allow_unsafe_democertificates: true
#plugins.security.allow_default_init_securityindex: true
#plugins.security.authcz.admin_dn: ['CN=kirk,OU=client,O=client,L=test,C=de']
#plugins.security.audit.type: internal_opensearch
#plugins.security.enable_snapshot_restore_privilege: true
#plugins.security.check_snapshot_restore_write_privileges: true
#plugins.security.restapi.roles_enabled: [all_access, security_rest_api_access]
#plugins.security.system_indices.enabled: true
#plugins.security.system_indices.indices: [.plugins-ml-config, .plugins-ml-connector,
#  .plugins-ml-model-group, .plugins-ml-model, .plugins-ml-task, .plugins-ml-conversation-meta,
#  .plugins-ml-conversation-interactions, .plugins-ml-memory-meta, .plugins-ml-memory-message,
#  .opendistro-alerting-config, .opendistro-alerting-alert*, .opendistro-anomaly-results*,
#  .opendistro-anomaly-detector*, .opendistro-anomaly-checkpoints, .opendistro-anomaly-detection-state,
#  .opendistro-reports-*, .opensearch-notifications-*, .opensearch-notebooks, .opensearch-observability,
#  .ql-datasources, .opendistro-asynchronous-search-response*, .replication-metadata-store,
#  .opensearch-knn-models, .geospatial-ip2geo-data*, .plugins-flow-framework-config,
#  .plugins-flow-framework-templates, .plugins-flow-framework-state]
#node.max_local_storage_nodes: 3
######## Конец конфигурации демонстрации безопасности OpenSearch ########

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Далее создайте каталог для хранения сертификатов внутри каталога /etc/opensearch.

$ sudo mkdir /etc/opensearch/certs

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

$ sudo chown $USER:$USER /etc/opensearch/certs -R

Перейдите в каталог сертификатов.

$ cd /etc/opensearch/certs

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

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

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

Сгенерируйте самоподписанный корневой сертификат CA. Мы используем параметр -subj, чтобы предоставить информацию, которая встраивается в сертификат. Если вы не используете флаг -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

Вы можете изменить информацию в соответствии с вашим конкретным хостом.

Переменные в параметре -subj означают следующее.

C = Название страны (2-буквенный код), ST = Название штата или провинции (полное название), L = Название местности (например, город), O = Название организации, OU = Название организационного подразделения (например, отдел), CN = Общее имя (например, FQDN сервера)

Ваш корневой сертификат теперь активен.

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

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

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

Преобразуйте закрытый ключ в формат PKCS#8 для использования в Java, используя совместимый с PKCS#12 алгоритм (3DES).

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

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

$ 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
Сертификат запроса самоподписан
subject=C = CA, ST = ONTARIO, L = TORONTO, O = ORG, OU = UNIT, CN = A

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

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

$ openssl genrsa -out node1-key-temp.pem 2048

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

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

Создайте новый CSR для сертификата узла из закрытого ключа. Убедитесь, что вы изменили значение переменной CN на имя хоста вашего узла. Этот сертификат привязан к вашим хостам, и он должен соответствовать имени хоста или IP-адресу узла.

$ openssl req -new -key node1-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=opensearch.example.com" -out node1.csr

Создайте файл расширения SAN (Subject Alternative Name), который содержит имя хоста узла или FQDN или IP-адрес.

$ sh -c 'echo subjectAltName=DNS:opensearch.example.com > node1.ext'

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

$ openssl x509 -req -in node1.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node1.pem -days 730 -extfile node1.ext
Сертификат запроса самоподписан
subject=C = CA, ST = ONTARIO, L = TORONTO, O = ORG, OU = UNIT, CN = opensearch.example.com

Подготовка сертификатов для установки

Удалите любые временные сертификаты, CSR и файл расширения SAN.

$ rm -f *temp.pem *csr *ext

Далее мы установим корневой сертификат CA на сервер. Для этого преобразуйте корневой сертификат 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/

Добавьте корневой сертификат CA на ваш сервер Debian, используя следующую команду.

$ sudo update-ca-certificates

Вы должны увидеть следующий вывод ( 1 добавлено), подтверждающий, что корневой сертификат CA добавлен в вашу систему.

Обновление сертификатов в /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
rehash: warning: skipping root-ca.pem,it does not contain exactly one certificate or CRL
1 added, 0 removed; done.
Запуск хуков в /etc/ca-certificates/update.d...
done.

Измените владельца каталога обратно на пользователя opensearch.

$ sudo chown opensearch:opensearch /etc/opensearch/certs -R

Измените разрешения на каталог на 0700.

$ sudo chmod 0700 /etc/opensearch/certs

Измените разрешения на сертификаты на 0600.

$ sudo chmod 0600 /etc/opensearch/certs/{admin-key,admin,node1-key,node1,root-ca-key,root-ca}.pem
$ sudo chmod 0600 /etc/opensearch/certs/root-ca.crt

Шаг 7 - Установка TLS в OpenSearch

Теперь, когда все сертификаты сгенерированы и настроены, пришло время установить и добавить сертификаты в вашу установку OpenSearch.

Первый шаг — создать bash-скрипт, который добавит все созданные сертификаты и настройки плагина безопасности TLS в файл конфигурации OpenSearch (/etc/opensearch/opensearch.yml).

Создайте файл с именем add-opensearch-tls.sh и откройте его для редактирования.

$ cd ~
$ nano add-opensearch-tls.sh

Вставьте в него следующий код.

#! /bin/bash

# Перед запуском этого скрипта убедитесь, что вы заменили CN в
# отличительном имени узла на реальную DNS A запись.

echo "plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-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/node1.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-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=opensearch.example.com,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

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Сделайте файл исполняемым.

$ chmod +x add-opensearch-tls.sh

Запустите скрипт.

$ ./add-opensearch-tls.sh

Вы должны получить следующий вывод.

plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.allow_default_init_securityindex: true
plugins.security.authcz.admin_dn:
  - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn:
  - 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.audit.type: internal_opensearch
plugins.security.enable_snapshot_restore_privilege: true
plugins.security.check_snapshot_restore_write_privileges: true
plugins.security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]

Откройте файл /etc/opensearch/opensearch.yml, чтобы проверить, были ли применены ваши настройки.

$ sudo nano /etc/opensearch/opensearch.yml

Прокрутите вниз до конца файла, и вы должны увидеть следующее.

# Если вы ранее отключили плагин безопасности в opensearch.yml,
# обязательно включите его снова. В противном случае вы можете пропустить эту настройку.
plugins.security.disabled: false
....
plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.allow_default_init_securityindex: true
plugins.security.authcz.admin_dn:
  - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn:
  - 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.audit.type: internal_opensearch
plugins.security.enable_snapshot_restore_privilege: true
plugins.security.check_snapshot_restore_write_privileges: true
plugins.security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]

Когда вы будете удовлетворены, сохраните файл, нажав Ctrl + X.

Шаг 8 - Создание пользователя OpenSearch

На этом этапе мы удалим всех демонстрационных пользователей, кроме пользователя admin, и заменим пароль по умолчанию для admin, используя скрипт.

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

$ cd /usr/share/opensearch/plugins/opensearch-security/tools

Запустите скрипт hash.sh, чтобы сгенерировать новый пароль.

$ ./hash

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

************************************************************************
 Этот инструмент будет устаревать в следующем крупном релизе OpenSearch 
 https://github.com/opensearch-project/security/issues/1755           
**********************************************************************
ПРЕДУПРЕЖДЕНИЕ: ни OPENSEARCH_JAVA_HOME, ни JAVA_HOME не установлены, будет использоваться
./hash.sh: line 35: java: command not found

Запустите команду снова, объявив переменную окружения OPENSEARCH_JAVA_HOME с местоположением JDK.

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

Вы получите аналогичный вывод.

**********************************************************************
 Этот инструмент будет устаревать в следующем крупном релизе OpenSearch 
 https://github.com/opensearch-project/security/issues/1755           
**********************************************************************
[Пароль:]
$2y$12$4NL0LqEnN4FXaUdQQC.gOupeCQT2IuMo9gN0b5d3nxdMVbLX088f2

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

Откройте файл конфигурации пользователей OpenSearch internal_users.yml в каталоге /etc/opensearch/opensearch-security/ для редактирования.

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

Закомментируйте всех демонстрационных пользователей, добавив хеш перед ними, как показано.

---
# Это внутренняя база данных пользователей
# Хеш-значение — это хеш bcrypt и может быть сгенерировано с помощью plugin/tools/hash.sh

_meta:
  type: "internalusers"
  config_version: 2

# Определите своих внутренних пользователей здесь

## Демонстрационные пользователи

#admin:
#  hash: "$2y$12$Twy84uxOX0SQ1QMQ68og8O/i1MvqWItt/phZX3DiJMjpBoT9u9KX6"
#  reserved: true
#  backend_roles:
#  - "admin"
#  description: "Демонстрационный пользователь администратор"

#anomalyadmin:

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

---
# Это внутренняя база данных пользователей
# Хеш-значение — это хеш bcrypt и может быть сгенерировано с помощью plugin/tools/hash.sh

_meta:
  type: "internalusers"
  config_version: 2

# Определите своих внутренних пользователей здесь

admin:
  hash: "$2y$12$4NL0LqEnN4FXaUdQQC.gOupeCQT2IuMo9gN0b5d3nxdMVbLX088f2"
  reserved: true
  backend_roles:
  - "admin"
  description: "Пользователь администратор"

## Демонстрационные пользователи

#admin:

После завершения сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Теперь, когда сертификаты TLS установлены, а демонстрационные пользователи удалены или назначены новые пароли, пришло время применить изменения конфигурации. Чтобы применить изменения, мы вызовем скрипт securityadmin.sh в каталоге /usr/share/opensearch/plugins/opensearch-security/tools. Скрипт требует, чтобы служба OpenSearch работала.

Перезапустите службу OpenSearch.

$ sudo systemctl restart opensearch

Перейдите в каталог /usr/share/opensearch/plugins/opensearch-security/tools.

$ cd /usr/share/opensearch/plugins/opensearch-security/tools

Запустите скрипт, используя следующую команду.

$ sudo OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h opensearch.nspeaks.com -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

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

  • Опция -cd указывает, где находятся файлы конфигурации плагина безопасности.
  • Опция -icl ( --ignore-clustername) говорит плагину безопасности загружать конфигурацию независимо от имени кластера. Вы также можете указать имя кластера вместо использования опции -cn ( --clustername).
  • Поскольку сертификаты самоподписаны, мы используем опцию -nhnv ( --disable-host-name-verification).
  • Опции --cacert, --cert и --key определяют местоположение корневого сертификата, сертификата администратора и закрытого ключа для сертификата администратора. Если закрытый ключ имеет пароль, вы можете определить его, используя опцию -keypass.

Вы можете узнать больше о конфигурации плагина безопасности в документации OpenSearch.

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

**********************************************************************
 Этот инструмент будет устаревать в следующем крупном релизе OpenSearch 
 https://github.com/opensearch-project/security/issues/1755           
************************************************************************
Security Admin v7
Подключение к opensearch:9200 ... готово
Подключено как "CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA"
Версия OpenSearch: 2.12.0
Связываемся с кластером OpenSearch 'opensearch' и ждем состояния кластера YELLOW ...
Имя кластера: opensearch
Состояние кластера: GREEN
Количество узлов: 1
Количество узлов данных: 1
.index.opendistro_security уже существует, поэтому нам не нужно его создавать.
Заполнение конфигурации из /etc/opensearch/opensearch-security/
Обновим '/config' с /etc/opensearch/opensearch-security/config.yml 
   УСПЕШНО: Конфигурация для 'config' создана или обновлена
Обновим '/roles' с /etc/opensearch/opensearch-security/roles.yml 
   УСПЕШНО: Конфигурация для 'roles' создана или обновлена
Обновим '/rolesmapping' с /etc/opensearch/opensearch-security/roles_mapping.yml 
   УСПЕШНО: Конфигурация для 'rolesmapping' создана или обновлена
Обновим '/internalusers' с /etc/opensearch/opensearch-security/internal_users.yml 
   УСПЕШНО: Конфигурация для 'internalusers' создана или обновлена
Обновим '/actiongroups' с /etc/opensearch/opensearch-security/action_groups.yml 
   УСПЕШНО: Конфигурация для 'actiongroups' создана или обновлена
Обновим '/tenants' с /etc/opensearch/opensearch-security/tenants.yml 
   УСПЕШНО: Конфигурация для 'tenants' создана или обновлена
Обновим '/nodesdn' с /etc/opensearch/opensearch-security/nodes_dn.yml 
   УСПЕШНО: Конфигурация для 'nodesdn' создана или обновлена
Обновим '/whitelist' с /etc/opensearch/opensearch-security/whitelist.yml 
   УСПЕШНО: Конфигурация для 'whitelist' создана или обновлена
Обновим '/audit' с /etc/opensearch/opensearch-security/audit.yml 
   УСПЕШНО: Конфигурация для 'audit' создана или обновлена
Обновим '/allowlist' с /etc/opensearch/opensearch-security/allowlist.yml 
   УСПЕШНО: Конфигурация для 'allowlist' создана или обновлена
УСПЕШНО: Ожидалось 10 типов конфигурации для узла {"updated_config_types":["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"],"updated_config_size":10,"message":null} равно 10 (["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"]) из-за: null
Завершено успешно

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

Во время предыдущего теста мы направляли запросы на localhost. Теперь, когда сертификаты TLS настроены, а новые сертификаты ссылаются на фактическую DNS-запись хоста, запросы к localhost завершатся неудачей из-за проверки CN, и сертификат будет считаться недействительным. Поэтому добавьте вашу фактическую DNS-запись в команду ниже для проверки.

$ curl https://your.host.address:9200 -u admin:yournewpassword -k

Вы должны увидеть следующий ответ.

{
  "name" : "opensearch",
  "cluster_name" : "opensearch",
  "cluster_uuid" : "3oFvYn96St2MOpDP3Sf29g",
  "version" : {
    "distribution" : "opensearch",
    "number" : "2.12.0",
    "build_type" : "deb",
    "build_hash" : "2c355ce1a427e4a528778d4054436b5c4b756221",
    "build_date" : "2024-02-20T02:18:31.541484890Z",
    "build_snapshot" : false,
    "lucene_version" : "9.9.2",
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

Шаг 9 - Установка OpenSearch Dashboards

Поскольку мы уже установили OpenSearch, мы можем пропустить шаг импорта GPG-ключа OpenSearch.

Чтобы установить OpenSearch Dashboards, выполните следующую команду, чтобы создать репозиторий APT для него.

$ 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

Обновите список репозиториев системы.

$ sudo apt update

Перечислите все доступные версии OpenSearch Dashboards.

$ sudo apt list -a opensearch-dashboards

Вы должны увидеть аналогичный вывод.

Listing... Done
opensearch-dashboards/stable 2.12.0 amd64
opensearch-dashboards/stable 2.11.1 amd64
opensearch-dashboards/stable 2.11.0 amd64
opensearch-dashboards/stable 2.10.0 amd64
opensearch-dashboards/stable 2.9.0 amd64
opensearch-dashboards/stable 2.8.0 amd64
opensearch-dashboards/stable 2.7.0 amd64
opensearch-dashboards/stable 2.6.0 amd64
opensearch-dashboards/stable 2.5.0 amd64

Установите последнюю версию OpenSearch Dashboard.

$ sudo apt install opensearch-dashboards

Или установите конкретную версию OpenSearch Dashboard.

$ sudo apt install opensearch-dashboards=2.12.0

Версия OpenSearch Dashboards и OpenSearch должна быть одинаковой, иначе вы можете столкнуться с множеством проблем.

Перезагрузите демон службы.

$ sudo systemctl daemon-reload

Включите службу OpenSearch Dashboards.

$ sudo systemctl enable opensearch-dashboards

Запустите службу OpenSearch Dashboards.

$ sudo systemctl start opensearch-dashboards

Проверьте статус службы OpenSearch Dashboards.

$ sudo systemctl status opensearch-dashboards

Вы должны увидеть следующий вывод.

? opensearch-dashboards.service - "OpenSearch Dashboards"
     Loaded: loaded (/lib/systemd/system/opensearch-dashboards.service; enabled; preset: enabled)
     Active: active (running) since Sat 2024-03-02 16:01:25 UTC; 4s ago
   Main PID: 7098 (node)
      Tasks: 11 (limit: 9484)
     Memory: 175.4M
        CPU: 5.389s
     CGroup: /system.slice/opensearch-dashboards.service
             ??7098 /usr/share/opensearch-dashboards/node/bin/node /usr/share/opensearch-dashboards/src/cli/dist

Mar 02 16:01:25 opensearch systemd[1]: Started opensearch-dashboards.service - "OpenSearch Dashboards".

Шаг 10 - Настройка OpenSearch Dashboards

OpenSearch Dashboards хранит свою конфигурацию в файле /etc/opensearch-dashboards/opensearch_dashboards.yml. Откройте его для редактирования.

$ sudo nano /etc/opensearch-dashboards/opensearch_dashboards.yml

Найдите строку # server.host: "localhost" и раскомментируйте ее, удалив хеш перед ней и изменив ее значение, как показано.

# Указывает адрес, к которому сервер OpenSearch Dashboards будет привязан. IP-адреса и имена хостов являются допустимыми значениями.
# Значение по умолчанию — 'localhost', что обычно означает, что удаленные машины не смогут подключиться.
# Чтобы разрешить подключения от удаленных пользователей, установите этот параметр на адрес, отличный от локального.
server.host: 0.0.0.0

Установка значения server.host на 0.0.0.0 привязывает OpenSearch Dashboard к любому внешнему IP, что делает его доступным через Всемирную паутину. Если вы хотите обслуживать Dashboards через SSL с помощью обратного прокси, оставьте это значение без изменений.

Прокрутите вниз, чтобы найти следующий раздел.

opensearch.hosts: [https://localhost:9200]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanaserver
opensearch.requestHeadersWhitelist: [authorization, securitytenant]

Измените значения в соответствии с нашей установкой OpenSearch.

opensearch.hosts: [https://opensearch:9200]
opensearch.ssl.verificationMode: none
opensearch.username: admin
opensearch.password: 
opensearch.requestHeadersWhitelist: [authorization, securitytenant]

После завершения сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Перезапустите службу OpenDashboards.

$  sudo systemctl restart opensearch-dashboards

Откройте порт 5601 в брандмауэре UFW.

$ sudo ufw allow 5601

Откройте URL http://:5601 или http://opensearch.example.com:5601, чтобы запустить веб-сайт OpenSearch Dashboards.

Вход в OpenSearch Dashboards

Если вам удобно получать доступ к OpenSearch Dashboards через HTTP и с номером порта в URL, вы можете остановиться здесь. Однако лучше обслуживать Dashboards через SSL. Для этого мы установим Nginx в качестве обратного прокси и обслужим SSL через него.

Шаг 11 - Установка Nginx

Debian 12 поставляется со старой версией Nginx. Вам нужно загрузить официальный репозиторий Nginx, чтобы установить последнюю версию.

Импортируйте ключ подписи Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Добавьте репозиторий для основной версии Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Обновите системные репозитории.

$ sudo apt update

Установите Nginx.

$ sudo apt install nginx

Проверьте установку. На системах Debian следующая команда будет работать только с sudo.

$ sudo nginx -v
nginx version: nginx/1.25.4

Запустите сервер Nginx.

$ sudo systemctl start nginx

Проверьте статус службы.

$ sudo systemctl status nginx
? nginx.service - nginx - высокопроизводительный веб-сервер
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running) since Sat 2024-03-02 12:53:57 UTC; 4s ago
       Docs: https://nginx.org/en/docs/
    Process: 3976 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 3977 (nginx)
      Tasks: 3 (limit: 9484)
     Memory: 2.7M
        CPU: 9ms
     CGroup: /system.slice/nginx.service
             ??3977 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??3978 "nginx: worker process"
             ??3979 "nginx: worker process"

Mar 02 12:53:57 opensearch systemd[1]: Starting nginx.service - nginx - высокопроизводительный веб-сервер...
Mar 02 12:53:57 opensearch systemd[1]: Started nginx.service - nginx - высокопроизводительный веб-сервер.

Шаг 12 - Установка SSL

Нам нужно установить Certbot, чтобы сгенерировать SSL-сертификат. Вы можете установить Certbot, используя репозиторий Debian, или загрузить последнюю версию с помощью инструмента Snapd. Мы будем использовать версию Snapd.

Debian 12 не поставляется с установленным Snapd. Установите пакет Snapd.

$ sudo apt install snapd

Выполните следующие команды, чтобы убедиться, что ваша версия Snapd актуальна.

$ sudo snap install core && sudo snap refresh core

Установите Certbot.

$ sudo snap install --classic certbot

Используйте следующую команду, чтобы убедиться, что команда Certbot может быть выполнена, создав символическую ссылку в каталоге /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Проверьте, работает ли Certbot правильно.

$ certbot --version
certbot 2.9.0

Выполните следующую команду, чтобы сгенерировать SSL-сертификат.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d craftcms.example.com

Вышеуказанная команда загрузит сертификат в каталог /etc/letsencrypt/live/craftcms.example.com на вашем сервере.

Сгенерируйте сертификат группы Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Проверьте службу планировщика обновления Certbot.

$ sudo systemctl list-timers

Вы найдете snap.certbot.renew.service как одну из запланированных служб.

NEXT                        LEFT           LAST                        PASSED    UNIT                         ACTIVATES                   ---------------------------------------------------------------------------------------------------------------------------------------  
Sat 2024-03-02 16:25:00 UTC 3h 27min left  -                           -         snap.certbot.renew.timer     snap.certbot.renew.service
Sat 2024-03-02 23:00:51 UTC 10h left       Sat 2024-03-02 06:29:02 UTC 6h ago    apt-daily.timer              apt-daily.service
Sun 2024-03-03 00:00:00 UTC 11h left       -                           -         dpkg-db-backup.timer         dpkg-db-backup.service
.....

Выполните пробный запуск процесса, чтобы проверить, работает ли обновление SSL правильно.

$ sudo certbot renew --dry-run

Если вы не видите ошибок, вы готовы. Ваш сертификат будет автоматически обновляться.

Шаг 13 - Настройка Nginx

Откройте файл /etc/nginx/nginx.conf для редактирования.

$ sudo nano /etc/nginx/nginx.conf

Добавьте следующую строку перед строкой include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size 64;

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Создайте и откройте файл /etc/nginx/conf.d/opensearch.conf для редактирования.

$ sudo nano /etc/nginx/conf.d/opensearch.conf

Вставьте в него следующий код. Замените opensearch.example.com на ваше доменное имя.

server {

    listen 443 ssl;
    listen [::]:443 ssl;

    http2 on;
    http3 on;
    quic_retry on;

    server_name opensearch.example.com;

    access_log  /var/log/nginx/opensearch.access.log;
    error_log   /var/log/nginx/opensearch.error.log;

    ssl_certificate      /etc/letsencrypt/live/opensearch.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/opensearch.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/opensearch.example.com/chain.pem;

    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    ssl_early_data on;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    location / {
        proxy_pass http://localhost:5601;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
# принудительный HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name  opensearch.example.com;
    return 301   https://$host$request_uri;
}

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Проверьте вашу конфигурацию Nginx.

$ sudo nginx -t

Перезапустите сервер Nginx.

$ sudo systemctl restart nginx

Посетите https://opensearch.example.com в вашем браузере, чтобы запустить OpenSearch Dashboards.

Шаг 14 - Доступ и использование OpenSearch Dashboards

Если вы использовали Nginx, то получите доступ к Dashboards через URL https://opensearch.example.com или используйте http://opensearch.example.com:5601, и вы должны увидеть страницу входа.

Учетные данные для входа в OpenSearch Dashboards

Введите admin и пользовательский пароль администратора, который вы настроили для OpenSearch на шаге 4, и нажмите кнопку Войти, чтобы продолжить.

Страница добавления данных OpenSearch Dashboards

Нажмите кнопку Добавить данные, чтобы начать добавление данных напрямую, или нажмите ссылку Изучить самостоятельно, если хотите сначала просмотреть. Мы сначала просмотрим, и это должно привести вас к всплывающему окну, которое говорит о темном режиме OpenSearch Dashboards.

Всплывающее окно темы OpenSearch Dashboards

Нажмите кнопку Закрыть, чтобы продолжить. Далее вам будет предложено выбрать арендатора.

Экран выбора арендатора OpenSearch Dashboards

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

  • Глобальный - Этот арендатор общий для всех пользователей OpenSearch Dashboards.
  • Частный - Этот арендатор эксклюзивен для каждого пользователя и не может быть разделен.
  • Пользовательский - Администраторы могут создавать пользовательские арендаторы и назначать их конкретным ролям. После создания вы можете использовать эти арендаторы, чтобы предоставить пространства для конкретного набора пользователей.

На данный момент мы останемся с вариантом по умолчанию — частным арендатором. Нажмите кнопку Подтвердить, чтобы продолжить. Вы увидите следующую страницу.

Главная страница OpenSearch Dashboards

Далее мы проверим связь между OpenSearch и OpenSearch Dashboards.

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

Всплывающее окно консоли инструментов разработчика OpenSearch Dashboards

Нажмите кнопку Закрыть, введите запрос GET / в консоли слева и нажмите маленькую кнопку воспроизведения посередине. Вы должны увидеть следующий вывод справа.

Проверка соединения консоли OpenSearch Dashboards

Это подтверждает, что OpenSearch Dashboards получает данные от OpenSearch, и оба работают нормально. Вы можете начать добавлять данные с этого момента.

Заключение

Это завершает учебник по установке OpenSearch на сервер Debian 12. Если у вас есть какие-либо вопросы, оставьте их в комментариях ниже.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.