Elasticsearch es un motor de análisis y búsqueda de texto completo distribuido de código abierto. Admite operaciones RESTful y le permite almacenar, 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 analíticas.

Este tutorial explica cómo instalar Elasticsearch en Debian 10.

Instalación de Java

Elasticsearch es una aplicación Java, por lo que el primer paso es instalar Java .

Ejecute lo siguiente como root o usuario con el comando de privilegios sudo para instalar el paquete OpenJDK:

sudo apt install default-jdk

Verifique la instalación de Java imprimiendo la versión de Java :

java -version

La salida debería ser algo como esto:

openjdk version "11.0.6" 2020-01-14
OpenJDK Runtime Environment (build 11.0.6+10-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.6+10-post-Debian-1deb10u1, mixed mode, sharing)

Instalación de Elasticsearch

Elasticsearch no está disponible en los repositorios estándar de Debian 10. Lo instalaremos desde el repositorio APT de Elasticsearch.

Importa la clave pública del repositorio usando el siguiente wget comando:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

El comando anterior debería generar OK, lo que significa que la clave se ha importado correctamente y los paquetes de este repositorio se considerarán confiables.

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'
Al momento de escribir este artículo, la última versión de Elasticsearch es 7.6Si desea instalar una versión anterior de Elasticsearch, cambie 7.xel comando anterior con la versión que necesita.

Actualice el índice de paquetes e instale el motor Elasticsearch:

sudo apt updatesudo apt install elasticsearch

Una vez que se complete el proceso de instalación, inicie y habilite el servicio:

sudo systemctl enable elasticsearch.service --now

Para verificar que Elasticsearch se está ejecutando, use curl para enviar una solicitud HTTP al puerto 9200 en localhost:

curl -X GET "localhost:9200/"

La salida se verá algo como esto:

{
  "name" : "debian10.localdomain",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "yCOOHdvYR8mHRs5mNXQdDQ",
  "version" : {
    "number" : "7.6.1",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "aa751e09be0a5072e8570670309b1f12348f023b",
    "build_date" : "2020-02-29T00:15:25.529771Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.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 ha instalado en su servidor Debian.

Configuración de Elasticsearch

Los datos de Elasticsearch se almacenan en el /var/lib/elasticsearchdirectorio. Los archivos de configuración se encuentran en /etc/elasticsearchy las opciones de inicio de Java se pueden configurar en el /etc/default/elasticsearcharchivo.

De manera 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 necesita cambiar el archivo de configuración predeterminado.

Acceso remoto

Elasticsearch, listo para usar, no implementa la autenticación, por lo que cualquiera que pueda acceder a la API HTTP puede acceder a él. Si desea permitir el acceso remoto a su servidor de Elasticsearch, deberá configurar su firewall y permitir el acceso al puerto 9200 de Elasticsearch solo desde clientes de confianza.

Por ejemplo, si está utilizando UFW y desea permitir conexiones solo desde 192.168.121.80, ingrese el siguiente comando:

sudo ufw allow from 192.168.100.20 to any port 9200
No olvide cambiar 192.168.100.20con su dirección IP remota.

Una vez que se configura el firewall, el siguiente paso es editar la configuración de Elasticsearch y permitir que Elasticsearch escuche las conexiones externas.

Para hacerlo, abra el elasticsearch.ymlarchivo de configuración:

sudo nano /etc/elasticsearch/elasticsearch.yml

Busque la línea que contiene network.host, elimínela y cambie el valor a 0.0.0.0:

/etc/elasticsearch/elasticsearch.yml
network.host: 0.0.0.0

Si tiene varias interfaces de red en su máquina, especifique la dirección IP de la interfaz para obligar a Elasticsearch a escuchar solo la interfaz dada.

Reinicie el servicio Elasticsearch para que los cambios surtan efecto:

sudo systemctl restart elasticsearch

Eso es todo. Ahora puede conectarse al servidor de Elasticsearch desde la ubicación remota.

Conclusión

Le mostramos cómo instalar Elasticsearch en Debian 10.

Para obtener más información sobre Elasticsearch, visite la página de documentación oficial .

Si encuentra un problema o tiene comentarios, deje un comentario a continuación.