Cómo instalar Elasticsearch en Debian 9 Stretch

Cómo instalar Elasticsearch en Debian 9 Stretch

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.

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.
  • El entorno de ejecución de Java o JRE.
  • Acceso a línea de comandos con un usuario con permisos de sudo, o el propio root.
  • Conexión a Internet.

¿No dispones del entorno mínimo necesario? Entonces puede que te interese consultar antes nuestra guía de instalación de Java en Debian 9 Stretch.

También necesitaremos alguna herramienta 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

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:

como instalar elasticsearch en debian 9 stretch

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" : "bbof9D8TSiOKu4oT1P2kVg",
  "version" : {
    "number" : "7.10.0",
    "build_flavor" : "oss",
    "build_type" : "deb",
    "build_hash" : "51e9d6f22758d0374a0f3f5c6e8f3a7997850f96",
    "build_date" : "2020-11-09T21:30:33.964949Z",
    "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"
}

instalar elasticsearch en debian 9 stretch

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:

instalar y configurar elasticsearch en debian 9 stretch

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 hacerlo invitándonos a un café:

 

O dejando una propina simbólica de 1 $ desde PayPal:

¡Gracias!

 

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando...

Deja una respuesta