OpenSearch – це проєкт компанії Amazon, керований спільнотою, і форк Elasticsearch і Kibana. Це повністю відкрита пошукова система та аналітичний пакет із багатими можливостями та інноваційною функціональністю. Основними компонентами проекту OpenSearch є OpenSearch (форк Elasticsearch) і OpenSearch Dashboards (форк Kibana). Обидва компоненти надають такі можливості, як корпоративна безпека, сповіщення, машинне навчання, SQL, управління станом індексів і багато іншого.
OpenSearch на 100% з відкритим вихідним кодом і ліцензований під Apache 2.0-ліцензією. Він дає змогу легко отримувати, захищати, шукати, агрегувати, переглядати й аналізувати дані для різних сценаріїв використання, як-от аналіз журналів, пошук застосунків, корпоративний пошук і багато іншого.
У цій статті показано, як встановити OpenSearch – пакет пошуку, аналітики та візуалізації з відкритим вихідним кодом – на сервер Rocky Linux 9. Стаття включає захист установки OpenSearch за допомогою TLS/SSL сертифікатів і налаштування аутентифікації та авторизації на OpenSearch.
У статті також показано, як встановити OpenSearch Dashboards – інструмент візуалізації з відкритим вихідним кодом, подібний до Kibana, а потім налаштувати його для підключення до OpenSearch. Після завершення цієї статті у вас буде встановлено пакет для аналізу та візуалізації даних на вашому сервері Rocky Linux.
Попередні умови
Щоб почати роботу з цим посібником, ви повинні мати такі вимоги:
- Сервер з Rocky Linux 9 і мінімальною оперативною пам’яттю 4 ГБ – У даному прикладі використовується сервер Rocky Linux з ім’ям хоста ‘node-rock1’, IP-адресою ‘192.168.5.25’ і оперативною пам’яттю 8 ГБ.
- Користувач не root із привілеями адміністратора sudo/root.
- SELinux працює в дозвільному режимі.
Налаштування системи
Перше, що ви повинні зробити, це підготувати ваш хост Rocky Linux. Це передбачає встановлення правильного імені хоста і fqdn, вимкнення SWAP і збільшення максимального обсягу пам’яті карти у вашій системі.
Для цього необхідно увійти на сервер Rocky Linux.
Тепер виконайте наступну команду для встановлення правильного імені хоста і fqdn для вашого сервера Rocky Linux.
У цьому прикладі ви встановите ім’я хоста системи ‘node-rock1’ і fqdn ‘node-rock1.hwdomain.lan’. Також не забудьте змінити IP-адресу в наступній команді на IP-адресу вашого сервера.
sudo hostnamectl set-hostname node-rock1 echo '192.168.5.25 node-rock1.hwdomain.lan node-rock1' >> /etc/hosts
Вийдіть із поточної сесії та увійдіть у неї знову. Потім перевірте fqdn за допомогою такої команди.
sudo hostname -f
Ви повинні отримати наступне повідомлення. fqdn на хості налаштовано на ‘node-rock1.hwdomain.lan’.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/1-setup-fqdn.webp?resize=750%2C200&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/1-setup-fqdn.webp?resize=750%2C200&ssl=1)
Далі вам потрібно буде вимкнути підкачування пам’яті та SWAP на вашому хості Rocky Linux. Вимкнення підкачки пам’яті та SWAP збільшить продуктивність вашого сервера OpenSearch.
Виконайте наступні команди, щоб вимкнути SWAP у вашій системі. Перша команда вимкне SWAP назавжди, закоментувавши конфігурацію SWAP у файлі ‘/etc/fstab’. Друга команда використовується для вимкнення SWAP у поточній сесії.
sudo sed -i '/ swap / s/^(.*)$/#1/g' /etc/fstab sudo swapoff -a
Перевірте стан SWAP у вашій системі за допомогою такої команди.
free -m
Ви отримаєте результат, подібний до цього – Розділ ‘Swap’ зі значенням 0 загалом підтверджує, що SWAP вимкнено.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/2-disable-swap.webp?resize=750%2C204&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/2-disable-swap.webp?resize=750%2C204&ssl=1)
Нарешті, ви повинні збільшити максимальну кількість пам’яті карт у вашій системі для OpenSearch. Це можна зробити через файл ‘/etc/sysctl.conf’.
Виконайте наступну команду для збільшення max maps memory до ‘262144’ і застосуйте зміни. Цим ви додасте нову конфігурацію ‘vm.max_map_count=262144′ до файлу /etc/sysctl.conf’ і застосуєте зміни у вашій системі за допомогою команди ‘sysctl -p’.
sudo echo "vm.max_map_count=262144" >> /etc/sysctl.conf sudo sysctl -p
Тепер ви можете вимкнути статус max maps memory у вашій системі за допомогою наступної команди. При цьому ‘max_map_count’ має бути збільшено до ‘262144’.
cat /proc/sys/vm/max_map_count
Вихідні дані:
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/3-setup-vm-max.webp?resize=745%2C202&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/3-setup-vm-max.webp?resize=745%2C202&ssl=1)
Встановлення OpenSearch
OpenSearch можна встановити кількома способами. Ви можете встановити OpenSearch через tarball, Docker, RPM і Kubernetes. Для дистрибутивів на базі RHEL ви можете легко встановити OpenSearch через офіційний репозиторій OpenSearch.
Виконайте наведену нижче команду curl, щоб завантажити сховище OpenSearch у вашу систему. Потім перевірте список доступних сховищ за допомогою команди нижче.
sudo curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo -o /etc/yum.repos.d/opensearch-2.x.repo sudo dnf repolist
У разі успіху ви маєте отримати сховище ‘OpenSearch 2.x’, доступне у виводі терміналу.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/5-verify-repo.webp?resize=750%2C152&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/5-verify-repo.webp?resize=750%2C152&ssl=1)
Ви також можете перевірити доступні пакети ‘opensearch’, виконавши таку команду.
sudo dnf info opensearch
На момент написання цієї статті репозиторій OpenSearch надає дві версії OpenSearch для різних системних архітектур – OpenSearch 2.5 для x86_64 і aarch64.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/7-opensearch.webp?resize=750%2C433&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/7-opensearch.webp?resize=750%2C433&ssl=1)
Виконайте наступну команду dnf для встановлення OpenSearch на ваш сервер Rocky Linux. Коли з’явиться запит на підтвердження, введіть y для підтвердження і натисніть ENTER для продовження.
sudo dnf install opensearch
Вихідні дані:
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/8-install-opensearch.webp?resize=750%2C176&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/8-install-opensearch.webp?resize=750%2C176&ssl=1)
Під час встановлення вам також буде запропоновано додати ключ GPG для сховища OpenSearch. Введіть y для підтвердження та натисніть ENTER.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/6-accept-gpg-keys.webp?resize=732%2C158&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/6-accept-gpg-keys.webp?resize=732%2C158&ssl=1)
Після успішного встановлення OpenSearch перезавантажте менеджер systemd і застосуйте нові зміни за допомогою наведеної нижче командної утиліти systemctl.
sudo systemctl daemon-reload
Тепер запустіть і увімкніть OpenSearch за допомогою наведеної нижче команди. Після цього OpenSearch має бути запущено з конфігурацією за замовчуванням, а також увімкнено, що означає, що OpenSearch запускатиметься автоматично під час завантаження системи.
sudo systemctl start opensearch sudo systemctl enable opensearch
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/9-start-opensearch.webp?resize=750%2C152&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/9-start-opensearch.webp?resize=750%2C152&ssl=1)
Щоб переконатися, що OpenSearch працює і запущений, ви можете перевірити це за допомогою наведеної нижче команди systemctl.
sudo systemctl status opensearch
Ви повинні отримати висновок, подібний до цього – Висновок ‘active (running)’ підтверджує, що служба OpenSearch запущена, а ‘… enabled;…’ підтверджує, що служба OpenSearch увімкнена.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/10-verify-opensearch.webp?resize=750%2C196&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/10-verify-opensearch.webp?resize=750%2C196&ssl=1)
Ви встановили OpenSearch, і тепер він запущений і ввімкнений. Тепер ви можете перейти до наступного кроку з налаштування вашої установки OpenSearch.
Налаштування OpenSearch
За замовчуванням конфігурації OpenSearch зберігаються в каталозі ‘/etc/opensearch’. У цьому кроці ви виконаєте базове налаштування OpenSearch в одновузловому режимі. Ви також збільшите максимальну кількість пам’яті купи у вашій системі, щоб підвищити продуктивність сервера OpenSearch.
Відкрийте файл конфігурації OpenSearch ‘/etc/opensearch/opensearch.yml’ за допомогою наведеної нижче команди редактора nano.
sudo nano /etc/opensearch/opensearch.yml
Змініть деякі параметри OpenSearch за замовчуванням за допомогою наступних рядків. За допомогою цього ви запустите OpenSearch на певній мережевій IP-адресі ‘192.168.5.25’, тип розгортання – ‘single-node’, і повторно увімкніть плагіни безпеки OpenSearch.
# 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.5.25 # 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
Збережіть і вийдіть із файлу ‘/etc/opensearch/opensearch.yml’ після завершення роботи.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/11-setup-opensearch.webp?resize=699%2C380&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/11-setup-opensearch.webp?resize=699%2C380&ssl=1)
Потім відкрийте файл параметрів JVM за замовчуванням для OpenSearch ‘/etc/opensearch/jvm.options’, використовуючи таку команду редактора nano.
sudo nano /etc/opensearch/jvm.options
Змініть максимальну пам’ять за замовчуванням наступними рядками. Це залежить від пам’яті вашого сервера, ви можете виділити більше 2 ГБ для OpenSearch, якщо у вас більше оперативної пам’яті.
-Xms2g -Xmx2g
Збережіть файл і вийдіть із редактора після завершення роботи.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/12-max-heap-memory.webp?resize=684%2C225&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/12-max-heap-memory.webp?resize=684%2C225&ssl=1)
Нарешті, запустіть наведену нижче командну утиліту systemctl, щоб перезапустити службу OpenSearch і застосувати зміни.
sudo systemctl restart opensearch
Тепер OpenSearch має бути запущений на IP-адресі ‘192.168.5.25’ з портом за замовчуванням ‘9200’. Перевірте список відкритих портів у вашій системі, виконавши команду ss, наведену нижче.
ss -tulpn
Забезпечення безпеки OpenSearch за допомогою TLS сертифікатів
У цьому кроці ви згенеруєте кілька сертифікатів, які будуть використовуватися для захисту розгортання OpenSearch. Ви захистите зв’язок між вузлами за допомогою TLS сертифікатів і захистите трафік REST-рівня між клієнт-серверними з’єднаннями за допомогою TLS.
Нижче наведено список сертифікатів, які будуть згенеровані:
- Сертифікати кореневого центру сертифікації: Ці сертифікати будуть використовуватися для підпису інших сертифікатів.
- Сертифікати адміністраторів: Ці сертифікати будуть використовуватися для отримання прав адміністратора для виконання всіх завдань, пов’язаних із безпекою плагіна.
- Сертифікати вузлів і клієнтів: Ці сертифікати будуть використовуватися вузлами та клієнтами в кластері OpenSearch.
Перш ніж генерувати нові TLS сертифікати, давайте видалимо деякі сертифікати за замовчуванням і конфігурації OpenSearch за замовчуванням.
Виконайте наступну команду для видалення стандартних TLS-сертифікатів OpenSearch. Потім відкрийте конфігурацію OpenSearch ‘/etc/opensearch/opensearch.yml’ за допомогою наступної команди редактора nano.
rm -f /opt/opensearch/{esnode-key.pem,esnode.pem,kirk-key.pem,kirk.pem,root-ca.pem} sudo nano /etc/opensearch/opensearch.yml
У нижній частині рядка закоментуйте стандартну конфігурацію OpenSearch Security Demo Configuration, як показано нижче.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/22-delete-demo-certs.webp?resize=750%2C421&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/22-delete-demo-certs.webp?resize=750%2C421&ssl=1)
Збережіть і вийдіть із файлу після завершення.
Далі виконайте наступну команду для створення нового каталогу ‘/etc/opensearch/certs’. Цей каталог буде використовуватися для зберігання нових генерованих TLS-сертифікатів. Потім перемістіть у нього свій робочий каталог.
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
У результаті ви повинні отримати закритий ключ кореневого ЦС ‘root-ca-key.pem’ і сертифікат кореневого ЦС ‘root-ca.pem’.
Вихідні дані:
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/13-generate-root-ca.webp?resize=750%2C113&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/13-generate-root-ca.webp?resize=750%2C113&ssl=1)
Генерація сертифікатів адміністратора
Згенеруйте новий закритий ключ сертифіката адміністратора ‘admin-key-temp.pem’ за допомогою такої команди.
openssl genrsa -out admin-key-temp.pem 2048
Перетворіть закритий ключ адміністратора за замовчуванням у формат PKCS#8. Для Java-додатку необхідно перетворити закритий ключ за замовчуванням у PKCS#12-сумісний алгоритм (3DES). При цьому ваш закритий ключ адміністратора повинен мати вигляд ‘admin-key.pem’.
openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem
Потім виконайте наведену нижче команду, щоб згенерувати CSR (запит на підпис сертифіката) адміністратора із закритого ключа ‘admin-key.pem’. Тепер ваш згенерований CSR має бути файлом ‘admin.csr’.
Оскільки цей сертифікат використовується для аутентифікації підвищеного доступу і не прив’язаний до будь-яких хостів, ви можете використовувати що завгодно в конфігурації ‘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 адміністратора сертифікатом кореневого центру сертифікації та закритим ключем. Результатом підписання сертифіката адміністратора буде файл ‘admin.pem’.
openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730
Тепер ваш сертифікат адміністратора має бути файлом ‘admin.pem’, який підписаний сертифікатами кореневого центру сертифікації. А закритий ключ адміністратора – ‘admin-key.pem’, який перетворено у формат PKCS#8.
Вихідні дані:
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/14-generate-admin-cert.webp?resize=750%2C148&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/14-generate-admin-cert.webp?resize=750%2C148&ssl=1)
Генерація сертифікатів вузлів
Процес створення сертифікатів вузла аналогічний сертифікатам адміністратора. Але ви можете вказати значення CN з ім’ям хоста або IP-адресою вашого вузла.
Згенеруйте закритий ключ вузла за допомогою такої команди.
openssl genrsa -out node-rock1-key-temp.pem 2048
Перетворіть закритий ключ вузла у формат PKCS#8. Тепер ваш закритий ключ вузла повинен мати формат ‘node-rock1-key.pem’.
openssl pkcs8 -inform PEM -outform PEM -in node-rock1-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out node-rock1-key.pem
Потім створіть новий CSR для сертифіката вузла. Обов’язково змініть значення ‘CN’ на ім’я хоста вашого вузла. Цей сертифікат прив’язаний до вузлів, і ви повинні вказати в значенні CN ім’я вузла або IP-адресу вашого вузла OpenSearch.
openssl req -new -key node-rock1-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=node-rock1.hwdomain.lan" -out node-rock1.csr
Перед підписанням сертифіката вузла виконайте наведену нижче команду, щоб створити файл розширення SAN ‘node-rock1.ext’. Він міститиме ім’я вузла, FQDN або IP-адресу.
echo 'subjectAltName=DNS:node-rock1.hwdomain.lan' > node-rock1.ext
Нарешті, підпишіть файл CSR сертифіката вузла сертифікатом кореневого ЦС і приватним сертифікатом за допомогою такої команди.
openssl x509 -req -in node-rock1.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node-rock1.pem -days 730 -extfile node-rock1.ext
У цьому разі сертифікатом вузла буде файл ‘node-rock1.pem’, а закритим ключем – ‘node-rock1-key.pem’.
Вихідні дані:
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/15-generate-node-certs.webp?resize=750%2C136&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/15-generate-node-certs.webp?resize=750%2C136&ssl=1)
Налаштування сертифікатів
Виконайте наведену нижче команду, щоб видалити тимчасовий сертифікат, CSR і файл розширення SAN.
rm *temp.pem *csr *ext ls
Перетворіть сертифікат кореневого ЦС у формат .crt.
openssl x509 -outform der -in root-ca.pem -out root-ca.crt
Додайте сертифікат кореневого ЦС у систему Rocky Linux за допомогою наведеної нижче команди. Скопіюйте файл root-ca.crt у каталог ‘/etc/pki/ca-trust/source/anchors/’ і завантажте новий сертифікат кореневого ЦС у вашу систему.
sudo cp root-ca.crt /etc/pki/ca-trust/source/anchors/ sudo update-ca-trust
Вихідні дані:
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/16-add-root-ca.webp?resize=750%2C133&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/16-add-root-ca.webp?resize=750%2C133&ssl=1)
Нарешті, виконайте наведену нижче команду, щоб встановити правильний дозвіл і право власності на сертифікати. Власником каталогу ‘/etc/opensearch/certs’ має бути користувач ‘opensearch’ з дозволом 0700. А для всіх файлів сертифікатів дозвіл має бути 0600.
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
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/17-certs-lists.webp?resize=750%2C274&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/17-certs-lists.webp?resize=750%2C274&ssl=1)
Додавання TLS-сертифікатів в OpenSearch
Згенеровані TLS сертифікати, кореневий CA, сертифікати адміністратора і сертифікати вузла. Далі ви додасте сертифікати в конфігураційний файл OpenSearch ‘/etc/opensearch/opensearch.yml’. У цьому прикладі ви створите новий сценарій bash, який буде додавати сертифікати та налаштування плагіна безпеки TLS в OpenSearch.
Створіть новий файл ‘add.sh’ за допомогою наведеної нижче команди редактора nano.
nano add.sh
Додайте до файлу такі рядки. Обов’язково змініть і використовуйте правильний шлях до файлів сертифікатів і цільового файлу конфігурації OpenSearch.
#! /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/node-rock1.pem" | sudo tee -a /etc/opensearch/opensearch.yml echo "plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node-rock1-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/node-rock1.pem" | sudo tee -a /etc/opensearch/opensearch.yml echo "plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node-rock1-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=node-rock1.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.sh’ виконуваним і виконайте його. Новий плагін безпеки TLS для OpenSearch має бути доданий у файл конфігурації OpenSearch ‘/etc/opensearch/opensearch.yml’.
chmod +x add.sh ./add.sh
Вихідні дані:
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/19-add-tls-config-opensearch-1.webp?resize=750%2C404&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/19-add-tls-config-opensearch-1.webp?resize=750%2C404&ssl=1)
Якщо ви перевірите конфігураційний файл OpenSearch ‘/etc/opensearch/opensearch.yml’, ви маєте побачити нові налаштування, створені скриптом ‘add.sh’.
Отже, ви додали TLS сертифікати в OpenSearch і ввімкнули плагіни безпеки. На наступному кроці ви захистите OpenSearch за допомогою аутентифікації та авторизації, створивши нового користувача на OpenSearch.
Встановлення адміністраторського користувача OpenSearch
Спочатку перемістіть робочий каталог у ‘/usr/share/opensearch/plugins/opensearch-security/tools’, виконавши команду cd нижче.
cd /usr/share/opensearch/plugins/opensearch-security/tools
Виконайте сценарій ‘hash.sh’ для створення нового хешу пароля для OpenSearch. Введіть пароль, який ви будете створювати, і натисніть ENTER.
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh
Ви повинні отримати згенерований хеш вашого пароля. Скопіюйте цей хеш, тому що вам потрібно буде додати цей хешований пароль у конфігурацію OpenSearch.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/18-generate-password-admin.webp?resize=750%2C257&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/18-generate-password-admin.webp?resize=750%2C257&ssl=1)
Повторно запустіть сценарій ‘hash.sh’ для генерації іншого хешу пароля, який буде використовуватися для панелей OpenSearch Dashboards.
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh
Таким чином, ви згенерували два хешовані паролі для OpenSearch.
Далі відкрийте конфігурацію користувачів OpenSearch ‘/etc/opensearch/opensearch-security/internal_users.yml’ за допомогою наведеної нижче команди редактора nano. Тепер ви налаштуєте користувачів OpenSearch через OpenSearch Security.
sudo nano /etc/opensearch/opensearch-security/internal_users.yml
Видаліть усіх користувачів OpenSearch за замовчуванням і замініть їх наступними рядками. Не забудьте замінити хешований пароль згенерованим паролем. У цьому прикладі ви створите двох користувачів для OpenSearch, користувача ‘admin’ для OpenSearch і користувача ‘kibanaserver’, який буде використовуватися в OpenSearch Dashboards.
... ... admin: hash: "$2y$12$BnfqwqWRi7DkyuPgLa8.3.kLzdpIY11jFpSXTAOKOMCVj/i20k9oW" reserved: true backend_roles: - "admin" description: "Admin user" kibanaserver: hash: "$2y$12$kYjgPjPzIp9oTghNdWIHcuUalE99RqSYtTCh6AiNuS5wmeEaWnbzK" reserved: true description: "Demo OpenSearch Dashboards user"
Збережіть і вийдіть із файлу після завершення роботи.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/23-admin-settings.webp?resize=750%2C344&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/23-admin-settings.webp?resize=750%2C344&ssl=1)
Тепер виконайте наступну команду systemctl, щоб перезапустити службу OpenSearch і застосувати зміни.
sudo systemctl restart opensearch
Тепер перейдіть до каталогу ‘/usr/share/opensearch/plugins/opensearch-security/tools’ і викличте скрипт ‘securityadmin.sh’ для застосування нових змін в OpenSearch Security.
cd /usr/share/opensearch/plugins/opensearch-security/tools OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h 192.168.5.25 -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
Сценарій ‘securityadmin.sh’ під’єднається до сервера OpenSearch, який працює на IP-адресі ‘192.168.5.25’ і порту за замовчуванням ‘9200’. Потім застосуйте нових користувачів, яких ви налаштували у файлі ‘/etc/opensearch/opensearch-security/internal_users.yml’, до розгортання OpenSearch.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/20-apply-admin-user.webp?resize=750%2C544&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/20-apply-admin-user.webp?resize=750%2C544&ssl=1)
Нарешті, коли нові користувачі додані та застосовані за допомогою скрипта ‘securityadmin.sh’, тепер ви повинні перевірити користувачів OpenSearch за допомогою команди curl, наведеної нижче. Не забудьте змінити ім’я хоста або IP-адресу, а також користувача і пароль для OpenSearch.
curl https://node-rock1:9200 -u admin:password -k curl https://node-rock1:9200 -u kibanaserver:kibanapass -k
Якщо налаштування користувача пройшло успішно, ви повинні отримати повідомлення такого змісту:
Перевірка користувача OpenSearch ‘admin’.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/21-verify-installation.webp?resize=689%2C398&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/21-verify-installation.webp?resize=689%2C398&ssl=1)
Перевірте користувача OpenSearch ‘kibanaserver’.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/24-verify-user2.webp?resize=750%2C373&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/24-verify-user2.webp?resize=750%2C373&ssl=1)
На цьому етапі ви завершили встановлення OpenSearch за допомогою пакетів RPM на сервер Rocky Linux 9, забезпечили безпеку розгортання OpenSearch за допомогою TLS сертифікатів і ввімкнули автентифікацію та авторизацію користувачів за допомогою плагінів OpenSearch Security.
На наступному кроці ви встановите OpenSearch Dashboards і додасте до нього ваш сервер OpenSearch, використовуючи нового користувача, якого ви створили ‘kibanaserver’.
Встановлення OpenSearch Dashboard
Оскільки репозиторій OpenSearch все ще використовує застарілий хеш SHA1 для перевірки пакета OpenSearch Dashboard, вам необхідно змінити криптографічні політики за замовчуванням у вашому Rocky Linux на LEGACY.
Виконайте наведену нижче команду для оновлення криптополітики за замовчуванням на LEGACY.
sudo update-crypto-policies --set LEGACY
Потім додайте сховище OpenSearch Dashboards у свою систему за допомогою наведеної нижче команди curl.
sudo curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/opensearch-dashboards-2.x.repo -o /etc/yum.repos.d/opensearch-dashboards-2.x.repo
Потім перевірте список доступних сховищ у вашій системі. Ви повинні побачити сховище ‘OpenSearch Dashboard 2.x’ доступним у списку сховищ.
sudo dnf repolist
Вихідні дані:
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/25-add-repo-opensearch-dashboards.webp?resize=750%2C163&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/25-add-repo-opensearch-dashboards.webp?resize=750%2C163&ssl=1)
Тепер виконайте наступну команду dnf для встановлення пакета OpenSearch Dashboards. Коли з’явиться запит, введіть y для підтвердження і натисніть ENTER для продовження.
sudo dnf install opensearch-dashboards
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/27-install-opensearch-dashboards.webp?resize=750%2C158&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/27-install-opensearch-dashboards.webp?resize=750%2C158&ssl=1)
Під час встановлення вам також буде запропоновано прийняти ключ GPG репозиторію OpenSearch Dashboards. Введіть y і натисніть ENTER для підтвердження.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/26-add-gpg-key.webp?resize=692%2C155&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/26-add-gpg-key.webp?resize=692%2C155&ssl=1)
Після встановлення OpenSearch Dashboards запустіть наведену нижче командну утиліту systemctl для запуску та ввімкнення служби ‘opensearch-dashboard’. Тепер OpenSearch Dashboard має працювати з конфігурацією за замовчуванням і має бути ввімкненим, що означає, що служба запускатиметься автоматично під час запуску системи.
sudo systemctl start opensearch-dashboards sudo systemctl enable opensearch-dashboards
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/28-start-opensearch-dashboards.webp?resize=750%2C145&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/28-start-opensearch-dashboards.webp?resize=750%2C145&ssl=1)
Перевірте службу OpenSearch Dashboard, щоб переконатися, що служба запущена.
sudo systemctl status opensearch-dashboards
Ви маєте отримати таке повідомлення – статус служби OpenSearch Dashboard запущено, тепер її також увімкнуто і вона запускатиметься автоматично під час завантаження системи.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/29-verify-opensearch-dashboards-1.webp?resize=750%2C145&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/29-verify-opensearch-dashboards-1.webp?resize=750%2C145&ssl=1)
Тепер перейдіть до наступного кроку, щоб налаштувати встановлення OpenSearch Dashboard.
Налаштування інструментальних панелей OpenSearch
На цьому кроці ви налаштуєте OpenSearch Dashboards, на якій IP-адресі та порту має бути запущена Open Search Dashboard, а також встановите з’єднання із сервером OpenSearch.
Відкрийте файл конфігурації OpenSearch Dashboard ‘/etc/opensearch-dashboards/opensearch-dashboard.yml’ за допомогою редактора nano.
sudo nano /etc/opensearch-dashboards/opensearch-dashboard.yml
Відкоментуйте та змініть параметри за замовчуванням ‘server.port’ і ‘server.host’ наступними рядками. За замовчуванням OpenSearch Dashboards працюватиме на порту ‘5601’, переконайтеся, що параметр ‘server.host’ відповідає IP-адресі вашого сервера.
# OpenSearch Dashboards is served by a back end server. This setting specifies the port to use. server.port: 5601 # Specifies the address to which the OpenSearch Dashboards server will bind. IP addresses and host names are both valid values. # The default is 'localhost', which usually means remote machines will not be able to connect. # To allow connections from remote users, set this parameter to a non-loopback address. server.host: "192.168.5.25"
Перейдіть до нижнього рядка конфігурації та змініть деталі параметрів OpenSearch, які використовуються для підключення до сервера OpenSearch. Обов’язково змініть параметри ‘opensearch.hosts’, ‘opensearch.username’ і ‘opensearch.password’ на дані вашого сервера OpenSearch.
opensearch.hosts: [https://192.168.5.25:9200] opensearch.ssl.verificationMode: none opensearch.username: kibanaserver opensearch.password: kibanapass
Збережіть файл і вийдіть із редактора після завершення роботи.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/30-add-opensearch-to-opensearch-dashboards.webp?resize=694%2C258&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/30-add-opensearch-to-opensearch-dashboards.webp?resize=694%2C258&ssl=1)
Потім виконайте наведену нижче команду systemctl, щоб перезапустити службу OpenSearch Dashboards і застосувати зміни.
sudo systemctl restart opensearch-dashboards
При цьому приладові панелі OpenSearch повинні працювати на IP-адресі ‘192.168.5.25’ з портом ‘5601’. Крім того, приладова панель OpenSearch буде підключена до сервера OpenSearch з реквізитами користувача ‘kibanaserver’.
Доступ до інформаційних панелей OpenSearch
На цьому етапі ви закінчили встановлення та налаштування OpenSearch Dashboard. Тепер вам потрібно перевірити установку OpenSearch Dashboards, зайшовши в неї через веб-браузер і перевіривши підключення до сервера OpenSearch через ‘Dev Tools’.
Перед тим як отримати доступ до OpenSearch Dashboards, необхідно відкрити порт 5601 у вашому firewalld.
Виконайте наступні команди firewall-cmd, щоб відкрити TCP порт 5601. Потім перезавантажте firewalld, щоб застосувати зміни.
sudo firewall-cmd --add-port=5601/tcp --permanent sudo firewall-cmd --reload
Потім перевірте список правил на firewalld за допомогою наступної команди. Ви повинні побачити, що порт 5601 доступний на firewalld.
sudo firewall-cmd --list-all
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/31-setup-firewalld.webp?resize=704%2C268&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/31-setup-firewalld.webp?resize=704%2C268&ssl=1)
Тепер відкрийте веб-браузер і зайдіть на IP-адресу OpenSearch Dashboards з портом 5601 (тобто: http:192.168.5.25:5601). Тепер ви побачите сторінку входу в OpenSearch Dashboards.
Введіть створені вами ім’я користувача та пароль. У цьому прикладі користувач – ‘kibanaserver’. Потім натисніть кнопку ‘Увійти’, щоб підтвердити і увійти в OpenSearch Dashboards.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/32-opensearch-dashboards-login.webp?resize=585%2C488&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/32-opensearch-dashboards-login.webp?resize=585%2C488&ssl=1)
Після успішного завершення ви повинні отримати наступну сторінку з повідомленням ‘Ласкаво просимо в OpenSearch Dashboards’. Тепер ви можете натиснути ‘Додати дані’, щоб додати нові дані на ваш сервер OpenSearch або натиснути ‘Дослідити мої власні’ для подальшого налаштування.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/33-opensearch-dashboards.webp?resize=750%2C528&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/33-opensearch-dashboards.webp?resize=750%2C528&ssl=1)
Далі, щоб переконатися, що OpenSearch Dashboards під’єднаний до сервера OpenSearch, виконайте такі дії:
У лівому меню перейдіть у розділ Керування та натисніть ‘Dev Tools’.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/34-dev-tools.webp?resize=314%2C122&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/34-dev-tools.webp?resize=314%2C122&ssl=1)
Тепер введіть запит ‘GET /’ на консолі та натисніть кнопку відтворення. Після успішного виконання ви маєте побачити виведення праворуч із детальною інформацією про ваш сервер OpenSearch. Також ви можете побачити справа вгорі HTTP-код ‘200 – OK’, який підтверджує, що запит виконано без помилок.
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/35-test-opensearch-via-opensearch-dashboards.webp?resize=750%2C257&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/35-test-opensearch-via-opensearch-dashboards.webp?resize=750%2C257&ssl=1)
З огляду на це, ви встановили OpenSearch Dashboards на сервер Rocky Linux за допомогою пакета RPM. Крім того, ви налаштували OpenSearch Dashboards для підключення до сервера OpenSearch.
Висновок
У цій статті ви встановили OpenSearch через RPM на сервер Rocky Linux 9. Ви також забезпечили безпеку OpenSearch за допомогою TLS-сертифікатів, увімкнули автентифікацію та авторизацію, а також налаштували користувачів в OpenSearch. Крім того, ви також налаштували й оптимізували сервер Rocky Linux для розгортання OpenSearch.
Ви також встановили приладові панелі OpenSearch через RPM на сервер Rocky Linux 9. Ви успішно налаштували та під’єднали OpenSearch Dashboards до OpenSearch Server з увімкненою автентифікацією, а також успішно перевірили інсталяцію OpenSearch і OpenSearch Dashboards.