Elasticsearch es un motor de análisis distribuido de código abierto creado en Apache Lucene. Toma datos no estructurados de diferentes ubicaciones y los almacena de acuerdo con el mapeo especificado por el usuario y los indexa. Admite operaciones RESTful y le permite buscar y analizar grandes volúmenes de datos en tiempo real.
En este tutorial, le mostraremos cómo instalar Elasticsearch en Ubuntu 20.04.
Requisitos
- Un servidor que ejecuta el servidor Ubuntu 20.04.
- Se configura una contraseña raíz en el servidor.
Cómo empezar
Antes de comenzar, deberá actualizar su sistema a la última versión. Puede actualizarlo con el siguiente comando:
apt-get update -y
Una vez que su sistema esté actualizado, instale otros paquetes necesarios con el siguiente comando:
apt-get install curl gnupg2 apt-transport-https unzip -y
Una vez que todos los paquetes estén instalados, puede continuar con el siguiente paso.
Instalar Elasticsearch
De forma predeterminada, el paquete de Elasticsearch no está disponible en el repositorio predeterminado de Ubuntu. Por lo tanto, deberá agregar el repositorio de Elasticsearch a su 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, agregue 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 que se agrega el repositorio, actualice el caché del repositorio e instale Elasticsearch con el siguiente comando:
apt-get update -y
apt-get install elasticsearch -y
Una vez finalizada la instalación, inicie el servicio Elasticsearch y habilítelo para que se inicie al reiniciar el sistema:
systemctl start elasticsearch
systemctl enable elasticsearch
Ahora puede verificar el estado del servicio Elasticsearch con el siguiente comando:
systemctl status elasticsearch
Deberías obtener el siguiente resultado:
? 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
De manera predeterminada, Elasticsearch escucha en el puerto 9200. Puede verificarlo con el siguiente comando:
ss -antpl | grep 9200
Deberías obtener el siguiente resultado:
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 puede verificar Elasticsearch usando el siguiente comando:
curl -X GET "localhost:9200/"
Debería 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. Puede configurar el nombre de su clúster, el puerto y permitir la conexión remota editando este archivo.
Abra el archivo elasticsearch.yml en su editor nano:
nano /etc/elasticsearch/elasticsearch.yml
Cambie las siguientes líneas:
cluster.name: my-cluster network.host: 172.16.0.10 discovery.seed_hosts: 172.16.0.10
Guarde y cierre el archivo, luego reinicie 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 puede continuar con el siguiente paso.
Configurar el cortafuegos UFW
De forma predeterminada, UFW está instalado en Ubuntu 20.04. Si no está instalado, puede instalarlo con el siguiente comando:
apt-get install ufw -y
Una vez instalado el UFW, permita 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
Luego, habilite el firewall UFW con el siguiente comando:
ufw enable
A continuación, verifique el estado de las reglas del cortafuegos de UFW con el siguiente comando:
ufw status
Deberías obtener el siguiente resultado:
Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 9200 ALLOW 172.16.0.100 22/tcp (v6) ALLOW Anywhere (v6)
Conclusión
¡Felicidades! Ha instalado Elasticsearch correctamente y lo ha configurado para una conexión remota en el servidor Ubuntu 20.04. Ahora puede integrar Elasticsearch con su aplicación. Siéntase libre de preguntarme si tiene alguna pregunta.