VPS

Instalar Elasticsearch en tu Hosting o VPS

¿Qué es Elasticsearch?

Logo de Elasticsearch

Elasticsearch es un motor de búsquedas que destaca por su gran rendimiento. Se integra en múltiples entornos y es especialmente usado en páginas web, por ejemplo tiendas online construidas con PrestaShop o Magento.

Se instala a nivel de sistema operativo, tiene Java como dependencia y requiere permisos de ejecución en el directorio /tmp. Esto hace muy compleja su integración segura en un entorno de alojamiento compartido.

En definitiva: Elasticsearch necesita un servidor VPS. Pero no te asustes, es muy fácil de instalar y cuesta menos de 10 €/mes. Además, no tienes que cambiar tu web de hosting: basta con un VPS adicional para correr el motor de búsqueda.

Instalar Elasticsearch en un VPS con Debian

Tu VPS debe tener 2 GB de RAM como mínimo. Necesitarás más recursos según la cantidad de datos que indexes y el volumen de búsquedas que tenga que procesar.

Cuando tengas tu VPS contratado, instálalo con Debian (es el sistema operativo por defecto). Recibirás un mail con los datos de conexión: la IP dedicada del VPS y la contraseña de root.

Conecta por SSH a tu servidor y ejecuta los siguientes comandos:

apt update; apt dist-upgrade -y; apt install gnupg curl nano wget sudo apt-transport-https -y;
timedatectl set-timezone Europe/Madrid
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -; apt update;

Si quieres instalar Elasticsearch v7, ejecuta:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-7.x.list; apt install elasticsearch -y;

En cambio, si quieres instalar Elasticsearch v8, ejecuta:

echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-8.x.list; apt install elasticsearch -y;

Después edita el fichero /etc/elasticsearch/elasticsearch.yml y pon la variable xpack.security.enabled a false:

nano /etc/elasticsearch/elasticsearch.yml
xpack.security.enabled: false

Finalmente, arranca el servicio y configúralo para que se inicie automáticamente al reiniciar el VPS:

systemctl restart elasticsearch
systemctl enable elasticsearch

Comprueba que el servicio está levantado:

systemctl status elasticsearch

Y que responde correctamente a las peticiones:

curl -X GET localhost:9200

¡Listo, ya tienes Elasticsearch instalado!

Proteger el servidor Elasticsearch

Para evitar que cualquiera pueda conectar a tu Elasticsearch, protégelo con reglas de firewall. Instala UFW y establece la política por defecto:

apt install ufw -y
ufw default deny incoming
ufw default allow outgoing
ufw allow 22
ufw allow 80
ufw allow 443
ufw enable

Permite las conexiones al puerto 9200 solo desde la IP de tu hosting (sustituye x.x.x.x por la IP del hosting donde está alojada tu web):

ufw allow from x.x.x.x to any port 9200

Activa el firewall y revisa las reglas:

ufw enable
ufw status numbered

¿Tienes alguna duda? Contacta con nuestro soporte técnico, estaremos encantados de ayudarte.