Cómo instalar y usar Elasticsearch en Ubuntu 20.04
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 previos
- Un servidor que ejecuta el servidor Ubuntu 20.04.
- Una contraseña de root está configurada en el servidor.
Empezando
Antes de comenzar, deberá actualizar su sistema a la última versión. Puedes actualizarlo con el siguiente comando:
apt-get update -y
Una vez que su sistema esté actualizado, instale otros paquetes requeridos 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, importe 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 búsqueda elástica
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
Cambia 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 firewall de UFW con el siguiente comando:
ufw status
Debería obtener el siguiente resultado: Anuncio
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. No dude en preguntarme si tiene alguna pregunta.