Cómo instalar Elasticsearch en Fedora 36/35/34

En esta ocasión vamos a ver cómo instalar Elasticsearch en Fedora 36, 35 y 34 paso a paso, de modo que puedas trabajar con este potente sistema de búsquedas y analíticas de datos en formato JSON sobre tu servidor o VPS Fedora.

Antes de instalar Elasticsearch en Fedora 36/35/34

Para poder completar los pasos de esta guía de instalación de Elasticsearch en Fedora 36, 35 y 34 es necesario partir de los siguientes requisitos:

  • Una instalación actualizada de Fedora 36, 35 ó 34.
  • Un usuario con permisos de sudo.
  • Conexión a Internet.

También será necesaria alguna herramienta que obtendremos desde los repositorios de Fedora, por lo que actualizamos la información de los mismos:

~$ sudo yum update

E instalamos los paquetes necesarios:

~$ sudo yum install -y chkconfig

Cómo configurar el repositorio de Elasticsearch para Fedora 36/35/34

Vamos a configurar el repositorio oficial de Elasticsearch para Fedora 36, 35 y 34, ya que los paquetes existentes en el repositorio de la distribución no están al día. Hay que tener en cuenta que tienes dos posibilidades de trabajar con Elasticsearch, dependiendo de si sólo quieres software Open Source (OSS) o si quieres también el software con licencia privativa.

Creamos el archivo de configuración del nuevo repositorio:

~$ sudo nano /etc/yum.repos.d/elasticsearch.repo

El contenido podría ser el siguiente, para el caso del repositorio OSS:

[elasticsearch]
name=Elasticsearch 7.x para Fedora 36
baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Si prefieres obtener también el software privativo, sustituye la directiva baseurl por esta otra:

...
baseurl=https://artifacts.elastic.co/packages/7.x/yum
...

En cualquier caso, guardamos el archivo y actualizamos la información de los repositorios para incluir los paquetes de Elasticsearch:

~$ sudo yum update

Cómo instalar Elasticsearch en Fedora 36/35/34

Vamos a instalar Elasticsearch en Fedora 36, 35 y 34 desde el repositorio que acabamos de descargar, para lo que necesitaremos únicamente el paquete elasticsearch con yum:

~$ sudo yum install -y elasticsearch

O el paquete elasticsearch-oss, según el repositorio que hayamos configurado:

~$ sudo yum install -y elasticsearch-oss

El paquete supera los 200 ó 300 MB, así que la instalación puede tomar algunos minutos. Una vez terminada la descarga e instalación de Elasticsearch se crea un nuevo servicio en Fedora 36, llamado elasticsearch.service o elasticsearch si prefieres el nombre corto. Este servicio no queda arrancado tras la instalación, ni habilitado para su inicio automático, pero aún no nos vamos a ocupar de eso.

Cómo configurar la cantidad de memoria RAM para Elasticsearch en Fedora 36/35/34

La configuración por defecto hará que el servicio trate de reservar 1 GB de RAM que, dependiendo del caso, puede ser mucho o poco. Para ajustar la memoria que reserva Elasticsearch editaremos su archivo de configuración jvm.options:

~$ sudo nano /etc/elasticsearch/jvm.options

Buscaremos las directivas Xms y Xmx:

...
-Xms1g
-Xmx1g
...

La terminación 1g de ambas directivas quiere decir que su valor es 1 GB, así que si quisiéramos que Elasticsearch trabajara con 2 GB las modificaríamos de la siguiente forma:

...
-Xms2g
-Xmx2g
...

Mientras que si estuviésemos haciendo pruebas en un sistema modesto, podríamos configurar 512 MB de memoria RAM:

...
-Xms512m
-Xmx512m
...

Si haces algún cambio, guarda el archivo.

Cómo iniciar Elasticsearch en Fedora 36/35/34

Es el momento de iniciar Elasticsearch por primera vez con el comando systemctl:

~$ sudo systemctl start elasticsearch

El servicio debería quedar en ejecución, cosa que podemos comprobar en cualquier momento con el comando systemctl status elasticsearch:

como instalar elasticsearch en fedora 36, 35 y 34

Para que Elasticsearch inicie automáticamente con Fedora tendremos que habilitar el servicio:

~$ sudo systemctl enable elasticsearch

Error de tiemout al iniciar Elasticsearch en Fedora 36/35/34

Si la máquina Fedora 36, 35 ó 34 sobre la que hemos instalado Elasticsearch no es demasiado potente podría ocurrir un error de «timeout» o tiempo de espera agotado al intentar iniciar el servicio:

~$ sudo systemctl start elasticsearch
Job for elasticsearch.service failed because a timeout was exceeded.
See "systemctl status elasticsearch.service" and "journalctl -xe" for details.

Job for elasticsearch.service failed because a timeout was exceeded.

Esto podría ser debido a que el proceso de inicio de la aplicación es lento y por defecto el límite de espera es de 90 segundos, como podremos comprobar con el comando systemctl:

~$ systemctl show elasticsearch |grep -i ^timeout
TimeoutStartUSec=1min 30s
TimeoutStopUSec=infinity

Podemos configurar mayores tiempos de espera añadiendo un archivo de configuración para el servicio elasticsearch

~$ sudo nano /lib/systemd/system/elasticsearch.service

Dentro de la sección Service añadimos una directiva TimeoutStartSec con el valor en segundos que consideres necesario:

...
[Service]
...
TimeoutStartSec=180
...

Guardamos los cambios y recargamos la configuración de los servicios:

~$ sudo systemctl daemon-reload

Es fácil comprobar que ahora el valor del tiempo de espera máximo ha cambiado:

~$ systemctl show elasticsearch |grep -i ^timeout
TimeoutStartUSec=3min
TimeoutStopUSec=infinity

Y probamos a lanzar de nuevo el servicio:

~$ sudo systemctl start elasticsearch

Podemos repetir este proceso tantas veces como sea necesario hasta encontrar el tiempo de espera óptimo para nuestra máquina Fedora 36, 35 ó 34.

En algunos casos, este ajuste puede ser fundamental para conseguir que Elasticsearch inicie automáticamente en el arranque de Fedora.

Cómo probar el servicio localmente

Para comprobar que el servicio funciona es posible realizar una prueba local desde consola conectando con cualquier cliente HTTP al puerto 9200:

 ~$ curl localhost:9200
{
  "name" : "fedora",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "Lw-X9-BJR26sxTWNff5WEQ",
  "version" : {
    "number" : "7.10.2",
    "build_flavor" : "oss",
    "build_type" : "rpm",
    "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"
}

instalar elasticsearch en fedora 36, 35 y 34

Cómo configurar Elasticsearch en Fedora 36/35/34

Aunque ya hemos visto algunos ajustes, vamos a ver cómo configurar Elasticsearch en Fedora 36, 35 y 34 trabajando sobre su archivo principal de configuración, elasticsearch.yml.

Conexión a Elasticsearch desde red

Por defecto Elasticsearch está configurado para aceptar únicamente conexiones locales desde la propia máquina Fedora 36, pero si queremos interactuar con el servicio desde red, tendremos que editar elasticsearch.yml:

~$ sudo nano /etc/elasticsearch/elasticsearch.yml

Buscamos la directiva network.host:

...
#network.host: 192.168.0.1
...

Está desactivada, así que será necesario activarla eliminando el carácter # inicial y dándole el valor de la dirección IP que corresponda al adaptador de red de la máquina Fedora 36 por el que entrarán las conexiones, o 0.0.0.0 si la dirección no es estática, hay varias redes, etc.:

...
network.host: 0.0.0.0
...

Como Elasticsearch puede trabajar en grupo con varios servidores, tendremos que especificar la lista de los mismos en la directiva discovery.seed_hosts:

...
#discovery.seed_hosts: ["host1", "host2"]
...

Activamos la directiva y añadimos las direcciones de los otros servidores, o «localhost» si el servicio trabaja en solitario:

...
discovery.seed_hosts: ["localhost"]
...

Guardamos los cambios y reiniciamos el servicio:

~$ sudo systemctl restart elasticsearch

Configurar el firewall de Fedora 36/35/34 para Elasticsearch

Por defecto el firewall de Fedora 36 suele estar activado, así que será necesario configurar una excepción para Elasticsearch, permitiendo las conexiones entrantes al puerto 9200/TCP:

~$ sudo firewall-cmd --permanent --add-port=9200/tcp

Recargamos la configuración del firewall para aplicar los cambios:

~$ sudo firewall-cmd --reload

Cómo probar la conexión a Elasticsearch en Fedora 36/35/34 desde red

Para comprobar que la conexión al servicio Elasticsearch desde red es posible realizaremos algo parecido a la prueba local anterior, conectando desde un navegador en el que indicaremos la dirección IP, nombre DNS, dominio, etc. del servidor Fedora 36 especificando el puerto 9200:

instalar y configurar elasticsearch en fedora 36, 35 y 34

Conclusión

Ahora que sabes cómo instalar ElasticSearch en Fedora 36, 35 y 34 ya puedes trabajar con este potente motor de búsquedas y analíticas en tu sistema, ya sea para tus propios desarrollos o para aplicaciones en producción.

Si tienes alguna duda o pregunta, quieres realizar alguna sugerencia, notificar algún error, etc. puedes dejar un comentario. Los comentarios están moderados para evitar el SPAM, pero se revisan prácticamente a diario.

¡Apoya comoinstalar.me!

¿Ya puedes trabajar con este motor de búsqueda sobre tu propia máquina gracias a nuestra guía? En tal caso, si quieres agradecérnoslo colaborando con el mantenimiento de este sitio y la creación de nuevos artículos y tutoriales, puedes hacerlo dejando tan solo 1 $ de propina en PayPal:

O, si te sientes especialmente agradecido, invitándonos a un café:

¡Gracias!

Valora esta entrada

5/5 - (2 votos)

Deja un comentario