Cómo instalar Elasticsearch en Fedora 30

En esta ocasión vamos a ver cómo instalar Elasticsearch en Fedora 30 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 30

Para poder completar los pasos de esta guía de instalación de Elasticsearch en Fedora 30 es necesario partir de los siguientes requisitos:

  • Una instalación actualizada de Fedora 30.
  • El entorno de ejecución de Java, o JRE.
  • Un usuario con permisos de sudo.
  • Conexión a Internet.

Si no dispones aún del entorno necesario sería muy recomendable consultar previamente nuestra guía de instalación de Java en Fedora 30.

Cómo configurar el repositorio de Elasticsearch para Fedora 30

Vamos a configurar el repositorio oficial de Elasticsearch para Fedora 30, ya que los paquetes existentes en el repositorio de la distribución no están al día.

Creamos el archivo de configuración del nuevo repositorio:

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

Con el contenido:

[elasticsearch]
name=Elasticsearch 7.x para Fedora 30
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

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 30

Vamos a instalar Elasticsearch en Fedora 30 desde el repositorio que acabamos de descargar, para lo que necesitaremos únicamente el paquete elasticsearch:

~$ sudo yum install -y elasticsearch-oss

El paquete supera los 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 30, llamado elasticsearch.service o elasticsearch a secas. 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.

La configuración por defecto de Elasticsearch para Fedora 30 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.

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 30

Error de tiemout al iniciar Elasticsearch en Fedora 30

Si la máquina Fedora 30 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 es 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 30.

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" : "fedora30.local.lan",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "pYExLryoQAKFMpXovod8sQ",
  "version" : {
    "number" : "7.9.2",
    "build_flavor" : "oss",
    "build_type" : "rpm",
    "build_hash" : "d34da0ea4a966c4e49417f2da2f244e3e97b4e6e",
    "build_date" : "2020-09-23T00:45:33.626720Z",
    "build_snapshot" : false,
    "lucene_version" : "8.6.2",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Cómo configurar Elasticsearch en Fedora 30

Aunque ya hemos visto algunos ajustes, vamos a ver cómo configurar Elasticsearch en Fedora 30 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 30, 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 30 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 30 para Elasticsearch

Por defecto el firewall de Fedora 30 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 30 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 30 especificando el puerto 9200:

instalar y configurar elasticsearch en fedora 30

Conclusión

Ahora que sabes cómo instalar ElasticSearch en Fedora 30 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.

¡Apoya comoinstalar.me!

¿Ya puedes trabajar con ElasticSearch en Fedora 30 gracias a esta 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 invitándonos a un café:

 

O, si lo prefieres, dejando 1 $ de propina en PayPal:

¡Gracias!

Valora esta entrada

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

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.

ACEPTAR
Aviso de cookies