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

actualizar repo

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.

instala openjdk

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.

comprobar java

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

descargar apache solr

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:

instalar solr

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.

comprobar servicio solr

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.

sistema de configuración

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.

panel solr

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.

página de acceso solr

Si el intento de inicio de sesión se realiza correctamente, deberías ver el panel de control de Apache Solr en tu pantalla.

Panel Solr

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:

índice solr creado.

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.

selector de núcleo

Al finalizar, deberías ver información detallada del índice test_core como la siguiente:

detalles de solr

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.

También te podría gustar...