Как установить Apache Solr на Debian 12

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, чтобы продолжить установку.

установить openjdk

После завершения установки проверьте версию Java, выполнив следующую команду.

java --version

Следующий вывод подтверждает, что Java OpenJDK 17 установлена.

проверить java

Загрузка и установка 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

Далее выполните следующую команду для установки Apache Solr solr-9.4.0.tgz через скрипт установщика install_solr_service.sh.

sudo bash ./install_solr_service.sh solr-9.4.0.tgz

Во время процесса вы увидите следующее:

установить solr

На изображении вы должны увидеть подробный статус установки Apache Solr:

  • По умолчанию директория установки Apache Solr /opt/solr с каталогом данных /var/solr.
  • Новый пользователь системы solr создается автоматически и будет использоваться для запуска процесса Apache Solr.
  • Новый служебный сценарий под названием solr.service также создается, которым можно управлять через systemctl и сервис команда.

Теперь проверьте работу службы solr с помощью следующей команды.

sudo service solr status

Появится следующий результат, который подтверждает, что служба solr работает в фоновом режиме и запущена через сервисный скрипт.

проверка службы 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, как показано ниже.

приборная панель 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.

страница входа в solr

Если попытка входа прошла успешно, на экране должна появиться панель Apache Solr.

Приборная панель 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’” вот так:

создан индекс solr.

Наконец, вернитесь на панель управления Apache Solr. Затем выберите test_core на Селектор ядра раздел выпадающего меню.

селектор ядра

По завершении вы должны увидеть подробную информацию для индекса test_core например, следующее:

сведения о solr

Заключение

В заключение отметим, что вы завершили пошаговую установку Apache Solr на сервер Debian 12. Вы установили Apache Solr с Java OpenJDK 17 и обеспечили безопасность установки Apache Solr, добавив аутентификацию с помощью плагина BasicAuth. Кроме того, вы узнали, как создать индекс Solr с помощью командной строки. С этого момента вы можете использовать свою установку Solr, создав кластер Solr.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *