MAATRIX / Блог / VPS для Elasticsearch: установка и настройка кластера

VPS для Elasticsearch: установка и настройка кластера

Блог MAATRIX · 2026-07-07

Elasticsearch — движок полнотекстового поиска и аналитики логов, который любит RAM и быстрый диск. Развернуть его на VPS несложно, но есть системные требования, из-за которых он не стартует у новичков. Пройдём установку, настройку JVM heap, параметры ядра и первый рабочий индекс.

Требования и подготовка сервера

['Elasticsearch работает на JVM и держит индексы в памяти, поэтому RAM — главный ресурс. Реалистичный минимум для рабочей нагрузки — 4 ГБ, комфортно от 8 ГБ. Диск нужен быстрый: поиск и индексация активно читают и пишут.', 'Сначала ставим Java-зависимости и системные утилиты (свежие сборки Elasticsearch идут с собственной JVM, отдельная Java не требуется):', '
sudo apt update && sudo apt install -y apt-transport-https curl gnupg
', 'Elasticsearch требует увеличенного лимита mmap-областей, иначе просто не запустится. Пропишем параметр ядра сразу:', "
echo 'vm.max_map_count=262144' | sudo tee /etc/sysctl.d/99-elasticsearch.conf\nsudo sysctl -p /etc/sysctl.d/99-elasticsearch.conf
"]

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для Elasticsearch

Установка из официального репозитория

['Подключаем репозиторий Elastic и ставим пакет. Ключ и список источников добавляются так:', "
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch \\\n  | sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg\necho 'deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main' \\\n  | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
", '
sudo apt update && sudo apt install -y elasticsearch
', 'При установке пакет один раз выведет пароль суперпользователя elastic — сохраните его. Запускаем сервис:', '
sudo systemctl daemon-reload\nsudo systemctl enable --now elasticsearch
']

Настройка JVM heap

['Ключевое правило тюнинга: heap не больше половины RAM и не выше ~31 ГБ (иначе теряется сжатие указателей). На VPS с 8 ГБ отдайте JVM 4 ГБ, остальное нужно кэшу файловой системы Lucene.', '
sudo nano /etc/elasticsearch/jvm.options.d/heap.options
', '
-Xms4g\n-Xmx4g
', 'Xms и Xmx всегда делают равными, чтобы JVM не тратила время на расширение кучи. После правки перезапустите сервис:', '
sudo systemctl restart elasticsearch
', 'Половина RAM под heap и половина под кэш ОС — не жадность, а необходимость: Lucene читает индексы через кэш файловой системы, и без него поиск замедляется. Быстрый NVMe у MAATRIX здесь особенно кстати.']

Базовая настройка и безопасность

['По умолчанию в версии 8 включены TLS и аутентификация. Для одиночного узла задайте параметры в elasticsearch.yml:', '
# /etc/elasticsearch/elasticsearch.yml\ncluster.name: maatrix-search\nnode.name: node-1\nnetwork.host: 127.0.0.1\ndiscovery.type: single-node
', 'Держите network.host на localhost и ходите к нему через SSH-туннель или reverse proxy — выставлять порт 9200 в интернет нельзя. Проверяем, что узел жив:', '
curl -k -u elastic:PASSWORD https://localhost:9200
', 'Сбросить или задать пароль можно встроенной утилитой:', '
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
']

Первый индекс и проверка

['Создадим индекс, добавим документ и выполним поиск — так убедимся, что всё работает end-to-end.', '
curl -k -u elastic:PASSWORD -X PUT \'https://localhost:9200/articles\'\n\ncurl -k -u elastic:PASSWORD -X POST \'https://localhost:9200/articles/_doc\' \\\n  -H \'Content-Type: application/json\' \\\n  -d \'{"title":"VPS для Elasticsearch","tag":"databases"}\'
', "
curl -k -u elastic:PASSWORD -X GET 'https://localhost:9200/articles/_search?q=VPS&pretty'
", '
  • Не подняли vm.max_map_count — сервис падает при старте с bootstrap check.
  • Heap больше половины RAM — не остаётся памяти под кэш Lucene, поиск тормозит.
  • Открыли 9200 наружу без защиты — публичный доступ к данным и заражение ransomware.
']

Какой VPS взять под Elasticsearch

['Elasticsearch упирается в RAM и скорость диска. AMD EPYC + NVMe у MAATRIX дают быстрый доступ к сегментам индекса и запас производительности на ядро при индексации, а локации UK и США подходят для поиска по зарубежному контенту. Оплата картой РФ, СБП, криптой или токеном MAAT снимает вопрос с иностранными провайдерами, root-доступ нужен для правки sysctl и jvm.options, а ежедневные бэкапы защищают индексы.']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для Elasticsearch

Частые вопросы

Сколько RAM нужно для Elasticsearch?

Рабочий минимум — 4 ГБ, комфортно от 8 ГБ. Половина уходит в JVM heap, вторая половина обязательно должна остаться под кэш файловой системы для Lucene.

Почему heap ограничивают 31 гигабайтом?

Выше этого порога JVM теряет сжатие указателей (compressed oops), и объекты начинают занимать больше памяти. Для крупных данных лучше поднять несколько узлов, чем один с огромным heap.

Можно ли открыть порт 9200 в интернет?

Нет. Известны массовые заражения открытых кластеров. Держите узел на localhost и давайте доступ через SSH-туннель или reverse proxy с аутентификацией.