Introducción
Elasticsearch es una plataforma utilizada para búsquedas de texto completo en tiempo real en aplicaciones donde se necesita analizar una gran cantidad de datos. En combinación con otras herramientas, como Kibana, Logstash, X-Pack, etc., Elasticsearch puede agregar y monitorear Big Data a gran escala.
Con su soporte API RESTful , puede administrar fácilmente sus datos utilizando el método HTTP común. Debido a su velocidad y facilidad de uso, también se volvió adecuado para tareas más complejas que manejan Hadoop y Spark.
En este tutorial, le mostraremos cómo preparar todo y cómo instalar Elasticsearch en Ubuntu 18.04 . Los pasos de instalación también deberían funcionar para otras distribuciones de Linux.

Requisitos previos
- Un sistema basado en Ubuntu (esta guía usa Ubuntu 18.04)
- Acceso a una terminal o línea de comandos
- Un usuario con permisos sudo para instalar los paquetes
Instalar las Dependencias Necesarias
Dado que Elasticsearch se ejecuta sobre Java, debe instalar el Kit de desarrollo de Java (JDK) .
Puede verificar si Java está instalado y la versión en su máquina Ubuntu con:
java -version
El resultado muestra la versión instalada de Java.
Si no tiene Java instalado, recibirá el mensaje bash estándar:bash:/usr/bin/java:No such file or directory . Recuerda que, de antemano, tienes la opción de utilizar un comando bash para comprobar si existe un archivo o directorio.
Antes de continuar con la instalación, actualice el índice del paquete:
sudo apt update
Para instalar el JDK predeterminado, ejecute el siguiente comando:
sudo apt install openjdk-8-jdk

Cuando finalice el proceso, ejecute java -version
comando de nuevo. La salida muestra la siguiente versión en nuestro caso:

Para permitir el acceso a sus repositorios a través de HTTPS, debe instalar un paquete de transporte APT:
sudo apt install apt-transport-https

El resultado anterior muestra la parte final cuando se completa el proceso.
Instalar y descargar Elasticsearch en Ubuntu
Después de confirmar Java y apt-transport-https
instalado correctamente, continúe con los pasos para instalar Elasticsearch.
Agregar repositorio de Elasticsearch
Primero, actualice la clave GPG para el repositorio de Elasticsearch.
Usa el wget
comando para extraer la clave pública:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

La salida debería mostrar OK
si todo salió como debería.
Luego, use este comando para agregar el repositorio a su sistema.
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
En el comando anterior, usamos 7.x ya que esta es la última versión de Elasticsearch al momento de escribir esta guía.
Instalar Elasticsearch
Finalmente, es hora de instalar Elasticsearch.
Actualice el índice del paquete una vez más antes de continuar.
sudo apt update
Luego, ejecute la instalación:
sudo apt install elasticsearch
El paquete es de alrededor de 300 MB. Deje que el sistema descargue el archivo y finalice la instalación.

Iniciar servicio de búsqueda elástica
Una vez finalizada la instalación, Elasticsearch no se ejecuta hasta que lo inicie. Además, cuando reinicia la máquina, debe volver a ejecutar el servicio Elasticsearch, ya que no se inicia automáticamente.
Para que Elasticsearch se vuelva a cargar automáticamente cuando se reinicie el sistema, use los siguientes comandos:
Primero, vuelva a cargar la configuración de systemd:
sudo systemctl daemon-reload
Luego, habilite el servicio Elasticsearch con:
sudo systemctl enable elasticsearch.service

Y finalmente, después de habilitar el servicio, inicie Elasticsearch:
sudo systemctl start elasticsearch.service
Deje que el proceso se complete. Puede tomar unos momentos. No habrá una respuesta específica del terminal.
Ahora, Elasticsearch se iniciará cada vez que encienda o reinicie el sistema.
Si realiza cambios en los archivos de configuración o necesita reiniciar Elasticsearch por algún motivo, use:
sudo systemctl restart elasticsearch.service
Cuando necesite detener el servicio, use el siguiente comando:
sudo systemctl stop elasticsearch.service
Comprobar el estado de Elasticsearch
Una vez que termine de usar los comandos para iniciar, reiniciar y detener Elasticsearch, también puede verificar el estado del servicio.
Para hacerlo, ingrese:
service elasticsearch status

La salida muestra el estado del servicio, las tareas y otra información.
Configurar Elasticsearch
Elasticsearch viene preconfigurado para uso básico. Si usa solo un nodo en su configuración, no tiene que reconfigurar demasiado la herramienta.
Para realizar cambios en la configuración de Elasticsearch predeterminada , edite el elasticsearch.yml expediente. El archivo se encuentra en /etc/elasticsearch directorio.
La configuración para iniciar sesión se encuentra en /var/log/elasticsearch/logging.yml expediente. Puede dejar los valores predeterminados para iniciar sesión por ahora y volver a ellos más tarde si es necesario.
Permitir acceso remoto
La configuración predeterminada no permite que otros hosts accedan a su máquina. Para permitir el acceso remoto, use un editor de texto de su elección y abra elasticsearch.yml archivo.
Usaremos vim :
sudo vim /etc/elasticsearch/elasticsearch.yml
Desplácese hacia abajo hasta la Red sección. Encuentra la línea que dice #network.host
.
Descomente la línea (elimine el signo de libra (#)), establezca la dirección IP en 0.0.0.0
y agregue estas líneas:
transport.host: localhost
transport.tcp.port: 9300
http.port: 9200
La sección debería verse así:

Salir y guardar los cambios. Si trabaja en vim , escriba :wq
.
Esta configuración permite que los hosts remotos accedan a esta máquina.
Utilice UFW para proteger Elasticsearch (opcional)
Si permite el acceso remoto a Elasticsearch, le recomendamos encarecidamente que utilice la herramienta UFW, como medida de seguridad mínima.
El cortafuegos sin complicaciones (UFW) está integrado en Linux y está desactivado de forma predeterminada. Habilite UFW y cree algunas reglas para limitar la exposición de su red.
Antes de habilitar UFW, agregue las reglas necesarias. Para el acceso remoto a través de SSH, debe permitir el acceso en el puerto 22 (o el puerto personalizado si cambió la configuración predeterminada de SSH).
En la terminal, escribe:
sudo ufw allow 22
Luego, debe permitir el acceso en el puerto 9200 para su máquina remota. Elasticsearch escucha en ese puerto las solicitudes entrantes.
Crea la regla con este comando:
sudo ufw allow from external_IP to any port 9200
Cambiar external_IP
con la IP de la máquina remota que se usará para acceder a Elasticsearch.
Finalmente, habilite la herramienta UFW:
sudo ufw enable
Aquí está el ejemplo de salida para los comandos anteriores:

Para asegurarse de que agregó las reglas correctamente, verifique el estado de UFW.
sudo ufw status
Este comando muestra tanto el estado como los detalles de las reglas que ha creado.

Prueba de búsqueda elástica
Ahora que el servicio Elasticsearch está activo, se puede acceder a la máquina de forma remota y habilitó UFW, puede usar curl
para probar si la herramienta funciona.
El puerto de escucha predeterminado para Elasticsearch es 9200 . Entonces, puede enviar una solicitud HTTP en el host local y ver si obtiene una respuesta.
Para hacerlo, ingrese:
curl localhost:9200

La salida debe ser similar a la de arriba. Verá la información de la versión y otros campos con la fecha, hash, etc.