En este artículo vamos a ver cómo instalar Elasticsearch en Debian 9 Stretch paso a paso, de forma qu puedas implementar sobre tu servidor o VPS Debian este potente servicio de búsqueda y análisis de texto para Big Data.
Tabla de contenidos
Antes de instalar Elasticsearch en Debian 9 Stretch
Para poder seguir los pasos de esta guía de instalación de Elasticsearch en Debian 9 Stretch debemos partir de unos requisitos mínimos:
- Un sistema Debian 9 Stretch convenientemente actualizado y con 1 GB de memoria RAM libre disponible.
- Acceso a línea de comandos con un usuario con permisos de sudo, o el propio root.
- Conexión a Internet.
También necesitaremos algunas herramientas que obtendremos desde los repositorios del sistema, por lo que actualizamos las listas de paquetes:
~$ sudo apt update
E instalamos los paquetes necesarios:
~$ sudo apt install -y ca-certificates apt-transport-https
Cómo configurar el repositorio de Elasticsearch para Debian 9 Stretch
Puesto que en la distribución no está incluido, necesitamos configurar el repositorio oficial de Elasticsearch para Debian 9 Stretch, un repositorio cuyos paquetes están firmados, por lo que empezaremos instalando la clave pública:
~$ wget -qO- https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add
Creamos el archivo para el nuevo repositorio:
~$ sudo nano /etc/apt/sources.list.d/elasticsearch.list
El contenido será la siguiente línea:
deb http://artifacts.elastic.co/packages/oss-7.x/apt stable main
Guardamos y cerramos el archivo, y actualizamos las listas de paquetes, que ahora incluirán el software disponible en el nuevo repositorio de Elasticsearch para Debian 9.
~$ sudo apt update
Cómo instalar Elasticsearch en Debian 9 Stretch
Para instalar Elasticsearch en Debian 9 Stretch una vez configurado el repositorio, necesitaremos el paquete elasticsearch-oss:
~$ sudo apt install -y elasticsearch-oss
La descarga puede llevar algunos minutos, ya que el paquete de Elasticsearch para Debian 9 supera los 300 MB de tamaño. Una vez instalado se crea un nuevo servicio en Debian 9, el servicio elasticsearch.service o simplemente elasticsearch, que no queda iniciado ni en ejecución. Antes de iniciar este servicio realizaremos algunos ajustes de configuración.
Ajustar la memoria RAM
Por defecto Elasticsearch viene configurado para utilizar 1 GB de RAM de la memoria libre del sistema, cantidad que podemos ajustar fácilmente editando el archivo jvm.options:
~$ sudo nano /etc/elasticsearch/jvm.options
Buscaremos las directivas Xms y Xmx:
... -Xms1g -Xmx1g ...
Aunque no es muy intuitivo, los valores por defecto configuran 1 GB, pero podríamos cambiar los valores por cantidades menores, como 512 MB si la máquina Debian 9 no dispone de mucha memoria:
... -Xms512m -Xmx512m ...
O podríamos indicar tamaños mayores, como 2 GB:
... -Xms2g -Xmx2g ...
Terminados los ajustes, guardamos el archivo.
Iniciar el servicio
Para iniciar el servicio utilizamos la opción start del comando systemctl:
~$ sudo systemctl start elasticsearch
Podemos comprobar en cualquier momento el estado del servicio Elasticsearch con el comando systemctl status elasticsearch
:
El servicio se encuentra iniciado aunque no está habilitado para arrancar junto a Debian 9, así que debemos habilitarlo si queremos tenerlo siempre disponible:
~$ sudo systemctl enable elasticsearch
Prueba de Elasticsearch en Debian 9 Stretch
Con el servicio ya en funcionamiento, podemos realizar una sencilla prueba desde consola, conectando localmente al puerto 9200 con cualquier herramienta que permita realizar conexiones HTTP, como wget:
~$ wget -qO- localhost:9200/ { "name" : "debian9", "cluster_name" : "elasticsearch", "cluster_uuid" : "mkKjMqIATZuJHbxoluU-CQ", "version" : { "number" : "7.10.2", "build_flavor" : "oss", "build_type" : "deb", "build_hash" : "747e1cc71def077253878a59143c1f785afa92b9", "build_date" : "2021-01-13T00:42:12.435326Z", "build_snapshot" : false, "lucene_version" : "8.7.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
Obtenemos información básica de Elasticsearch, incluyendo el número de la versión instalada.
Conexión desde red
Por defecto Elasticsearch está configurado para funcionar localmente, por lo que sólo admite conexiones desde la propia máquina Debian 9. Si queremos que el servicio sea accesible desde red necesitaremos ajustar su archivo principal de configuración, elasticsearch.yml:
~$ sudo nano /etc/elasticsearch/elasticsearch.yml
Buscamos la directiva network.host:
... #network.host: 192.168.0.1 ...
Está desactivada, así que podemos activarla o añadir una nueva con el valor de la dirección IP del adaptador con el que la máquina Debian 9 conecta a red, o 0.0.0.0:
... #network.host: 192.168.0.1 network.host: 0.0.0.0 ...
Como Elasticsearch está preparado para trabajar como un sistema distribuido en red, debemos configurar la lista de nodos, que por defecto no está configurada:
... #discovery.seed_hosts: ["host1", "host2"] ...
Activaremos esta directiva, aunque en este caso sólo trabajaremos con la máquina local:
... #discovery.seed_hosts: ["host1", "host2"] discovery.seed_hosts: ["localhost"] ...
Guardamos el archivo y reiniciamos el servicio:
~$ sudo systemctl restart elasticsearch
Configurar el firewall de Debian 9 para Elasticsearch
En el caso de tener activado el firewall UFW en Debian 9 necesitaremos añadir una regla para permitir conexiones al servicio Elasticsearch:
~$ sudo ufw allow 9200/tcp
Acceso desde red
Para acceder desde red tendremos que indicar la dirección IP, nombre DNS, dominio, etc. añadiendo el puerto de conexión 9200.
Por ejemplo, la máquina Debian 9 sobre la que hemos realizado este tutorial es accesible en el subdominio debian9.local.lan, así que podemos realizar una prueba de conexión desde un navegador usando http://debian9.local.lan:9200 como URL:
Obtenemos la misma información que en el caso de la prueba local desde consola.
Ya tienes el servicio listo para empezar a trabajar.
Conclusión
Ahora que sabes cómo instalar Elasticsearch en Debian 9 Stretch ya puedes probar este servicio de búsqueda para Big Data, empezar a desarrollar o proporcionar el soporte necesario para aplicaciones de terceros.
Si tienes alguna duda o pregunta, sugerencia de mejora o actualización, notificación de algún posible error, etc. puedes dejar un comentario que atenderemos lo antes posible.
Y si te ha servido este tutorial de instalación de Elasticsearch en Debian 9 Stretch y quieres agradecérnoslo colaborando con el mantenimiento de este sitio y creación de más guías y tutoriales, puedes ayudarnos dejando una propina simbólica de 1 $ desde PayPal:
O, si te sientes especialmente agradecido, puedes invitarnos a un café:
¡Gracias!