Гид по технологиям

Установка и защита Apache Solr на Rocky Linux

• 8 min read • DevOps • Обновлено 21 Nov 2025
Apache Solr на Rocky Linux: установка и защита
Apache Solr на Rocky Linux: установка и защита

Важно: примеры выполнены для Rocky Linux 8.5 и Solr 8.11. Версии Java и Solr могут отличаться — корректируйте URL и зависимости под вашу версию.

Что такое Solr (коротко)

Solr — это серверная поисковая платформа с открытым исходным кодом на базе библиотеки Apache Lucene. Она обеспечивает полнотекстовый поиск, масштабируемую индексацию, репликацию, автоматическое восстановление и управление шардами. Термин “core” в Solr обозначает отдельный индекс (Lucene index) с собственными конфигурациями.

Ключевые термины:

  • Solr core — отдельный индекс/логическая единица в Solr.
  • Replication / Sharding — способы масштабирования и распределения данных.
  • BasicAuth — плагин базовой аутентификации Solr.

Содержимое руководства

  • Требования и подготовка
  • Установка Java (OpenJDK 11)
  • Установка Solr (8.11 как пример)
  • Настройка лимитов ulimit для пользователя solr
  • Проверка работы и открытие порта в firewalld
  • Включение базовой аутентификации security.json
  • Создание первого core через CLI
  • Безопасность, отладка, playbook, чек-листы, критерии приёмки, FAQ

Требования

  • Операционная система: Rocky Linux 8.5 (Green Obsidian)
  • Память: минимум 2 ГБ (для тестовой среды)
  • CPU: 2 ядра
  • Права root или sudo

Установка Java OpenJDK

Solr требует Java (минимум 1.8). В примере используется OpenJDK 11.

  1. Установите OpenJDK 11:
sudo dnf install java-11-openjdk java-11-openjdk-devel

Подтвердите установку, введя y и нажав Enter.

  1. Проверьте версию Java:
java --version

Ожидаемый вывод будет похож на:

openjdk 11.0.13 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)

Если Java установлена корректно — переходите к установке Solr.

Установка Solr на Rocky Linux

В этом руководстве демонстрируется установка Solr 8.11 (пример). Актуальную ссылку на бинарник уточняйте на официальном сайте Apache Solr.

  1. Перейдите в /opt и скачайте архив:
cd /opt/
wget https://downloads.apache.org/lucene/solr/8.11.0/solr-8.11.0.tgz
  1. Извлеките инсталлятор из архива:
tar xzf solr-8.11.0.tgz solr-8.11.0/bin/install_solr_service.sh --strip-components=2

После этого в каталоге /opt появится скрипт install_solr_service.sh.

  1. Запустите установщик (пример вызывается с правами sudo):
sudo bash ./install_solr_service.sh solr-8.11.0.tgz -i /opt -d /var/solr -u solr -s solr -p 8983

Что делает инсталлятор (по умолчанию для этого примера):

  • Устанавливает Solr в /opt/solr
  • Данные Solr хранит в /var/solr
  • Создаёт системного пользователя solr
  • Создаёт systemd-сервис solr
  • По умолчанию web-интерфейс доступен на порту 8983

Статус установки Solr

Примечание: установщик может вывести предупреждение про лимиты открытых файлов и процессов — это будет исправлено в следующем разделе.

  1. Проверьте прослушиваемые порты (фильтр по java):
ss -aplnt | grep java

Пример вывода:

LISTEN 0      50     [::ffff:127.0.0.1]:7983            *:*    users:(("java",pid=4512,fd=48))
LISTEN 0      50                           *:8983            *:*    users:(("java",pid=4512,fd=157))
  1. Если требуется перезапустить сервисы systemd или применить новую unit-файл конфигурации:
sudo systemctl daemon-reload
sudo systemctl enable --now solr
sudo systemctl status solr

Обычно сервис solr будет отображаться как active (exited) — это ожидаемо, потому что сам процесс потом создаётся и управляется внутренними механизмами Solr.

Запуск и включение Solr

Настройка лимитов (open files / max processes) для пользователя solr

Solr рекомендует высокий предел открытых файлов и процессов. Во время установки инсталлятор может показать предупреждения о лимитах. Установим значения 65000 для nofile и nproc.

  1. Отредактируйте /etc/security/limits.conf:
sudo nano /etc/security/limits.conf

Добавьте в конец файла:

solr   soft   nofile   65000
solr   hard   nofile   65000
solr   soft   nproc    65000
solr   hard   nproc    65000

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

  1. Проверьте лимиты от имени пользователя solr:
