Cómo instalar y utilizar Elasticsearch en Ubuntu 20.04
Elasticsearch es un motor de análisis distribuido de código abierto basado en Apache Lucene. Toma datos no estructurados de distintas ubicaciones, los almacena según la asignación especificada por el usuario y los indexa. Admite operaciones RESTful y te permite buscar y analizar enormes volúmenes de datos en tiempo real.
En este tutorial, te mostraremos cómo instalar Elasticsearch en Ubuntu 20.04.
Requisitos previos
- Un servidor que ejecute Ubuntu 20.04.
- Una contraseña de root configurada en el servidor.
Cómo empezar
Antes de empezar, necesitarás actualizar tu sistema a la última versión. Puedes actualizarlo con el siguiente comando:
apt-get update -y
Una vez actualizado tu sistema, instala otros paquetes necesarios con el siguiente comando:
apt-get install curl gnupg2 apt-transport-https unzip -y
Una vez instalados todos los paquetes, puedes pasar al siguiente paso.
Instalar Elasticsearch
Por defecto, el paquete Elasticsearch no está disponible en el repositorio por defecto de Ubuntu. Así que tendrás que añadir el repositorio de Elasticsearch a tu sistema. Primero, importa la clave GPG con el siguiente comando:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
A continuación, añade el repositorio de Elasticsearch con el siguiente comando:
sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
Una vez añadido el repositorio, actualiza la caché del repositorio e instala Elasticsearch con el siguiente comando:
apt-get update -y apt-get install elasticsearch -y
Una vez finalizada la instalación, inicia el servicio Elasticsearch y habilítalo para que se inicie al reiniciar el sistema:
systemctl start elasticsearch systemctl enable elasticsearch
Ahora puedes verificar el estado del servicio Elasticsearch con el siguiente comando:
systemctl status elasticsearch
Deberías obtener la siguiente salida:
? elasticsearch.service - Elasticsearch Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled) Active: active (running) since Sat 2021-01-09 11:13:09 UTC; 5s ago Docs: https://www.elastic.co Main PID: 5110 (java) Tasks: 65 (limit: 2353) Memory: 1.2G CGroup: /system.slice/elasticsearch.service ??5110 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl> ??5304 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller Jan 09 11:12:50 ubuntu2004 systemd[1]: Starting Elasticsearch... Jan 09 11:13:09 ubuntu2004 systemd[1]: Started Elasticsearch.
Verificar Elasticsearch
Por defecto, Elasticsearch escucha en el puerto 9200. Puedes verificarlo con el siguiente comando:
ss -antpl | grep 9200
Deberías obtener la siguiente salida:
LISTEN 0 4096 [::ffff:127.0.0.1]:9200 *:* users:(("java",pid=5110,fd=257)) LISTEN 0 4096 [::1]:9200 [::]:* users:(("java",pid=5110,fd=255))
También puedes verificar Elasticsearch utilizando el siguiente comando:
curl -X GET "localhost:9200/"
Deberías obtener la siguiente respuesta:
{ "name" : "ubuntu2004", "cluster_name" : "elasticsearch", "cluster_uuid" : "mToloP2UQGilY7nUCeBnjg", "version" : { "number" : "7.10.1", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa", "build_date" : "2020-12-05T01:00:33.671820Z", "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" }
Configurar Elasticsearch
El archivo de configuración principal de Elasticsearch se encuentra en /etc/elasticsearch/elasticsearch.yml. Puedes establecer el nombre de tu clúster, el puerto y permitir la conexión remota editando este archivo.
Abre el archivo elasticsearch.yml en tu editor nano:
nano /etc/elasticsearch/elasticsearch.yml
Cambia las siguientes líneas:
cluster.name: my-cluster network.host: 172.16.0.10 discovery.seed_hosts: 172.16.0.10
Guarda y cierra el archivo y reinicia el servicio Elasticsearch para aplicar la configuración:
systemctl restart elasticsearch
En este punto, Elasticsearch está configurado para aceptar la conexión desde el host remoto. Ahora puedes pasar al siguiente paso.
Configurar el cortafuegos UFW
Por defecto, UFW está instalado en Ubuntu 20.04. Si no está instalado, puedes instalarlo con el siguiente comando:
apt-get install ufw -y
Una vez instalado el UFW, permite la conexión SSH y el puerto Elasticsearch para el host remoto (172.16.0.100) con el siguiente comando:
ufw allow ssh ufw allow from 172.16.0.100 to any port 9200
A continuación, habilita el cortafuegos UFW con el siguiente comando:
ufw enable
A continuación, verifica el estado de las reglas del cortafuegos UFW con el siguiente comando:
ufw status
Deberías obtener la siguiente salida:
Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 9200 ALLOW 172.16.0.100 22/tcp (v6) ALLOW Anywhere (v6)
Conclusión
Enhorabuena! has instalado con éxito Elasticsearch y lo has configurado para la conexión remota en el servidor Ubuntu 20.04. Ahora puedes integrar Elasticsearch con tu aplicación. No dudes en preguntarme si tienes alguna duda.