Cómo instalar Apache Solr en Debian 12
Apache Solr es una plataforma de búsqueda de código abierto basada en Apache Lucene, diseñada para crear potentes capacidades de búsqueda e indexación de aplicaciones. Proporciona búsqueda avanzada de texto completo, búsqueda facetada, indexación en tiempo real y búsqueda distribuida, lo que la convierte en una opción popular para construir motores de búsqueda y sistemas de recuperación de datos. Solr es altamente escalable y está optimizado para grandes volúmenes de datos, por lo que suele utilizarse en entornos empresariales para tareas como la búsqueda en sitios web, el comercio electrónico y el análisis de grandes volúmenes de datos. Su API tipo REST permite una fácil integración con otros sistemas, y admite funciones como resaltar las sugerencias de consulta y la búsqueda geoespacial. La flexibilidad, el rendimiento y el apoyo de la comunidad de Solr lo han convertido en una solución líder para las organizaciones que necesitan una sólida funcionalidad de búsqueda.
En esta guía, te mostraremos instrucciones paso a paso sobre cómo instalar Apache Solr en el servidor Debian 12. Instalarás Apache Solr con Java OpenJDK 17, lo asegurarás mediante el complemento BasicAuth y, a continuación, aprenderás a crear un índice Solr utilizando la línea de comandos.
Requisitos previos
Antes de continuar, comprueba lo siguiente
- Un servidor Debian 12 con al menos 4 GB de memoria.
- Un usuario no root con privilegios de administrador sudo.
Instalación del OpenJDK de Java
Apache Solr es una plataforma de búsqueda empresarial basada en Apache Lucene y que se ejecuta sobre Java JRE (Java Runtime Environment). En este momento, Solr requiere al menos la versión 11 de Java JRE (Java Runtime Environment), y tú utilizarás OpenJDK 17, que puedes instalar desde el repositorio de Debian.
Antes de empezar, ejecuta el siguiente comando para actualizar y refrescar el índice de paquetes de Debian.
sudo apt update
Ahora ejecuta el siguiente comando para instalar Java OpenJDK en tu máquina Debian. En Debian 12, el paquete default-jdk se refiere a Java OpenJDK 17, que puede utilizar Apache Solr.
sudo apt install default-jdk
Escribe y para proceder a la instalación.
Una vez finalizada la instalación, comprueba la versión de Java ejecutando el siguiente comando.
java --version
La siguiente salida confirma que Java OpenJDK 17 está instalado.
Descarga e instalación de Apache Solr
Tras instalar Java OpenJDK, a continuación descargarás e instalarás Apache Solr en tu máquina mediante el script de instalación. En este momento, la última versión de Apache Solr es la 9.4. Visita la página oficial de descargas de Apache Solr para obtener información sobre la última versión.
Antes de descargar Apache Solr, instala algunas dependencias ejecutando el siguiente comando.
sudo apt install curl lsof bc
Ahora ejecuta el siguiente comando curl para descargar el paquete binario de Apache Solr. En el momento de escribir esto, la última versión de Apache Solr es la v9.4.0. Una vez descargado, el paquete de Apache Solr estará disponible en solr-9.4.0.tgz.
curl -qO https://downloads.apache.org/solr/solr/9.4.0/solr-9.4.0.tgz
A continuación, ejecuta el siguiente comando para extraer el script instalador de Apache Solr del archivo solr-9.4.0.tgz. El script instalador install_solr_service.sh se extraerá de tu directorio de trabajo actual.
tar xzf solr-9.4.0.tgz solr-9.4.0/bin/install_solr_service.sh --strip-components=2
A continuación, ejecuta el siguiente comando para instalar Apache Solr solr-9.4.0.tgz mediante el script instalador install_solr_service.sh.
sudo bash ./install_solr_service.sh solr-9.4.0.tgz
Durante el proceso, verás lo siguiente:
En la imagen, deberías ver el estado detallado de tu instalación de Apache Solr:
- El directorio de instalación por defecto de Apache Solr es /opt/solr con el directorio de datos /var/solr.
- Se crea automáticamente el nuevo usuario de sistema solr, que se utilizará para ejecutar el proceso Apache Solr.
- También se crea un nuevo script de servicio llamado solr.service, que se puede gestionar mediante los comandos systemctl y service .
Ahora verifica el servicio solr utilizando el siguiente comando.
sudo service solr status
Se mostrará la siguiente salida, que confirma que el servicio solr se está ejecutando en segundo plano y se ha iniciado mediante el script de servicio.
También puedes utilizar el siguiente comando para reiniciar o detener el servicio Solr.
sudo service solr restart sudo service solr stop
Configurar Apache Solr
Ahora que ya has instalado Apache Solr. En el siguiente paso, harás lo siguiente:
- Configurar el sistema Debian: Ajustarás tu máquina Debian aumentando shmmax, nr_hugepages y los límites del sistema tanto para los procesos máximos como para los archivos abiertos.
- Configurar Solr: Aumentarás la memoria de montón máxima para Solr y configurarás una dirección IP local específica como host Apache Solr.
Comencemos.
Configurar el sistema Debian
Para optimizar Apache Solr, debes aumentar shmmax, nr_hugepages, max processes y max open files en tu máquina Debian.
Ejecuta el siguiente comando para aumentar los parámetros del núcleo shmmax y nr_hugepages en tu máquina Debian.
sudo echo 4294967295 > /proc/sys/kernel/shmmax sudo echo 1536 > /proc/sys/vm/nr_hugepages
A continuación, abre el archivo /etc/security/limits.conf utilizando el siguiente comando del editor nano.
sudo nano /etc/security/limits.conf
Añade la siguiente configuración al final de la línea. Esto establecerá el proceso máximo y los archivos abiertos máximos para el usuario Solr en 65000.
solr soft nofile 65000 solr hard nofile 65000 solr soft nproc 65000 solr hard nproc 65000
Guarda el archivo y sal del editor cuando hayas terminado.
Por último, verifica los ulímites (proceso máximo y archivos abiertos máximos) para el usuario solr ejecutando el siguiente comando.
sudo -H -u solr bash -c "ulimit -aH"
Si tienes éxito, ahora deberías tener configurados el ulimit max proceso y max archivos abiertos para el usuario solr a 65000.
Configurar Apache Solr
Tras realizar los cambios en tu máquina Debian, ahora vas a modificar la configuración de Apache Solr para establecer la memoria heap máxima en 4 GB, y ejecutar Solr en una dirección IP local específica 192.168.10.15.
Abre la configuración por defecto de Apache Solr /etc/default/solr.in.sh utilizando el comando del editor nano que aparece a continuación.
sudo nano /etc/default/solr.in.sh
Ajusta la opción por defecto SOLR_HEAP con tu memoria máxima permitida. En este ejemplo, permitirás que Apache Solr se ejecute y utilice una memoria máxima de 4 GB.
SOLR_HEAP="4g"
A continuación, descomenta las opciones SOLR_HOST y SOLR_JETTY_HOST e introduce la dirección IP de tu servidor. En este ejemplo, ejecutarás Apache Solr dentro de la dirección IP local 192.168.10.15.
SOLR_HOST="192.168.10.15" SOLR_JETTY_HOST="192.168.10.15"
Guarda y cierra el archivo cuando hayas terminado.
A continuación, ejecuta el siguiente comando para reiniciar el servicio solr y aplicar los cambios que has realizado.
sudo service solr restart
Tras ejecutar el comando, tu Apache Solr se estará ejecutando en la dirección IP de tu servidor 192.168.10.15, y la memoria heap máxima será de 4 GB.
Inicia tu navegador web y visita la dirección IP del servidor seguida del puerto 8983, como http://192.168.10.15:8983/. Deberías ver la página del panel de control de Apache Solr como la siguiente si todo se ha hecho correctamente.
Desde ahí, puedes ver que el directorio de instalación de Apache Solr /opt/solr se está ejecutando con Java OpenJDK 17.
Asegurar Apache Solr con el Plugin BasicAuth
En esta sección, asegurarás Apache Solr añadiendo la autenticación mediante el plugin BasicAuth y creando un nuevo usuario Solr. Para ello, debes crear una configuración específica y, a continuación, definir el módulo de autenticación y el módulo de autorización para los usuarios de Solr.
Crea un nuevo archivo /var/solr/data/security.json utilizando el siguiente comando del editor nano. En este ejemplo, el directorio de datos por defecto para Apache Solr es /var/solr/data/.
sudo nano /var/solr/data/security.json
Introduce la siguiente configuración en el archivo.
{ "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"} } }
Guarda y cierra el archivo cuando hayas terminado.
Al hacer esto, estarás asegurando Apache Solr mediante lo siguiente:
- BasicAuthPlugin para la autenticación de usuarios y crear un nuevo usuario solr con contraseña solrRocks.
- RuleBasedAuthorizationPlugin para la autorización y configura el usuario solr como administrador que puede acceder a cualquier índice dentro de tu instalación de Apache Solr.
A continuación, ejecuta el siguiente comando para reiniciar el servicio solr y aplicar los cambios que has realizado.
sudo service solr restart
Ahora vuelve a tu navegador web y recarga la pestaña Apache Solr. Si todo ha ido bien, deberías ser redirigido a la página de inicio de sesión de Solr como la siguiente.
Inicia sesión con el usuario solr y la contraseña SolrRocks.
Si el intento de inicio de sesión se realiza correctamente, deberías ver el panel de control de Apache Solr en tu pantalla.
Crear el primer índice Apache Solr
Llegados a este punto, ya has terminado la instalación de Apache Solr, ahora puedes crear tu primer índice Solr a través de la línea de comandos. Pero antes, debes asegurarte de que está configurada la autenticación por defecto para Solr.
Abre el archivo de configuración de Solr /etc/default/solr.in.sh utilizando el siguiente comando del editor nano.
sudo nano /etc/default/solr.in.sh
Descomenta las siguientes líneas para configurar la autenticación por defecto de Solr mediante autenticación básica e introduce el usuario solr y la contraseña SolrRocks que has creado.
SOLR_AUTH_TYPE="basic" SOLR_AUTHENTICATION_OPTS="-Dbasicauth=solr:SolrRocks"
Guarda el archivo y sal del editor cuando hayas terminado.
Ahora ejecuta el siguiente comando systemctl para reiniciar el servicio solr y aplicar los cambios.
sudo service solr restart
A continuación, ejecuta el siguiente comando para crear tu primer índice Solr test_core.
su - solr -c "/opt/solr/bin/solr create -c test_core -n TestCore"
Una vez creado el índice, verás la salida esperada«Creado nuevo núcleo ‘núcleo_prueba’» como ésta:
Por último, vuelve a tu panel de control de Apache Solr. A continuación, selecciona test_core en la sección del menú desplegable Selector de núcleos.
Al finalizar, deberías ver información detallada del índice test_core como la siguiente:
Conclusión
Para concluir, ya has completado la instalación de Apache Solr en el servidor Debian 12 paso a paso. Has instalado Apache Solr con Java OpenJDK 17 y has asegurado la instalación de Apache Solr añadiendo autenticación mediante el complemento BasicAuth. Además, también has aprendido a crear un índice Solr mediante la línea de comandos. A partir de ahora, puedes aprovechar tu instalación de Solr creando un clúster Solr.