sudo -u solr ulimit -a

В выводе вы увидите значения open files и max user processes, равные 65000.

Проверка ulimit

  1. Перезапустите сервис Solr:
sudo systemctl restart solr

Теперь предупреждения об ограничениях должны исчезнуть.

Проверка работы и открытие порта в firewalld

Чтобы получить доступ к веб-интерфейсу Solr, добавьте порт 8983 в firewalld и перезагрузите конфигурацию.

sudo firewall-cmd --add-port=8983/tcp --permanent
sudo firewall-cmd --reload

Откройте в браузере:

http://вашегосервера>:8983/

Вы должны увидеть Solr Dashboard:

Панель управления Solr

По умолчанию аутентификация отключена — это мы исправим далее.

Безопасность: включение Basic Authentication

Solr поддерживает плагин BasicAuth (solr.BasicAuthPlugin). Для включения создадим файл security.json в каталоге с данными Solr (/var/solr/data).

Важно: файл security.json содержит учётные данные в хеше. В примере показан готовый хеш и пароль для демонстрации. В боевой среде используйте собственные уникальные пароли и ключи.

  1. Перейдите в каталог данных и создайте security.json:
cd /var/solr/data/
sudo -u solr nano security.json

Вставьте следующий пример конфигурации:

{
  "authentication":{
    "blockUnknown": true,
    "class":"solr.BasicAuthPlugin",
    "credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="},
    "realm":"My Solr users",
    "forwardCredentials": false
  },
  "authorization":{
    "class":"solr.RuleBasedAuthorizationPlugin",
    "permissions":[{"name":"all", "role":"admin"}],
    "user-role":{"solr":"admin"}
  }
}

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

  1. Перезапустите Solr для применения настроек:
sudo systemctl restart solr
  1. Вернитесь в браузер и откройте http://:8983/ — вы должны увидеть страницу входа.

Страница входа Solr

Авторизация в примере: пользователь solr, пароль SolrRocks. После входа в разделе Security появятся активные плагины аутентификации и роли.

Включённая аутентификация Solr

Создание первого Solr core из командной строки

Core — это отдельный индекс с собственными конфигурациями. Создание core можно выполнить через web-интерфейс или CLI.

  1. Сначала настройте клиентскую аутентификацию для команды solr. Скопируйте шаблон solr.in.sh.orig в solr.in.sh:
cd /opt/solr/bin/
cp solr.in.sh.orig solr.in.sh
sudo nano solr.in.sh

В файле: раскомментируйте SOLR_AUTH_TYPE и назначьте basic, а также SOLR_AUTHENTICATION_OPTS с учётными данными:

SOLR_AUTH_TYPE="basic"
SOLR_AUTHENTICATION_OPTS="-Dbasicauth=solr:SolrRocks"

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

  1. Создайте core под владельцем solr:
su - solr -c "/opt/solr/bin/solr create -c new_core -n ConfigName"
  1. Проверьте наличие core в панели управления Solr.

Solr Core


Рекомендации по безопасности и эксплуатации

  • Не храните plaintext-пароли в общедоступных файлах. Для автоматизации используйте менеджеры секретов (Vault, AWS Secrets Manager и т.п.).
  • Ограничьте доступ по firewall и настройте iptables/FirewallD так, чтобы порт 8983 был доступен только из доверенных сетей.
  • Периодически обновляйте Solr и Java, чтобы закрывать уязвимости.
  • Настройте мониторинг (метрики JMX/Prometheus) и логирование для контроля состояния JVM и задержек поиска.

Отладка и частые ошибки

  • Solr не запускается / статус inactive: проверьте логи /var/solr/logs и systemd journal: sudo journalctl -u solr -b
  • “Too many open files”: проверьте ulimit и /etc/security/limits.conf, перезапустите сессии и службу.
  • Не удаётся подключиться к порту 8983: проверьте firewall-cmd и ss -aplnt | grep 8983.
  • Аутентификация не срабатывает: убедитесь, что security.json корректен и что Solr читаем права владельца solr.

Playbook: пошаговые команды (мини-SOP)

  1. Подготовка сервера:
sudo dnf update -y
sudo dnf install wget nano -y
  1. Установка Java и проверка:
sudo dnf install java-11-openjdk java-11-openjdk-devel -y
java --version
  1. Установка Solr (см. раздел установки выше).
  2. Настройка лимитов в /etc/security/limits.conf.
  3. Открытие порта в firewalld и проверка доступа.
  4. Создание security.json, рестарт Solr.
  5. Настройка solr.in.sh для CLI и создание core.

