Cómo instalar Apache Solr en AlmaLinux 9

Apache Solr o Solr es una plataforma de búsqueda de nivel empresarial basada en la biblioteca Apache Lucene. SOlr son las siglas de Searching On Lucene with Replication (Búsqueda en Lucene con Replicación) y es una plataforma de búsqueda gratuita y de código abierto escrita en Java. Solr es una de las plataformas de búsqueda más populares del sector y ofrece alta disponibilidad mediante replicación y conmutación por error y recuperación automáticas.

Solr es una plataforma de búsqueda altamente escalable y fiable para crear aplicaciones empresariales y ofrece un alto rendimiento. Admite la indexación distribuida y ofrece tolerancia a fallos. Algunas grandes empresas de Internet como Adobe, Netflix, Instagram, Magento y Bloomberg utilizan Apache Solr como plataforma de búsqueda para sus productos.

En este tutorial aprenderás a instalar Apache Solr en un servidor AlmaLinux 9. También configurarás MaxHeapMemory para Solr, establecerás límites y configurarás la autenticación básica para Solr.

Requisitos previos

Para completar esta guía, asegúrate de que tienes lo siguiente:

  • Un servidor AlmaLinux 9 con al menos 2/4 GB de memoria. Este ejemplo utiliza un AlmaLinux con nombre de host almalinux9 y memoria de 8 GB.
  • Un usuario no root con privilegios de administrador sudo/root.

Instalación de Java OpenJDK 11

En el momento de escribir esto, la última versión de Apache Solr es la v9.x y requiere Java JRE (Java Runtime Environment) al menos v11 o superior. En este primer paso, instalarás el Java OpenJDK 11 a través del repositorio appstream de AlmaLinux.

Introduce el siguiente comando dnf para instalar Java OpenJDK 11 en tu servidor AlmaLinux. Cuando se te solicite, introduce y para confirmar y pulsa ENTER.

sudo dnf install java-11-openjdk java-11-openjdk-devel

instalar java openjdk

Una vez instalado Java OpenJDK, ejecuta el siguiente comando para verificar la versión de Java y asegurarte de que la instalación se ha realizado correctamente.

java --version

La siguiente salida confirma que Java OpenJDK 11 está instalado.

comprobar la versión de java

Instalación de Apache Solr

Tras instalar Java OpenJDK 11, iniciarás la instalación de Apache Solr. Existen varios paquetes binarios de Apache Solr para varios sistemas operativos, como Linux, macOS y Windows.

En esta sección, instalarás Apache Solr mediante el paquete binario oficial en tu servidor AlmaLinux.

Antes de descargar Apache Solr, instala los siguientes paquetes en tu servidor AlmaLinux utilizando el siguiente comando.

sudo dnf install curl lsof chkconfig -y

A continuación, descarga el paquete binario de Apache Solr 9.2.1 utilizando el siguiente comando curl.

curl -qO https://downloads.apache.org/solr/solr/9.2.1/solr-9.2.1.tgz

Ejecuta el siguiente comando para extraer el script instalador del paquete binario de Apache Solr‘solr-9.2.1.tgz‘.

tar xzf solr-9.2.1.tgz solr-9.2.1/bin/install_solr_service.sh --strip-components=2

Deberías ver el script instalador de Apache Solr ‘install_solr_service.sh’ en tu directorio actual.

Imagen

A continuación, instala Apache Solr ejecutando el script de instalación » install_solr_service.sh » de la siguiente manera:

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

Cuando la instalación se realice correctamente, la salida que recibirás debería ser similar a ésta

instalar solr

Apache Solr se está ejecutando en el puerto por defecto 8983 con el directorio SOLR_HOME /var/solr/data. Y en este momento, se está ejecutando en el PID (ID de proceso) 12084.

Ahora, ejecuta el siguiente comando para detener el proceso actual de Apache Solr que se está ejecutando en el PID 12084.

kill -9 12084

A continuación, puedes iniciar el servicio Apache Solr utilizando el siguiente comando.

sudo service solr start

iniciar servicio solr

Por último, verifica el servicio Apache Solr utilizando el siguiente comando.

sudo service solr status

Si Apache Solr se ejecuta, aparecerá una salida similar en tu terminal.

verificar solr

Optimización de la instalación de Apache Solr

En esta sección, configurarás y optimizarás cómo debe ejecutarse Apache Solr. En este ejemplo, Apache Solr se ejecutará con una memoria heap máxima de 4 GB y una dirección IP interna de«192.168.10.15«.

En primer lugar, aumenta los valores shmmax y nr_hugepages ejecutando el siguiente comando.

sudo echo 4294967295 > /proc/sys/kernel/shmmax
sudo echo 1536 > /proc/sys/vm/nr_hugepages

Abre el archivo ‘/etc/default/solr.in.sh’ utilizando el comando editor nano.

sudo nano /etc/default/solr.in.sh

Descomenta el parámetro SOLAR_HEAP y cambia el valor por la memoria heap máxima que quieras utilizar. Asegúrate de ajustar el valor con la memoria total de tu servidor.

SOLR_HEAP="4g"

Descomenta los parámetros SOLR_JETTY_HOST y SOLR_HOST y cambia el valor con tu dirección IP interna. En este ejemplo, el Apache Solr se ejecutará en ‘192.168.10.15’.

SOLR_HOST="192.168.10.15"
SOLR_JETTY_HOST="192.168.10.15"

Guarda los cambios y cierra el editor cuando hayas terminado.

A continuación, ejecuta el siguiente comando para reiniciar el servicio Apache Solr y aplicar los cambios.

sudo service solr restart

configurar solr

Por último, ejecuta el siguiente comando para verificar el estado de Apache Solr. Si la configuración de Apache Solr se ha realizado correctamente, deberías ver que se ha modificado la memoria heap máxima. En este ejemplo, ha cambiado a 4 GB.

sudo service solr status

configurar solr ulimit

Configurar límites y Firewalld

Otra configuración importante del sistema para ejecutar Apache Solr es configurar los procesos máximos y los archivos abiertos máximos, que requieren al menos 65.000. Para conseguirlo, tienes que modificar el archivo‘/etc/security/limits.conf‘. Y después, también necesitas configurar firewalld y abrir el puerto 8983 para Apache Solr.

Abre el archivo ‘/etc/security/limits. conf’ utilizando el comando editor nano que aparece a continuación.

sudo nano /etc/security/limits.conf

Añade la siguiente configuración al final de la línea.

solr   soft   nofile   65000
solr   hard   nofile   65000
solr   soft   nproc    65000
solr   hard   nproc    65000

Guarda el archivo y cierra el editor.

Ahora, ejecuta el siguiente comando para comprobar el máximo de procesos y el máximo de archivos abiertos en tu sistema. Si es correcto, deberías ver un valor de 65.000 en ambas configuraciones.

sudo -H -u solr bash -c "ulimit -aH"

configurar ulimit

Ahora ejecuta el siguiente comando para comprobar que la configuración de ulimit es correcta.

sudo service solr restart

Los mensajes de advertencia de ulimit desaparecen, lo que confirma que la configuración se ha realizado correctamente.

comprobar ulimit solr

A continuación, abre el puerto 8983 en el firewalld utilizando el siguiente comando.

sudo firewall-cmd --add-port=8983/tcp --permanent

A continuación, recarga firewalld para aplicar los cambios y verificar la lista de reglas de firewalld.

sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Si la configuración de firewalld se ha realizado correctamente, deberías ver el puerto 8983 en la lista de reglas de firewalld.

configurar firewalld

Por último, inicia tu navegador web y navega hasta la dirección IP de tu servidor seguida del puerto 8983 (es decir: http://192.168.10.15:8983/). Deberías obtener el panel de control de Apache Solr como el siguiente:

panel de control apache solr

Proteger Apache Solr con autenticación básica

Por defecto, Apache Solr se instala sin autenticación. Para protegerlo, puedes utilizar varios métodos, como la autenticación básica, la autenticación Kerberos, la autenticación JWT y la autenticación basada en reglas. En este ejemplo, asegurarás Apache Solr mediante autenticación básica.

Crea un nuevo archivo security.json en el directorio de datos de Apache Solr /var/solr/data/ utilizando el editor nano que aparece a continuación.

sudo nano /var/solr/data/security.json

Introduce la siguiente configuración para crear un nuevo usuario solr con contraseña SolrRocks.

{
  "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 sal del editor cuando hayas terminado.

A continuación, ejecuta el siguiente comando para reiniciar Apache Solr y aplicar los cambios.

sudo service solr restart

En este punto, Apache Solr ya está funcionando con la autenticación básica activada.

Ahora vuelve al navegador web y actualiza el panel de administración de Apache Solr. O simplemente visita es decir: http://192.168.10.15:8983/. Si lo consigues, deberías obtener la página de inicio de sesión de Apache Solr como ésta:

Inicio de sesión en Apache Solr

Introduce el usuario de Apache Solr solr y la contraseña SolrRocks, y haz clic en Iniciar sesión. Si la autenticación se realiza correctamente, aparecerá el panel de control de Apache Solr.

Además, haz clic en el menú Seguridad y verás que Apache Solr se está ejecutando con el plugin basic_auth activado.

autenticación solr

Crear el primer índice

Con todo configurado, estás listo para crear un primer índice Solr.

En primer lugar, abre el archivo /etc/default/solr.in.sh utilizando el siguiente comando del editor nano.

sudo nano /etc/default/solr.in.sh

Descomenta el parámetro SOLR_AUTH_TYPE y SOLR_AUTHENTICATION_OPTS.

SOLR_AUTH_TYPE="basic"
SOLR_AUTHENTICATION_OPTS="-Dbasicauth=solr:SolrRocks"

Guarda el archivo y sal de él cuando hayas terminado.

Ahora ejecuta el siguiente comando para reiniciar Apache Solr y aplicar los cambios.

sudo service restart solr

A continuación, crea un nuevo índice Solr llamado test_core utilizando el siguiente comando.

su - solr -c "/opt/solr/bin/solr create -c test1_core -n Test1Core"

Una vez creado, deberías obtener una salida«Creado nuevo núcleo test1_core«.

crear núcleo solr

Vuelve al panel de administración web de Apache, haz clic en el menú Core Admin y deberías tener disponible el núcleo test1_core.

verificar núcleo

Conclusión

¡Enhorabuena! Ya has instalado correctamente Apache Solr en el servidor AlmaLinux 9. También has configurado ulimit para optimizar Apache Solr y firewalld para asegurar Apache Solr. Por último, también has habilitado la autenticación básica en Apache Solr, has accedido al panel de administración web de Apache Solr y has creado el primer Índice Solr.

También te podría gustar...