bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward
eco Початковий Туторіал

Розгортання OpenSearch та Open

calendar_month Aug 18, 2026 schedule 20 хв. читання visibility 5 переглядів
Развертывание OpenSearch и OpenSearch Dashboards на VPS для централизованного логирования и аналитики
info

Потрібен сервер для цього гайду? Ми пропонуємо виділені сервери та VPS у 50+ країнах з миттєвим налаштуванням.

Потрібен сервер для цього гайду?

Розгорніть VPS або виділений сервер за хвилини.

Розгортання OpenSearch та OpenSearch Dashboards на VPS для централізованого логування та аналітики

TL;DR

У цьому детальному посібнику ми крок за кроком налаштуємо OpenSearch та OpenSearch Dashboards на вашому VPS, щоб створити потужну та гнучку систему централізованого збору, зберігання, пошуку та аналізу логів і метрик. Ви дізнаєтеся, як підготувати сервер, встановити всі необхідні компоненти, безпечно сконфігурувати їх з використанням TLS та зворотного проксі, а також забезпечити надійне резервне копіювання та обслуговування.

  • Встановлення OpenSearch та OpenSearch Dashboards актуальних версій (2.15+) на Ubuntu 24.04 LTS.
  • Налаштування безпечного доступу через HTTPS за допомогою Caddy та Let's Encrypt.
  • Конфігурація вбудованих механізмів безпеки OpenSearch для автентифікації та авторизації.
  • Рекомендації щодо вибору оптимального VPS-конфігу для вашого завдання.
  • Створення простого скрипта для автоматичного резервного копіювання даних OpenSearch.
  • Покрокове усунення типових проблем під час розгортання.

Що ми налаштовуємо і навіщо

Схема: Що ми налаштовуємо і навіщо
Схема: Що ми налаштовуємо і навіщо

Ми будемо розгортати зв'язку OpenSearch та OpenSearch Dashboards. OpenSearch — це розподілена, масштабована пошукова та аналітична система, створена на основі Apache Lucene. Вона є форком Elasticsearch і призначена для обробки великих обсягів даних у реальному часі, виконання повнотекстового пошуку, агрегації та аналізу. OpenSearch Dashboards (форк Kibana) — це потужний інструмент візуалізації та управління даними, який дозволяє створювати інтерактивні дашборди, аналізувати логи, метрики та інші дані, що зберігаються в OpenSearch.

У кінцевому підсумку ви отримаєте повністю функціонуючу платформу для централізованого логування, моніторингу та аналітики, здатну збирати логи з різних джерел (додатків, серверів, мережевих пристроїв), зберігати їх, виконувати за ними складні запити та візуалізувати результати. Це критично важливо для налагодження додатків, виявлення проблем з продуктивністю, забезпечення безпеки та дотримання нормативних вимог.

Наприклад, розробник зможе легко знайти помилки в логах свого додатка, соло-фаундер SaaS — відстежувати активність користувачів та продуктивність сервісу, а криптоентузіаст — моніторити роботу своєї ноди, аналізуючи її логи. Можливості застосування практично безмежні.

Альтернативи: хмарні vs. self-hosted

Існує кілька підходів до розгортання таких систем. Основні альтернативи — це хмарні керовані сервіси (наприклад, Amazon OpenSearch Service, Google Cloud Logging, Azure Monitor) або самостійне розгортання (self-hosted) на власному VPS чи виділеному сервері.

Хмарні керовані сервіси пропонують зручність, масштабованість за вимогою та відсутність необхідності в глибоких знаннях адміністрування. Однак вони часто обходяться дорожче, особливо при великих обсягах даних, і можуть мати обмеження в кастомізації. Крім того, ви залежите від конкретного провайдера та його цінової політики.

Self-hosted рішення на VPS, яке ми будемо налаштовувати, дає вам повний контроль над даними, конфігурацією та витратами. Ви платите лише за ресурси сервера, що часто значно дешевше в довгостроковій перспективі. Це ідеальний варіант для тих, хто цінує приватність, хоче глибоко розуміти роботу системи або має специфічні вимоги, які важко реалізувати в хмарі. Так, це вимагає більше зусиль щодо налаштування та обслуговування, але саме для цього і створено цей гайд.

Який VPS-конфіг потрібен для цього завдання

Схема: Який VPS-конфіг потрібен для цього завдання
Схема: Який VPS-конфіг потрібен для цього завдання

OpenSearch — досить вимоглива до ресурсів система, особливо до оперативної пам'яті та дискової підсистеми. Правильний вибір конфігурації VPS критично важливий для стабільної та швидкої роботи.

Мінімальні вимоги для OpenSearch та OpenSearch Dashboards (один вузол)

  • Процесор (CPU): 2 ядра. Бажано сучасні Intel Xeon або AMD EPYC.
  • Оперативна пам'ять (RAM): Мінімум 8 ГБ. OpenSearch активно використовує кеш файлової системи та JVM Heap. Рекомендується виділяти половину доступної RAM для JVM Heap.
  • Диск: 100 ГБ NVMe SSD. Швидкість диска — один із найважливіших факторів для продуктивності OpenSearch, оскільки він постійно індексує та шукає дані. NVMe SSD значно перевершує SATA SSD.
  • Мережа: 1 Гбіт/с. Для передачі логів та доступу до Dashboards.

Рекомендований VPS-план для невеликого продакшн-навантаження

Якщо ви плануєте збирати логи з кількох сервісів або обробляти значний обсяг даних (наприклад, понад 10-20 ГБ логів на день), рекомендується наступний конфіг:

  • Процесор (CPU): 4 ядра.
  • Оперативна пам'ять (RAM): 16-32 ГБ. Це дозволить OpenSearch ефективніше кешувати дані та обробляти складні запити.
  • Диск: 250-500 ГБ NVMe SSD. Обсяг диска залежатиме від обсягу логів та бажаного терміну їх зберігання. Переконайтеся, що диск достатньо продуктивний.
  • Мережа: 1 Гбіт/с.

Для таких характеристик можна розглянути VPS із зазначеними характеристиками, який забезпечить необхідну продуктивність та стабільність.

Коли потрібен dedicated, а не VPS

Виділений сервер (dedicated) стає кращим за VPS, коли:

  • Обсяг даних дуже великий: Якщо ви плануєте зберігати терабайти логів або обробляти сотні гігабайт на день.
  • Потрібна максимальна продуктивність: Для критично важливих систем, де кожна мілісекунда має значення.
  • Необхідна повна ізоляція ресурсів: Виділений сервер гарантує, що ви не будете ділити ресурси з іншими користувачами.
  • Потрібна кастомізація заліза: Наприклад, використання спеціалізованих RAID-контролерів або дуже великих обсягів RAM.

Для дуже великих інсталяцій OpenSearch часто розгортається в кластері з кількох виділених серверів. Для невеликих та середніх завдань VPS цілком достатньо.

Локація: на що впливає

Вибір локації VPS має кілька важливих аспектів:

  • Затримка (Latency): Вибирайте локацію, яка географічно близька до джерел ваших логів (серверів, додатків, користувачів). Це мінімізує затримки під час передачі даних та покращить чутливість Dashboards.
  • Законодавство: Залежно від типу даних, які ви будете зберігати, можуть застосовуватися різні закони про конфіденційність даних (наприклад, GDPR). Вибирайте локацію, яка відповідає вашим юридичним вимогам.
  • Доступність: Деякі локації можуть бути більш стабільними або мати кращу зв'язність з певними регіонами світу.

Для більшості користувачів оптимальним вибором буде датацентр у Європі або Північній Америці, залежно від основної аудиторії та розташування інших ваших серверів.

Підготовка сервера

Схема: Підготовка сервера
Схема: Підготовка сервера

Перед встановленням OpenSearch та OpenSearch Dashboards необхідно виконати базове налаштування та посилення безпеки вашого VPS. Ми будемо використовувати Ubuntu Server 24.04 LTS.

1. Оновлення системи та встановлення базових утиліт

Підключіться до сервера по SSH під обліковим записом root або користувача з правами sudo.


sudo apt update && sudo apt upgrade -y # Оновлення списку пакетів та встановлення оновлень
sudo apt install -y curl wget git vim htop screen net-tools # Встановлення корисних утиліт

2. Створення нового користувача з правами sudo

Робота під root не рекомендується. Створіть нового користувача та додайте його до групи sudo.


sudo adduser adminuser # Створення нового користувача, дотримуйтесь інструкцій
sudo usermod -aG sudo adminuser # Додавання користувача до групи sudo

Тепер вийдіть із сесії root та увійдіть як adminuser.


exit # Вихід з поточної сесії
ssh adminuser@ВАШ_IP_АДРЕС # Вхід під новим користувачем

3. Налаштування SSH-ключів (рекомендовано)

Для підвищення безпеки використовуйте SSH-ключі замість паролів. Спочатку згенеруйте ключі на вашій локальній машині (якщо ще не зробили).


ssh-keygen -t rsa -b 4096 # На вашій локальній машині

Скопіюйте публічний ключ на сервер (замініть adminuser та ВАШ_IP_АДРЕС).


ssh-copy-id adminuser@ВАШ_IP_АДРЕС # На вашій локальній машині

Потім вимкніть автентифікацію за паролем та вхід для root у файлі /etc/ssh/sshd_config на сервері.


sudo vim /etc/ssh/sshd_config # Відкриття файлу конфігурації SSH

Знайдіть та змініть наступні рядки (або додайте, якщо відсутні):


# Вимикаємо вхід для root
PermitRootLogin no

# Вимикаємо автентифікацію за паролем після налаштування SSH-ключів
PasswordAuthentication no

# Переконайтеся, що використовується автентифікація за ключами
PubkeyAuthentication yes

Збережіть зміни та перезапустіть SSH-сервіс.


sudo systemctl restart sshd # Перезапуск SSH-сервісу

4. Налаштування брандмауера (UFW)

Налаштуйте UFW (Uncomplicated Firewall) для дозволу лише необхідного трафіку.