Чек-листы по ролям

Администратор (инфраструктура):

  • Настроить firewall и SELinux (если включено)
  • Установить Java и Solr
  • Внести лимиты в limits.conf
  • Обеспечить бэкапы каталогов /var/solr и /opt/solr

Разработчик (пример индексации):

  • Создать core с нужной схемой
  • Проверить схемы (schema.xml / managed-schema)
  • Написать и проверить индексирующие скрипты

DevOps/Безопасность:

  • Настроить секретное хранилище для паролей
  • Ограничить доступ к порту 8983
  • Подключить метрики JVM и алерты

Критерии приёмки

  • Solr отвечает на запросы на порту 8983 из доверенной сети
  • Для доступа требуется аутентификация (страница логина отображается)
  • Лимиты nofile и nproc у пользователя solr равны 65000
  • Core создан и доступен в админке

Тесты и примеры проверки (Acceptance)

  • Протестировать создание core: команда su - solr -c “/opt/solr/bin/solr create -c testcore -n ConfigName” должна завершиться успешно.
  • Проверить прометей-метрики (если подключены): метрики JVM доступны и показывают heap usage.
  • Протестировать отказоустойчивость: перезапустить службу systemd и убедиться, что Solr возвращает статус и веб-интерфейс доступен.

Шпаргалка команд (Cheat sheet)

  • Установка Java: sudo dnf install java-11-openjdk java-11-openjdk-devel
  • Установка Solr: sudo bash ./install_solr_service.sh solr-8.11.0.tgz -i /opt -d /var/solr -u solr -s solr -p 8983
  • Перезапуск сервиса: sudo systemctl restart solr
  • Статус сервиса: sudo systemctl status solr
  • Проверка порта: ss -aplnt | grep java
  • Открыть порт: sudo firewall-cmd –add-port=8983/tcp –permanent && sudo firewall-cmd –reload

Советы по миграции и совместимости

  • При переходе между мажорными версиями Solr читайте релиз-ноты: возможны изменения в конфигурации solrconfig.xml и schema.
  • Если у вас распределённый разверток (SolrCloud), планируйте миграцию с учётом zookeeper и настройки коллекций.

Дополнительные рекомендации по безопасности

  • Используйте TLS/HTTPS для web UI и API запросов (настраивается через proxy: nginx/Apache или через TLS прямо в Solr).
  • Не выставляйте порт 8983 напрямую в интернет без защиты.
  • Ограничьте права файловой системы: /var/solr должен принадлежать solr:solr и иметь минимально необходимые права.

Частые ошибки и способы их исправления

  • “permission denied” при чтении security.json: проверьте владельца и права файла: sudo chown solr:solr /var/solr/data/security.json && sudo chmod 600 /var/solr/data/security.json
  • После изменения /etc/security/limits.conf не применяются значения: убедитесь, что вы перезапустили сессию пользователя solr или систему, и проверьте ulimit -a под пользователем solr.

Короткий глоссарий

  • Core — отдельный индекс в Solr
  • Schema — структура полей и типов в core
  • Replica — копия шарда для отказоустойчивости
  • Shard — сегмент коллекции в SolrCloud

Часто задаваемые вопросы (FAQ)

Как задать собственного администратора вместо примера?

Создайте новый пароль, сгенерируйте соответствующий хеш (инструменты есть в репозитории Solr) и обновите секцию credentials в /var/solr/data/security.json, затем перезапустите Solr.

Можно ли запускать Solr без systemd (как пользователь)?

Да, для разработки можно запускать Solr напрямую из /opt/solr/bin/solr start, но для продакшена рекомендуется systemd unit.

Как включить TLS для Solr?

Рекомендуется использовать обратный прокси (nginx) с SSL или настроить TLS напрямую в JVM/контейнере Solr. TLS в Solr требует дополнительной конфигурации сертификатов.

Как делать бэкап core?

Используйте snapshot/backup API Solr или делайте копирование каталога данных с остановленным процессом/используя файловые снимки (LVM, ZFS).


Итог

Поздравляем — вы установили Solr, настроили лимиты, включили Basic Authentication и создали первый core. Далее настройте мониторинг, резервное копирование и интеграцию с системами CI/CD.

Краткий план дальнейших шагов:

  • Подключите TLS и менеджер секретов
  • Настройте мониторинг и алерты
  • Подумайте о SolrCloud/репликации при росте нагрузки
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро