Introducción
Elasticsearch es un motor de análisis y búsqueda de texto completo distribuido de código abierto. Admite operaciones RESTful y le permite archivar, buscar y analizar grandes volúmenes de datos en tiempo real.
Elasticsearch es uno de los motores de búsqueda más populares que impulsa aplicaciones que tienen requisitos de búsqueda complejos, como grandes tiendas de comercio electrónico y aplicaciones de análisis.
Este tutorial lo guiará a través del proceso de instalación de Elasticsearch en Debian 10.
Prerrequisitos
Debe iniciar sesión como usuario con privilegios sudo para poder instalar paquetes en su servidor Debian 10.
Si su intención es instalar Elasticsearch en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conectarse al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña del usuario root.
Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:
ssh nome_utente@IP_DEL_SERVER
Luego se le pedirá que ingrese su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Instalación de Elasticsearch
La forma más sencilla de instalar Elasticsearch en Debian es a través del repositorio oficial de Elasticsearch. En el momento de escribir este artículo, la última versión de 7.5.0
es 7.5.0.
Comience actualizando el índice del paquete e instalando el paquete apt-transport-https
necesario para acceder a un repositorio a través de HTTPS:
sudo apt update
sudo apt install apt-transport-https
sudo apt install openjdk-8-jdk
Verifique la instalación de Java imprimiendo la versión de Java:
java -version
La salida debería verse así:
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-8u232-b09-0ubuntu1~18.04.1-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
El siguiente paso es agregar el repositorio de Elasticsearch.
Importe la clave pública del repositorio con el siguiente wget
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
El comando anterior debería generar OK
como salida, lo que significa que la clave se ha importado correctamente y los paquetes de este repositorio serán de confianza.
A continuación, agregue el repositorio de Elasticsearch al sistema ejecutando:
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
Si desea instalar una versión diferente de Elasticsearch, cambie el 7.x
en el comando anterior a la versión que necesita.
Actualice el índice del paquete e instale el motor Elasticsearch:
sudo apt update
sudo apt install elasticsearch
Una vez finalizado el proceso de instalación, inicie y habilite el servicio con los siguientes comandos:
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
Para verificar que Elasticsearch se esté ejecutando, envíe una solicitud HTTP al puerto 9200 en localhost con el siguiente comando curl:
curl -X GET "localhost:9200/"
La salida debería verse así:
{
"name": "TEST-SERVER-1",
"cluster_name": "elasticsearch",
"cluster_uuid": "CVjvDx8NTyGy74sKjRUCEQ",
"version": {
"number": "7.5.1",
"build_flavor": "default",
"build_type": "deb",
"build_hash": "3ae9ac9a93c95bd0cdc054951cf95d88e1e18d96",
"build_date": "2019-12-16T22:57:37.835892Z",
"build_snapshot": false,
"lucene_version": "8.3.0",
"minimum_wire_compatibility_version": "6.8.0",
"minimum_index_compatibility_version": "6.0.0-beta1"
},
"tagline": "You Know, for Search"
}
El servicio puede tardar entre 5 y 10 segundos en iniciarse. Si ve curl: (7) Failed to connect to localhost port 9200: Connection refused
, espere unos segundos y vuelva a intentarlo.
Para ver los mensajes registrados por el servicio Elasticsearch, use el siguiente comando:
sudo journalctl -u elasticsearch
Eso es todo. Elasticsearch se instaló en su servidor Debian.
Configuración de Elasticsearch
Los datos de Elasticsearch se almacenan en el /var/lib/elasticsearch
. Los archivos de configuración se encuentran en /etc/elasticsearch
y las opciones de inicio de Java se pueden configurar en el /etc/default/elasticsearch
.
De forma predeterminada, Elasticsearch está configurado para escuchar solo en localhost. Si el cliente que se conecta a la base de datos también se ejecuta en el mismo host y está configurando un clúster de un solo nodo, no es necesario que habilite el acceso remoto.
Acceso remoto
Elasticsearch listo para usar, no implementa la autenticación, por lo que cualquier persona que pueda acceder a la API HTTP puede acceder a él. Si desea permitir el acceso remoto al servidor Elasticsearch, deberá configurar el firewall y permitir el acceso al puerto 9200 de Elasticsearch solo desde clientes confiables.
Si está utilizando UFW como su herramienta de firewall preferida, ejecute el siguiente comando para permitir la evaluación en el puerto 9200 desde la dirección IP remota de confianza:
sudo ufw allow from 192.168.222.22 to any port 9200
No olvide cambiar 192.168.222.22
a su dirección IP remota.
De lo contrario, si simplemente está usando las iptables antiguas, use el siguiente comando para habilitar el puerto:
sudo iptables -A INPUT -p tcp -s 192.168.222.22 --dport 9200 -j ACCEPT
Una vez configurado el cortafuegos, el siguiente paso es cambiar la configuración y configurar Elasticsearch para que escuche conexiones externas.
Para hacer esto, abra el archivo de configuración elasticsearch.yml
sudo nano /etc/elasticsearch/elasticsearch.yml
Busque la línea que contiene network.host
, descomente y cambie el valor a 0.0.0.0
:
network.host: 0.0.0.0
Si hay varias interfaces de red en su computadora, puede especificar la dirección IP de la interfaz que hará que Elasticsearch escuche solo en la interfaz especificada.
Reinicie el servicio Elasticsearch para que los cambios surtan efecto:
sudo systemctl restart elasticsearch
En este punto, debería poder conectarse al servidor Elasticsearch desde su ubicación remota.
Conclusión
Ha instalado Elasticsearch correctamente en su sistema Debian 10. Para obtener más información sobre cómo comenzar con Elasticsearch, visite la página de documentación oficial.