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

Установка Apache Solr 8.6 на Ubuntu 20.04

• 4 min read • DevOps • Обновлено 19 Nov 2025
Установка Apache Solr 8.6 на Ubuntu 20.04
Установка Apache Solr 8.6 на Ubuntu 20.04

Интерфейс Apache Solr (обзор)

Введение

Apache Solr — масштабируемый, отказоустойчивый NoSQL-поиск, реализованный на Java и распространяемый с открытой лицензией. Solr хранит и ищет данные в режиме близком к реальному времени. Он поддерживает распределённый индекс, репликацию и балансировку нагрузки с автоматическим failover и восстановлением. Запросы можно выполнять через REST API.

В этом руководстве показано, как установить Apache Solr 8.6 на Ubuntu 20.04 и выполнить первичную настройку.

Что потребуется

  • Сервер с Ubuntu 20.04.
  • Доступ с правами root или sudo.

Перед началом — обновление системы

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

apt-get update -y
apt-get upgrade -y

После обновления можно перезагрузить систему, чтобы применить ядро и другие обновления, если это требуется в вашей среде.

Важно: выполняйте обновление в рабочее окно, если это продакшен-сервер.

Установка Java

Solr написан на Java, поэтому на машине должен быть установлен JDK. В примере использован OpenJDK 11.

apt-get install default-jdk -y

Проверка установленной Java:

java -version

Ожидаемый пример вывода:

openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)

Рекомендация: используйте Java 11 для Solr 8.x, если у вас нет строгой зависимости от другой версии.

Скачивание и установка Apache Solr

Скачайте релиз Solr 8.6.0 из архива Apache (пример):

wget https://archive.apache.org/dist/lucene/solr/8.6.0/solr-8.6.0.tgz

Распакуйте архив:

tar xzf solr-8.6.0.tgz

Запустите встроенный инсталлятор, который создаст системный сервис и расположит файлы в /opt/solr:

bash solr-8.6.0/bin/install_solr_service.sh solr-8.6.0.tgz

Пример ожидаемого вывода инсталлятора:

Service solr installed.
Customize Solr startup configuration in /etc/default/solr.in.sh
? solr.service - LSB: Controls Apache Solr as a Service
     Loaded: loaded (/etc/init.d/solr; generated)
     Active: active (exited) since Sat 2020-07-25 03:00:19 UTC; 5s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 4692 ExecStart=/etc/init.d/solr start (code=exited, status=0/SUCCESS)

Jul 25 03:00:09 ubuntu2004 systemd[1]: Starting LSB: Controls Apache Solr as a Service...
Jul 25 03:00:09 ubuntu2004 su[4694]: (to solr) root on none
Jul 25 03:00:09 ubuntu2004 su[4694]: pam_unix(su-l:session): session opened for user solr by (uid=0)
Jul 25 03:00:19 ubuntu2004 systemd[1]: Started LSB: Controls Apache Solr as a Service.

После установки Solr слушает порт 8983 по умолчанию. Проверить можно командой:

netstat -tunelp | grep 8983

Ожидаемый вывод:

tcp6       0      0 :::8983                 :::*                    LISTEN      108        24019      4756/java

Управление сервисом Solr

Solr установлен как systemd-сервис. Основные команды:

systemctl start solr
systemctl stop solr
systemctl status solr
systemctl enable solr

Если сервис не запускается, посмотрите логи:

journalctl -u solr --no-pager | tail -n 200
/opt/solr/logs/solr.log

Создание коллекции

Коллекция (collection) — логический индекс, который может быть распределён между узлами. Core — экземпляр индекса на отдельном ноде.

Создадим коллекцию mytestcollection с использованием шаблона data_driven_schema_configs:

su - solr -c "/opt/solr/bin/solr create -c mytestcollection -n data_driven_schema_configs"

Ожидаемый вывод:

Created new core 'mytestcollection'

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

  • Сервис solr активен и слушает порт 8983.
  • Коллекция mytestcollection отображается в панели и отвечает на запросы.

Доступ к веб-интерфейсу

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

http://ваш-ip-сервера:8983/solr

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

В левом меню выберите mytestcollection, чтобы увидеть статус коллекции и статистику:

Статистика коллекции Apache Solr

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

Простой запрос к коллекции через curl (если коллекция пуста, ответ будет с нулём результатов):

curl "http://localhost:8983/solr/mytestcollection/select?q=*:*&wt=json&indent=true"

Если сервис возвращает JSON с полем response.numFound, запрос успешен.

Резервное копирование и обновление схемы

  • Резервные копии индекса делаются с помощью snapshot/replication или создания экспортируемых дампов. Планируйте резервные копии перед изменением схемы.
  • Для изменения схемы используйте managed schema API или обновление через конфигурационные файлы в Zookeeper (для SolrCloud).

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

  • По умолчанию Solr не требует аутентификации. Для продакшена обязательно включите защиту: Basic Auth, TLS (HTTPS) и контроль доступа.
  • Защитите порт 8983 брандмауэром (ufw) или настройте обратный прокси (nginx) с TLS и ограничением доступа по IP.

Пример разрешения доступа по ufw:

ufw allow from 10.0.0.0/24 to any port 8983 proto tcp

Или блокировать весь доступ и открывать только через VPN/SSH-туннель.

Тонкая настройка JVM и памяти

Solr использует JVM-память, настройки находятся в /etc/default/solr.in.sh. Отрегулируйте SOLR_HEAP при больших объёмах данных. Для теста оставьте значения по умолчанию, затем увеличивайте по нагрузке.

Отладка и распространённые проблемы

  • Сервис не стартует: проверьте логи systemd и /opt/solr/logs/solr.log.
  • Порт 8983 занят: найдите процесс по netstat или ss и измените порт в настройках запуска.
  • Проблемы с Java: убедитесь, что JAVA_HOME корректен и соответствует установленной версии.
  • Коллекция не отображается: проверьте права пользователя solr и директории /var/solr.

Альтернативные подходы

  • Использовать SolrCloud для распределённого кластера с Zookeeper.
  • Развернуть Solr в контейнере Docker для простой изоляции и версионирования конфигураций.
  • В качестве альтернативы рассмотреть Elasticsearch, если требуется тесная интеграция с Elastic Stack.

Роли и чек-лист (быстрая проверка)

Администратор:

  • Установил Java и проверил java -version.
  • Запустил инсталлятор solr и убедился в активном systemd-сервисе.
  • Настроил брандмауэр и доступ к панели.

Разработчик:

  • Создал коллекцию и протестировал базовые запросы.
  • Загрузил тестовые документы и проверил поиск по ним.

DevOps/Инженер по безопасности:

  • Настроил TLS/Basic Auth или ограничил доступ по IP.
  • Настроил мониторинг и логи (Prometheus/JMX, централизованные логи).

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

  • Solr запущен и отвечает на http://:8983/solr (статус 200).
  • Коллекция создана и возвращает корректный JSON на select?q=:.
  • Бекап или стратегия восстановления документирована.

Короткое руководство по обновлению (минимальные шаги)

  1. Сделать полную резервную копию индекса/конфигураций.
  2. Остановить сервис solr.
  3. Установить новую версию и протестировать на staging.
  4. Перенести конфигурации и запустить сервис.

Заключение

Мы рассмотрели установку Apache Solr 8.6 на Ubuntu 20.04: обновление системы, установка Java, скачивание и установка Solr, управление сервисом, создание коллекции и основные рекомендации по безопасности и отладке. Для продакшен-окружения дополнительно настройте аутентификацию, TLS и мониторинг. Для подробной документации и передовых практик посетите официальную документацию Apache Solr.

Факт-бокс:

  • Версия примера: Solr 8.6.0
  • Порт по умолчанию: 8983
  • Тип установки: systemd-сервис, файлы в /opt/solr
  • Пользователь сервиса: solr

Короткая контрольная проверка: откройте http://ваш-ip:8983/solr и убедитесь, что на странице отображается ваша коллекция.

Поделиться: 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 быстро