sudo ufw allow OpenSSH # Дозволити SSH-трафік
sudo ufw allow http # Дозволити HTTP-трафік (для Caddy)
sudo ufw allow https # Дозволити HTTPS-трафік (для Caddy)
sudo ufw enable # Увімкнення брандмауера
sudo ufw status # Перевірка статусу брандмауера

Якщо ви використовуєте нестандартний порт для SSH, дозвольте його замість OpenSSH (наприклад, sudo ufw allow 2222/tcp).

5. Встановлення Fail2Ban

Fail2Ban допомагає захиститися від атак перебору паролів, блокуючи IP-адреси, з яких здійснюються невдалі спроби входу.


sudo apt install -y fail2ban # Встановлення Fail2Ban
sudo systemctl enable fail2ban # Увімкнення автозапуску Fail2Ban
sudo systemctl start fail2ban # Запуск Fail2Ban

Для базового налаштування зазвичай достатньо конфігурації за замовчуванням. Ви можете скопіювати основний файл конфігурації для його зміни:


sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # Створення локальної копії
sudo vim /etc/fail2ban/jail.local # Редагування локального файлу

У секції [sshd] переконайтеся, що enabled = true.

Тепер ваш сервер готовий до встановлення OpenSearch та OpenSearch Dashboards.

Встановлення ПЗ — покроково

Схема: Встановлення ПЗ — покроково
Схема: Встановлення ПЗ — покроково

Ми будемо встановлювати OpenSearch 2.15 (актуальна версія на 2026 рік, або новіша стабільна 2.x) та OpenSearch Dashboards 2.15 на Ubuntu 24.04 LTS, використовуючи офіційні APT-репозиторії.

1. Встановлення Java Development Kit (JDK)

OpenSearch вимагає JVM. Рекомендується використовувати OpenJDK 17 LTS або OpenJDK 21 LTS.


sudo apt update # Оновлення списку пакетів
sudo apt install -y openjdk-17-jdk # Встановлення OpenJDK 17
java -version # Перевірка встановленої версії Java

Переконайтеся, що команда java -version виводить інформацію про OpenJDK 17.

2. Додавання репозиторію OpenSearch

Додайте GPG-ключ репозиторію OpenSearch та сам репозиторій до вашої системи.


# Імпорт GPG-ключа OpenSearch
wget -qO - https://artifacts.opensearch.org/publickeys/opensearch.gpg | sudo gpg --dearmor -o /usr/share/keyrings/opensearch-keyring.gpg

# Додавання репозиторію OpenSearch для OpenSearch 2.x
echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring.gpg] 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

Примітка: Якщо на 2026 рік актуальна версія OpenSearch 3.x, змініть шлях репозиторію на /3.x/apt відповідно.

3. Встановлення OpenSearch

Тепер можна встановити сам OpenSearch.


sudo apt install -y opensearch # Встановлення пакета OpenSearch

Після встановлення налаштуйте автозапуск та запустіть сервіс.


sudo systemctl daemon-reload # Перезавантаження systemd
sudo systemctl enable opensearch # Увімкнення автозапуску OpenSearch
sudo systemctl start opensearch # Запуск сервісу OpenSearch
sudo systemctl status opensearch # Перевірка статусу сервісу

Переконайтеся, що сервіс запущений та активний (Active: active (running)).

4. Встановлення OpenSearch Dashboards

OpenSearch Dashboards використовує той самий репозиторій, що й OpenSearch.


sudo apt install -y opensearch-dashboards # Встановлення пакета OpenSearch Dashboards

Налаштуйте автозапуск та запустіть сервіс Dashboards.


sudo systemctl daemon-reload # Перезавантаження systemd
sudo systemctl enable opensearch-dashboards # Увімкнення автозапуску Dashboards
sudo systemctl start opensearch-dashboards # Запуск сервісу OpenSearch Dashboards
sudo systemctl status opensearch-dashboards # Перевірка статусу сервісу

Переконайтеся, що сервіс запущений.

5. Встановлення Caddy (для HTTPS)

Caddy — це потужний, простий у використанні веб-сервер з автоматичною підтримкою HTTPS через Let's Encrypt. Ми будемо використовувати його як зворотний проксі для OpenSearch Dashboards.


sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https # Встановлення необхідних пакетів
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg # Додавання GPG-ключа Caddy
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list # Додавання репозиторію Caddy
sudo apt update # Оновлення списку пакетів
sudo apt install -y caddy # Встановлення Caddy
sudo systemctl enable caddy # Увімкнення автозапуску Caddy
sudo systemctl start caddy # Запуск сервісу Caddy
sudo systemctl status caddy # Перевірка статусу Caddy

Тепер усі компоненти встановлені. Переходимо до їх конфігурації.

Конфігурація

Схема: Конфігурація
Схема: Конфігурація

Конфігурація OpenSearch та OpenSearch Dashboards вимагає уваги до деталей, особливо в частині безпеки. Ми налаштуємо TLS для OpenSearch, вбудовану систему безпеки та зворотний проксі з HTTPS для Dashboards.

1. Конфігурація OpenSearch

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


sudo vim /etc/opensearch/opensearch.yml # Відкриття файлу конфігурації OpenSearch

Внесіть наступні зміни (або розкоментуйте та змініть):


# Основні налаштування кластера
cluster.name: opensearch-cluster
node.name: node-1

# Мережеві налаштування
network.host: 0.0.0.0 # Дозволити підключення з усіх інтерфейсів
http.port: 9200
transport.port: 9300

# Налаштування виявлення (для одного вузла)
discovery.type: single-node

# Шляхи до даних та логів
path.data: /var/lib/opensearch
path.logs: /var/log/opensearch

# Налаштування безпеки (Security Plugin)
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.clientauth_mode: OPTIONAL
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/opensearch.pem
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/opensearch.key
plugins.security.ssl.http.rootcas_filepath: /etc/opensearch/certs/root-ca.pem

plugins.security.ssl.transport.enabled: true
plugins.security.ssl.transport.clientauth_mode: OPTIONAL
plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/opensearch.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/opensearch.key
plugins.security.ssl.transport.rootcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.allow_unsafe_democertificates: false # У production завжди false
plugins.security.audit.type: internal_opensearch
plugins.security.audit.config.internal_opensearch.enabled: true
plugins.security.nodes_dn:
  - "CN=node-1,OU=opensearch,O=OpenSearch,L=Seattle,ST=Washington,C=US" # Замініть на DN вашого вузла

# Для використання вбудованої автентифікації
plugins.security.authcz.admin_dn:
  - "CN=admin,OU=opensearch,O=OpenSearch,L=Seattle,ST=Washington,C=US" # Замініть на DN вашого адміністратора
Генерація сертифікатів

OpenSearch вимагає TLS-сертифікати для безпечної роботи. Ми використовуємо вбудований інструмент opensearch-certgen.


sudo /usr/share/opensearch/modules/opensearch-security/tools/securityadmin.sh -cd /usr/share/opensearch/plugins/opensearch-security/securityconfig/ -icl -nhnv -cacert /usr/share/opensearch/plugins/opensearch-security/securityconfig/root-ca.pem -cert /usr/share/opensearch/plugins/opensearch-security/securityconfig/kirk.pem -key /usr/share/opensearch/plugins/opensearch-security/securityconfig/kirk-key.pem

# Створюємо директорію для сертифікатів
sudo mkdir -p /etc/opensearch/certs

# Генеруємо сертифікати за допомогою opensearch-certgen
# Дотримуйтесь інструкцій, введіть 'y' для створення CA, потім для генерації сертифікатів.
# Переконайтеся, що Common Name (CN) для ноди відповідає 'CN=node-1,OU=opensearch,O=OpenSearch,L=Seattle,ST=Washington,C=US'
# і для адміністратора 'CN=admin,OU=opensearch,O=OpenSearch,L=Seattle,ST=Washington,C=US'
sudo /usr/share/opensearch/plugins/opensearch-security/tools/opensearch-certgen.sh -p /etc/opensearch/certs

# Переміщуємо згенеровані файли
sudo mv /etc/opensearch/certs/kirk-key.pem /etc/opensearch/certs/opensearch.key
sudo mv /etc/opensearch/certs/kirk.pem /etc/opensearch/certs/opensearch.pem
sudo mv /etc/opensearch/certs/root-ca.pem /etc/opensearch/certs/root-ca.pem # Це вже правильне ім'я
sudo chown -R opensearch:opensearch /etc/opensearch/certs # Встановлення правильних прав
sudo chmod -R 700 /etc/opensearch/certs # Захист приватних ключів
Налаштування вбудованої безпеки (Security Plugin)

Після генерації сертифікатів необхідно ініціалізувати плагін безпеки. Спочатку перезапустіть OpenSearch.


sudo systemctl restart opensearch # Перезапуск OpenSearch
sudo systemctl status opensearch # Переконайтеся, що сервіс запущено

Ініціалізуйте плагін безпеки. Це завантажить стандартні ролі та користувачів.


# Запустіть цей скрипт. Він запитає паролі для вбудованих користувачів (admin, kibanaserver, logstash, readall, snapshotrestore).
# Задайте надійний пароль для користувача 'admin'.
sudo /usr/share/opensearch/plugins/opensearch-security/tools/securityadmin.sh -cd /usr/share/opensearch/plugins/opensearch-security/securityconfig/ -icl -nhnv -cacert /etc/opensearch/certs/root-ca.pem -cert /etc/opensearch/certs/opensearch.pem -key /etc/opensearch/certs/opensearch.key

Після цього скрипт попросить вас ввести нові паролі для системних користувачів. Обов'язково задайте надійний пароль для admin.

Перевірте доступ до OpenSearch за допомогою curl (вам буде запропоновано ввести логін/пароль, використовуйте admin і заданий вами пароль).


curl -k --user admin:ВАШ_ПАРОЛЬ_АДМІНА https://localhost:9200/_cat/health?v # Перевірка стану кластера

Якщо ви бачите відповідь, значить OpenSearch запущено і він працює з увімкненою безпекою.

2. Конфігурація OpenSearch Dashboards

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


sudo vim /etc/opensearch-dashboards/opensearch_dashboards.yml # Відкриття файлу конфігурації Dashboards

Внесіть наступні зміни:


server.port: 5601
server.host: "localhost" # Dashboards буде доступний тільки локально, Caddy буде проксіювати запити

# Налаштування OpenSearch
opensearch.hosts: ["https://localhost:9200"] # Підключення до OpenSearch через HTTPS
opensearch.ssl.verificationMode: certificate # Перевірка сертифікатів OpenSearch
opensearch.ssl.certificateAuthorities: ["/etc/opensearch/certs/root-ca.pem"] # Шлях до кореневого CA OpenSearch

# Автентифікація для Dashboards
opensearch.username: "kibanaserver" # Використовуємо системного користувача для Dashboards
opensearch.password: "ВАШ_ПАРОЛЬ_KIBANASERVER" # Пароль, встановлений під час ініціалізації securityadmin.sh

# Налаштування безпеки Dashboards
opensearch_security.auth.type: "basic" # Використовуємо базову автентифікацію
opensearch_security.cookie.secure: true

Замініть ВАШ_ПАРОЛЬ_KIBANASERVER на пароль, який ви задали для користувача kibanaserver під час запуску securityadmin.sh.

Збережіть зміни та перезапустіть OpenSearch Dashboards.


sudo systemctl restart opensearch-dashboards # Перезапуск OpenSearch Dashboards
sudo systemctl status opensearch-dashboards # Перевірка статусу сервісу

3. Конфігурація Caddy для HTTPS

Ми налаштуємо Caddy як зворотний проксі для OpenSearch Dashboards, щоб забезпечити доступ по HTTPS та автоматичне керування SSL-сертифікатами.


sudo vim /etc/caddy/Caddyfile # Відкриття файлу конфігурації Caddy

Замініть вміст файлу наступним (замініть ВАШ_ДОМЕН на ваш реальний домен):


ВАШ_ДОМЕН {
    # Автоматичний HTTPS з Let's Encrypt
    tls {
        dns cloudflare {ENV.CLOUDFLARE_API_TOKEN} # Приклад для Cloudflare DNS.
                                                # Якщо використовуєте інший DNS-провайдер,
                                                # встановіть відповідний плагін Caddy.
                                                # Для HTTP-01 перевірки без DNS - просто tls
    }

    # Стиснення
    encode gzip zstd

    # Зворотний проксі до OpenSearch Dashboards
    reverse_proxy localhost:5601 {
        # Додавання заголовків для коректної роботи
        header_up Host {http.request.host}
        header_up X-Real-IP {http.request.remote}
        header_up X-Forwarded-For {http.request.remote}
        header_up X-Forwarded-Proto {http.request.scheme}
    }

    # Захист від клікджекінгу
    header {
        X-Frame-Options "DENY"
        X-Content-Type-Options "nosniff"
        X-XSS-Protection "1; mode=block"
    }

    # Логування (опціонально)
    log {
        output file /var/log/caddy/access.log {
            roll_size 10MiB
            roll_keep 5
        }
    }
}

Важливо: Для автоматичної видачі TLS-сертифікатів через DNS-01 перевірку (рекомендується, якщо ваш сервер не доступний ззовні по портах 80/443 напряму або якщо ви хочете wildcard-сертифікати), вам потрібно встановити відповідний плагін Caddy (наприклад, для Cloudflare) та вказати API-токен у змінній оточення. Якщо ваш сервер доступний по портах 80/443, достатньо просто tls без додаткових налаштувань.

Для DNS-01 з Cloudflare створіть файл /etc/systemd/system/caddy.service.d/override.conf:


[Service]
Environment="CLOUDFLARE_API_TOKEN=ВАШ_API_ТОКЕН_CLOUDFLARE"

Замініть ВАШ_API_ТОКЕН_CLOUDFLARE на ваш реальний токен (створюється в особистому кабінеті Cloudflare). Потім:


sudo systemctl daemon-reload # Перезавантаження systemd
sudo systemctl restart caddy # Перезапуск Caddy
sudo systemctl status caddy # Перевірка статусу Caddy

Якщо Caddy не може отримати сертифікат, перевірте логи Caddy: sudo journalctl -u caddy --no-pager.

4. Налаштування брандмауера (UFW) для OpenSearch

За замовчуванням OpenSearch доступний на порту 9200. Якщо ви не плануєте прямий доступ до OpenSearch ззовні (що вкрай не рекомендується), переконайтеся, що порт 9200 закритий для зовнішніх підключень. Якщо ви плануєте кластер або доступ для Logstash/Filebeat з інших серверів, дозвольте трафік лише з цих IP-адрес.


# Якщо OpenSearch має бути доступний тільки локально:
sudo ufw deny 9200/tcp # Заборонити зовнішній доступ до OpenSearch

# Якщо потрібно дозволити доступ з конкретної IP-адреси (наприклад, для іншого вузла кластера або Logstash)
# sudo ufw allow from 192.168.1.10 to any port 9200 # Дозволити з 192.168.1.10

sudo ufw reload # Перезавантаження правил UFW
sudo ufw status # Перевірка статусу UFW

5. Перевірка працездатності

Відкрийте в браузері https://ВАШ_ДОМЕН. Ви повинні побачити сторінку входу OpenSearch Dashboards. Використовуйте логін admin та пароль, який ви задали для нього раніше.

Після входу ви можете перейти до розділу "Stack Management" -> "Index Management" або "Dev Tools" для перевірки стану OpenSearch.

У Dev Tools виконайте запит:


GET /_cat/health?v

Ви повинні отримати відповідь, що показує статус кластера (наприклад, green або yellow).

Резервне копіювання та обслуговування

Схема: Резервне копіювання та обслуговування
Схема: Резервне копіювання та обслуговування

Регулярне резервне копіювання є критично важливим для будь-якої продакшн-системи. OpenSearch надає потужні інструменти для створення знімків (snapshots), а для конфігураційних файлів можна використовувати стандартні утиліти.

1. Що резервувати

  • Дані OpenSearch: Індекси, документи, метадані. Це найважливіше. Використовуйте вбудовану функцію знімків OpenSearch.
  • Конфігураційні файли: /etc/opensearch/opensearch.yml, /etc/opensearch/certs/, /etc/opensearch-dashboards/opensearch_dashboards.yml, /etc/caddy/Caddyfile, а також файли безпеки (roles.yml, roles_mapping.yml тощо, якщо ви їх модифікували).
  • Системні налаштування: Наприклад, правила UFW, налаштування Fail2Ban.

2. Налаштування репозиторію для знімків OpenSearch

OpenSearch може зберігати знімки в різних репозиторіях, включаючи файлову систему, Amazon S3, Google Cloud Storage, Azure Blob Storage та інші. Найбільш універсальний та надійний варіант — S3-сумісне сховище.

Спочатку встановіть плагін S3 для OpenSearch:


sudo /usr/share/opensearch/bin/opensearch-plugin install -b repository-s3 # Встановлення S3-плагіна
sudo systemctl restart opensearch # Перезапуск OpenSearch після встановлення плагіна

Потім зареєструйте репозиторій в OpenSearch. Вам знадобляться AWS Access Key ID та Secret Access Key (або аналогічні для S3-сумісного сховища). Ніколи не зберігайте їх безпосередньо у файлах конфігурації OpenSearch.

Створіть файл для зберігання облікових даних у захищеному режимі:


echo "s3.client.default.access_key: ВАШ_AWS_ACCESS_KEY_ID" | sudo tee -a /etc/opensearch/opensearch.yml
echo "s3.client.default.secret_key: ВАШ_AWS_SECRET_ACCESS_KEY" | sudo tee -a /etc/opensearch/opensearch.yml
sudo systemctl restart opensearch # Перезапуск OpenSearch для застосування облікових даних

Тепер зареєструйте репозиторій знімків через API OpenSearch (у Dev Tools Dashboards або curl):


PUT /_snapshot/my_s3_repository
{
  "type": "s3",
  "settings": {
    "bucket": "your-s3-bucket-name",
    "region": "us-east-1",
    "base_path": "opensearch_backups/"
  }
}

Замініть your-s3-bucket-name та us-east-1 на ваші дані.

3. Простий скрипт авторезервного копіювання

Створіть скрипт для автоматичного створення знімків та резервного копіювання конфігураційних файлів.


sudo mkdir /opt/backup_scripts
sudo vim /opt/backup_scripts/opensearch_backup.sh

Вміст opensearch_backup.sh:


#!/bin/bash

DATE=$(date +%Y%m%d%H%M%S)
SNAPSHOT_NAME="snapshot-$DATE"
REPOSITORY_NAME="my_s3_repository"
OPENSEARCH_HOST="https://localhost:9200"
OPENSEARCH_USER="admin"
OPENSEARCH_PASSWORD="ВАШ_ПАРОЛЬ_АДМІНА"
BACKUP_DIR="/var/backups/opensearch_configs"

# Створення знімка OpenSearch
echo "Створення знімка OpenSearch: $SNAPSHOT_NAME..."
curl -k -u "${OPENSEARCH_USER}:${OPENSEARCH_PASSWORD}" -XPUT "${OPENSEARCH_HOST}/_snapshot/${REPOSITORY_NAME}/${SNAPSHOT_NAME}?wait_for_completion=true" -H 'Content-Type: application/json' -d'
{
  "indices": "",
  "ignore_unavailable": true,
  "include_global_state": true
}'

if [ $? -eq 0 ]; then
  echo "Знімок $SNAPSHOT_NAME успішно створено."
else
  echo "Помилка створення знімка $SNAPSHOT_NAME."
fi

# Видалення старих знімків (приклад: зберігати 7 останніх знімків)
# Отримати список усіх знімків
SNAPSHOTS=$(curl -k -u "${OPENSEARCH_USER}:${OPENSEARCH_PASSWORD}" "${OPENSEARCH_HOST}/_snapshot/${REPOSITORY_NAME}/_all" | jq -r '.snapshots[].snapshot')
NUM_SNAPSHOTS=$(echo "$SNAPSHOTS" | wc -l)
if [ "$NUM_SNAPSHOTS" -gt 7 ]; then
    SNAPSHOTS_TO_DELETE=$(echo "$SNAPSHOTS" | head -n $((NUM_SNAPSHOTS - 7)))
    for SNAPSHOT in $SNAPSHOTS_TO_DELETE; do
        echo "Видалення старого знімка: $SNAPSHOT"
        curl -k -u "${OPENSEARCH_USER}:${OPENSEARCH_PASSWORD}" -XDELETE "${OPENSEARCH_HOST}/_snapshot/${REPOSITORY_NAME}/${SNAPSHOT}"
    done
fi


# Резервне копіювання конфігураційних файлів
echo "Резервне копіювання конфігураційних файлів..."
sudo mkdir -p "$BACKUP_DIR"
sudo tar -czvf "$BACKUP_DIR/opensearch_configs-$DATE.tar.gz" \
  /etc/opensearch/opensearch.yml \
  /etc/opensearch/certs \
  /etc/opensearch-dashboards/opensearch_dashboards.yml \
  /etc/caddy/Caddyfile \
  /etc/fail2ban/jail.local \
  /etc/ssh/sshd_config \
  --absolute-names

echo "Конфігураційні файли скопійовано до $BACKUP_DIR/opensearch_configs-$DATE.tar.gz"

# Очищення старих конфігів (приклад: зберігати 7 останніх архівів)
find "$BACKUP_DIR" -name "opensearch_configs-.tar.gz" -mtime +7 -delete

echo "Процес резервного копіювання завершено."

Замініть ВАШ_ПАРОЛЬ_АДМІНА на актуальний пароль. Встановіть jq для обробки JSON:


sudo apt install -y jq # Встановлення jq
sudo chmod +x /opt/backup_scripts/opensearch_backup.sh # Робимо скрипт виконуваним

4. Налаштування Cron для автоматизації

Додайте скрипт до Cron для щоденного виконання.


sudo crontab -e # Відкриття crontab для root (або sudo -u adminuser crontab -e для вашого користувача)

Додайте наступний рядок для виконання скрипта щодня о 03:00 ночі:


0 3   * /opt/backup_scripts/opensearch_backup.sh >> /var/log/opensearch_backup.log 2>&1

Це створюватиме знімок OpenSearch та резервуватиме конфігураційні файли. Знімки зберігатимуться у вашому S3-сумісному сховищі, а конфіги — локально на сервері, з автоматичним очищенням старих версій.

5. Оновлення: Rolling vs. Maintenance Window

  • OpenSearch та OpenSearch Dashboards: Для одного вузла оновлення слід проводити в рамках "вікна обслуговування" (maintenance window). Зупиніть Dashboards, потім OpenSearch, оновіть пакети через apt upgrade, потім запустіть OpenSearch, і лише потім Dashboards. Для кластера з кількох вузлів можна використовувати "rolling upgrade" (оновлення по черзі), але це складніша процедура.
  • Системні пакети: Регулярно запускайте sudo apt update && sudo apt upgrade -y.
  • Caddy: Оновлюється разом із системними пакетами.

Завжди робіть резервну копію перед будь-яким значним оновленням.

Вирішення проблем + FAQ

OpenSearch не запускається або вилітає з помилкою OutOfMemoryError

Що перевірити: OpenSearch дуже вимогливий до пам'яті. Переконайтеся, що JVM Heap Size налаштовано коректно і що у вас достатньо фізичної RAM. За замовчуванням OpenSearch виділяє 1 ГБ RAM, але для більшості завдань цього недостатньо.

Як виправити: Відредагуйте файл /etc/opensearch/jvm.options. Знайдіть рядки -Xms1g та -Xmx1g (або аналогічні) та збільште їх значення до половини доступної RAM, але не більше 30 ГБ (наприклад, -Xms8g та -Xmx8g для сервера з 16 ГБ RAM). Після зміни перезапустіть OpenSearch: sudo systemctl restart opensearch.

OpenSearch Dashboards не може підключитися до OpenSearch

Що перевірити:

  1. Переконайтеся, що OpenSearch запущено та доступний на https://localhost:9200. Перевірте sudo systemctl status opensearch та curl -k https://localhost:9200/_cat/health?v.
  2. Перевірте файл /etc/opensearch-dashboards/opensearch_dashboards.yml. Переконайтеся, що opensearch.hosts вказує на правильну адресу (https://localhost:9200) і що opensearch.username та opensearch.password відповідають користувачу kibanaserver та його паролю.
  3. Перевірте, що сертифікати OpenSearch коректно вказані в opensearch.ssl.certificateAuthorities.

Як виправити: Виправте помилки в конфігураційних файлах, перезапустіть сервіси: sudo systemctl restart opensearch, потім sudo systemctl restart opensearch-dashboards.

Не вдається отримати доступ до Dashboards через домен (Caddy не працює)

Що перевірити:

  1. Переконайтеся, що ваш домен коректно вказує на IP-адресу вашого VPS.
  2. Перевірте, що Caddy запущено: sudo systemctl status caddy.
  3. Перевірте логи Caddy: sudo journalctl -u caddy --no-pager на предмет помилок, пов'язаних з отриманням TLS-сертифіката або проксіюванням.
  4. Переконайтеся, що порти 80 та 443 відкрито в UFW: sudo ufw status.
  5. Перевірте, що OpenSearch Dashboards доступний локально: curl http://localhost:5601 (якщо ви використовуєте server.host: "localhost").

Як виправити: Виправте DNS-записи, помилки в /etc/caddy/Caddyfile, відкрийте порти в UFW. Якщо використовуєте DNS-01 перевірку, перевірте API-токен вашого DNS-провайдера.

Який VPS-конфіг мінімально підійде?

Для тестового або дуже невеликого навантаження, наприклад, для вивчення OpenSearch або збору логів з одного-двох неактивних застосунків, мінімально підійде VPS з 2 vCPU, 8 ГБ RAM та 100 ГБ NVMe SSD. Це дозволить запустити OpenSearch та Dashboards, але продуктивність може бути обмежена при збільшенні обсягу даних або кількості запитів. Для будь-якого продакшн-середовища рекомендується використовувати більш потужні конфігурації.

Що обрати — VPS чи dedicated для цього завдання?

Вибір між VPS та dedicated сервером залежить від масштабу вашого завдання та бюджету. Для більшості індивідуальних розробників, невеликих команд або соло-фаундерів SaaS, які хочуть централізувати логування, VPS буде оптимальним вибором, пропонуючи хороший баланс між вартістю та продуктивністю. Якщо ж ви плануєте обробляти терабайти даних, вимагати максимальної продуктивності або будувати великий кластер, виділений сервер надасть необхідну потужність та ізоляцію ресурсів.

Як налаштувати збір логів з інших серверів?

Що перевірити: OpenSearch сам по собі не збирає логи. Для цього вам знадобляться агенти, такі як Filebeat, Logstash або Fluentd. Ці агенти встановлюються на цільові сервери, налаштовуються для збору логів з файлів або інших джерел та відправляють їх в OpenSearch.

Як виправити: Встановіть та налаштуйте Filebeat на ваших серверах. Filebeat дуже легкий та ефективний. У його конфігурації вкажіть ваш OpenSearch (або Caddy, якщо він проксіює і для Filebeat, але краще прямий доступ до OpenSearch з авторизацією) як цільовий хост, а також користувача та пароль для автентифікації. Переконайтеся, що порти OpenSearch відкрито для IP-адрес ваших агентів в UFW.

Як оновити OpenSearch та OpenSearch Dashboards?

Що перевірити: Перед оновленням завжди перевіряйте офіційну документацію OpenSearch на предмет сумісності версій та специфічних інструкцій для оновлення. Завжди робіть повну резервну копію даних OpenSearch та конфігураційних файлів перед початком процесу.

Як виправити: Для одноузлової установки:

  1. Зупиніть OpenSearch Dashboards: sudo systemctl stop opensearch-dashboards.
  2. Зупиніть OpenSearch: sudo systemctl stop opensearch.
  3. Оновіть пакети: sudo apt update && sudo apt upgrade -y. Це оновить OpenSearch та Dashboards до останньої версії у вашому репозиторії.
  4. Запустіть OpenSearch: sudo systemctl start opensearch.
  5. Запустіть OpenSearch Dashboards: sudo systemctl start opensearch-dashboards.
Після оновлення може знадобитися повторний запуск securityadmin.sh, якщо були зміни в плагіні безпеки.

Висновки та наступні кроки

Схема: Висновки та наступні кроки
Схема: Висновки та наступні кроки

Вітаємо! Ви успішно розгорнули та налаштували потужну систему централізованого логування та аналітики на базі OpenSearch та OpenSearch Dashboards на вашому VPS. Тепер у вас є повний контроль над вашими логами та метриками, що є фундаментом для ефективного моніторингу, налагодження та прийняття рішень.

Ось кілька практичних кроків, куди можна рухатися далі:

  • Налаштування збору логів: Встановіть та сконфігуруйте Filebeat (або Logstash) на ваших серверах та застосунках для надсилання логів до OpenSearch. Вивчіть модулі Filebeat для автоматичного парсингу логів популярних сервісів (Nginx, Apache, MySQL тощо).
  • Створення дашбордів та візуалізацій: Використовуйте OpenSearch Dashboards для створення інформативних дашбордів, які допоможуть вам швидко відстежувати ключові метрики, виявляти аномалії та аналізувати поведінку користувачів або систем.
  • Налаштування сповіщень (Alerting): В OpenSearch є вбудований механізм сповіщень. Налаштуйте його, щоб отримувати повідомлення про критичні події, помилки або перевищення порогових значень метрик електронною поштою, Slack або іншими каналами.
  • Оптимізація продуктивності та масштабування: У міру зростання обсягу даних вивчіть можливості щодо оптимізації індексів (наприклад, Index Lifecycle Management), шардування та реплікації для підвищення продуктивності та відмовостійкості. За необхідності розгляньте можливість додавання додаткових вузлів OpenSearch для створення кластера.

Чи був цей гайд корисним?

Ваш відгук допомагає нам покращувати гайди.

Share this post:

Надішліть гайд тому, кому він може стати в пригоді.

Telegram VKVK WhatsApp Facebook LinkedIn XX

Розгортання OpenSearch та OpenSearch Dashboards на VPS для централізованого логування та аналітики
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.