
Apache Solr – это поисковая платформа с открытым исходным кодом, построенная на Apache Lucene и предназначенная для создания мощных возможностей поиска и индексирования приложений. Она обеспечивает расширенный полнотекстовый поиск, фасетный поиск, индексирование в реальном времени и распределённый поиск, что делает её популярным выбором для создания поисковых систем и систем поиска данных. Solr обладает высокой масштабируемостью и оптимизирован для работы с большими объемами данных, поэтому часто используется в корпоративных средах для решения таких задач, как поиск по веб-сайтам, электронная коммерция и анализ больших данных. Его REST-подобный API позволяет легко интегрироваться с другими системами, а также поддерживает такие функции, как подсветка предложений по запросу и геопространственный поиск. Гибкость, производительность и поддержка сообщества сделали Solr ведущим решением для организаций, нуждающихся в надежной поисковой функциональности.
В этом руководстве мы покажем вам пошаговые инструкции по установке Apache Solr на сервер Debian 12. Вы установите Apache Solr с Java OpenJDK 17, защитите его с помощью плагина BasicAuth, а затем узнаете, как создать индекс Solr с помощью командной строки.
Предварительные условия
Прежде чем приступить к работе, отметьте следующее:
- Сервер Debian 12 с памятью не менее 4 ГБ.
- Пользователь, не являющийся root, с правами администратора sudo.
Установка Java OpenJDK
Apache Solr – это платформа корпоративного поиска, основанная на Apache Lucene и работающая поверх Java JRE (Java Runtime Environment). В настоящее время Solr требует как минимум Java JRE (Java Runtime Environment) версии 11, а вы будете использовать OpenJDK 17, который можно установить из репозитория Debian.
Перед началом работы выполните следующую команду, чтобы обновить индекс пакетов Debian.
sudo apt update
Теперь выполните следующую команду для установки Java OpenJDK на вашу машину Debian. В Debian 12 пакет default-jdk относится к Java OpenJDK 17, который может использовать Apache Solr.
sudo apt install default-jdk
Введите y, чтобы продолжить установку.
После завершения установки проверьте версию Java, выполнив следующую команду.
java --version
Следующий вывод подтверждает, что Java OpenJDK 17 установлена.
Загрузка и установка Apache Solr
После установки Java OpenJDK вы загрузите и установите Apache Solr на свою машину с помощью скрипта установщика. На данный момент последней версией Apache Solr является версия 9.4. Посетите официальную страницу загрузки Apache Solr, чтобы получить информацию о последней версии.
Перед загрузкой Apache Solr установите некоторые зависимости, выполнив следующую команду.
sudo apt install curl lsof bc
Теперь выполните приведенную ниже команду curl, чтобы загрузить бинарный пакет Apache Solr. На момент написания этой статьи последней версией Apache Solr является v9.4.0. После загрузки пакет Apache Solr будет доступен по адресу solr-9.4.0.tgz.
curl -qO https://downloads.apache.org/solr/solr/9.4.0/solr-9.4.0.tgz
После этого выполните следующую команду, чтобы извлечь из файла сценарий установщика Apache Solr solr-9.4.0.tgz. Скрипт программы установки install_solr_service.sh будет извлечен из вашего текущего рабочего каталога.
tar xzf solr-9.4.0.tgz solr-9.4.0/bin/install_solr_service.sh --strip-components=2
Далее выполните следующую команду для установки Apache Solr solr-9.4.0.tgz через скрипт установщика install_solr_service.sh.
sudo bash ./install_solr_service.sh solr-9.4.0.tgz
Во время процесса вы увидите следующее:
На изображении вы должны увидеть подробный статус установки Apache Solr:
- По умолчанию директория установки Apache Solr /opt/solr с каталогом данных /var/solr.
- Новый пользователь системы solr создается автоматически и будет использоваться для запуска процесса Apache Solr.
- Новый служебный сценарий под названием solr.service также создается, которым можно управлять через systemctl и сервис команда.
Теперь проверьте работу службы solr с помощью следующей команды.
sudo service solr status
Появится следующий результат, который подтверждает, что служба solr работает в фоновом режиме и запущена через сервисный скрипт.
Вы также можете использовать следующую команду для перезапуска или остановки службы Solr.
sudo service solr restart sudo service solr stop
Настройка Apache Solr
Теперь, когда вы установили Apache Solr. На следующем этапе вы выполните следующие действия:
- Настройка системы Debian: Вы настроите машину Debian, увеличив shmmax, nr_hugepages и системные ограничения на максимальное количество процессов и открытых файлов.
- Настройка Solr: Вы увеличите максимальное количество памяти кучи для Solr и настроите определённый локальный IP-адрес в качестве хоста Apache Solr.
Давайте начнем.
Настройка системы Debian
Чтобы оптимизировать Apache Solr, вы должны увеличить shmmax, nr_hugepages, максимальные процессы, и максимально открытые файлы на вашей машине Debian.
Выполните следующую команду, чтобы увеличить параметры ядра shmmax и nr_hugepages на вашей машине Debian.
sudo echo 4294967295 > /proc/sys/kernel/shmmax sudo echo 1536 > /proc/sys/vm/nr_hugepages
Затем откройте файл /etc/security/limits.conf с помощью следующей команды редактора nano.
sudo nano /etc/security/limits.conf
Добавьте следующую конфигурацию в нижнюю часть строки. Это позволит установить максимальный процесс и максимальное количество открытых файлов для пользователя Solr на 65000.
solr soft nofile 65000 solr hard nofile 65000 solr soft nproc 65000 solr hard nproc 65000
Сохраните файл и выйдите из редактора после завершения работы.
Наконец, проверьте ulimits (max process и max open files) для пользователя solr, выполнив следующую команду.
sudo -H -u solr bash -c "ulimit -aH"
В случае успеха у вас должны появиться значения ulimit максимальный процесс и максимально открытые файлы для пользователя solr настроен на 65000.
Настройка Apache Solr
После внесения изменений в вашу машину Debian, теперь вы измените конфигурацию Apache Solr, установив максимальное значение кучной памяти на 4 ГБ, и запустите Solr на определенном локальном IP-адресе 192.168.10.15.
Откройте конфигурацию Apache Solr по умолчанию /etc/default/solr.in.sh с помощью команды редактора nano, приведенной ниже.
sudo nano /etc/default/solr.in.sh
Настройте значение по умолчанию SOLR_HEAP параметр с максимально допустимым объемом памяти. В этом примере вы разрешите Apache Solr работать и использовать максимальное количество памяти 4 ГБ.
SOLR_HEAP="4g"
Затем откомментируйте SOLR_HOST и SOLR_JETTY_HOST и введите IP-адрес вашего сервера. В этом примере вы запустите Apache Solr с локального IP-адреса 192.168.10.15.
SOLR_HOST="192.168.10.15" SOLR_JETTY_HOST="192.168.10.15"
Сохраните и закройте файл, когда закончите.
Далее выполните следующую команду, чтобы перезапустить службу solr и применить сделанные изменения.
sudo service solr restart
После выполнения этой команды Apache Solr будет запущен на IP-адресе вашего сервера 192.168.10.15, а максимальное количество памяти в куче будет составлять 4 ГБ.
Запустите веб-браузер и введите IP-адрес сервера, а затем порт 8983, например http://192.168.10.15:8983/. Если все сделано правильно, вы должны увидеть страницу приборной панели Apache Solr, как показано ниже.
Отсюда видно, что каталог установки Apache Solr /opt/solr запущен с Java OpenJDK 17.
Защита Apache Solr с помощью плагина BasicAuth
В этом разделе вы обеспечите безопасность Apache Solr, добавив аутентификацию с помощью плагина BasicAuth и создав нового пользователя Solr. Для этого необходимо создать определенную конфигурацию, а затем определить модуль аутентификации и модуль авторизации для пользователей Solr.
Создайте новый файл /var/solr/data/security.json с помощью следующей команды редактора nano. В этом примере каталог данных по умолчанию для Apache Solr имеет следующий вид /var/solr/data/.
sudo nano /var/solr/data/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"} } }
Сохраните и закройте файл, когда закончите.
Сделав это, вы обеспечите безопасность Apache Solr следующим образом:
- BasicAuthPlugin для аутентификации пользователей и создайте нового пользователя solr с паролем solrRocks.
- RuleBasedAuthorizationPlugin для авторизации и настройте пользователя solr как администратора, который может получить доступ к любым индексам в вашей установке Apache Solr.
Далее выполните следующую команду, чтобы перезапустить службу solr и применить сделанные изменения.
sudo service solr restart
Теперь вернитесь в веб-браузер и перезагрузите вкладку Apache Solr. Если все прошло успешно, вы должны быть перенаправлены на страницу входа в Solr, как показано ниже.
Войдите в систему под пользователем solr и пароль SolrRocks.
Если попытка входа прошла успешно, на экране должна появиться панель Apache Solr.
Создание первого индекса Apache Solr
На этом установка Apache Solr завершена, и теперь вы можете создать свой первый индекс Solr с помощью командной строки. Но перед этим необходимо убедиться, что аутентификация по умолчанию для Solr настроена.
Откройте файл конфигурации Solr /etc/default/solr.in.sh с помощью следующей команды редактора nano.
sudo nano /etc/default/solr.in.sh
Откомментируйте следующие строки, чтобы установить аутентификацию Solr по умолчанию через базовую аутентификацию, и введите значение solr пользователь и пароль SolrRocks , который вы создали.
SOLR_AUTH_TYPE="basic" SOLR_AUTHENTICATION_OPTS="-Dbasicauth=solr:SolrRocks"
Сохраните файл и выйдите из редактора, когда закончите.
Теперь выполните приведенную ниже команду systemctl, чтобы перезапустить службу solr и применить изменения.
sudo service solr restart
Далее выполните следующую команду, чтобы создать первый индекс Solr test_core.
su - solr -c "/opt/solr/bin/solr create -c test_core -n TestCore"
Когда индекс будет создан, вы увидите ожидаемый результат “Создано новое ядро ‘test_core’” вот так:
Наконец, вернитесь на панель управления Apache Solr. Затем выберите test_core на Селектор ядра раздел выпадающего меню.
По завершении вы должны увидеть подробную информацию для индекса test_core например, следующее:
Заключение
В заключение отметим, что вы завершили пошаговую установку Apache Solr на сервер Debian 12. Вы установили Apache Solr с Java OpenJDK 17 и обеспечили безопасность установки Apache Solr, добавив аутентификацию с помощью плагина BasicAuth. Кроме того, вы узнали, как создать индекс Solr с помощью командной строки. С этого момента вы можете использовать свою установку Solr, создав кластер Solr.