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 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 de análisis.
Esta guía explica cómo instalar Elasticsearch en Ubuntu 20.04 LTS Focal Fossa.
Si desea crear ElasticSearch en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conexión 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 usa el usuario raíz, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie la raíz 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
Instalar Elasticsearch
Instalar Elasticsearch en Ubuntu es bastante simple. Habilitaremos el repositorio de Elasticsearch, importaremos la clave GPG del repositorio e instalaremos el servidor de Elasticsearch.
El paquete Elasticsearch viene con una versión empaquetada de OpenJDK, por lo que no es necesario instalar Java.
Primero, actualice el índice del paquete e instale las dependencias necesarias para agregar un nuevo repositorio HTTPS:
sudo apt update
sudo apt install apt-transport-https ca-certificates wget
Importe la clave GPG del repositorio:
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 se confiará en los paquetes de este repositorio.
A continuación, agregue el repositorio de Elasticsearch al sistema emitiendo:
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 anterior de Elasticsearch, cambie el 7.x
en el comando anterior a la versión que necesita.
Una vez que el repositorio esté habilitado, instale Elasticsearch escribiendo:
sudo apt update
sudo apt install elasticsearch
El servicio Elasticsearch no se iniciará automáticamente una vez finalizado el proceso de instalación. Para iniciar el servicio y habilitar su ejecución:
sudo systemctl enable --now elasticsearch.service
Para verificar que Elasticsearch se esté ejecutando, use curl
para enviar una solicitud HTTP al puerto 9200
en localhost:
curl -X GET "localhost:9200/"
Debería ver algo como esto:
{
"name": "TEST-SERVER-1",
"cluster_name": "elasticsearch",
"cluster_uuid": "Kzkl_i3CQe2kFxmibT0sEw",
"version": {
"number": "7.8.0",
"build_flavor": "default",
"build_type": "deb",
"build_hash": "757314695644ea9a1dc2fecd26d1a43856725e65",
"build_date": "2020-06-14T19:35:50.234439Z",
"build_snapshot": false,
"lucene_version": "8.5.1",
"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 Ubuntu.
Configurar 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 cambie el archivo de configuración predeterminado.
Acceso remoto
Elasticsearch no implementa la autenticación de forma predeterminada, por lo que cualquier persona que tenga acceso a la API HTTP puede acceder a ella.
Para permitir el acceso remoto al servidor Elasticsearch, debe configurar el firewall y abrir el puerto TCP 6379
.
Generalmente, desea permitir el acceso al servidor ElasticSearch solo desde una dirección IP o rango de IP específicos. Por ejemplo, para permitir conexiones solo desde la 192.168.121.0/24
, ejecute el siguiente comando:
sudo ufw allow proto tcp from 192.168.121.0/24 to any port 6379
Una vez que se configura el firewall, el siguiente paso es cambiar la configuración de Elasticsearch y permitir que Elasticsearch escuche las 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
:
Busque la discovery.seed_hosts
, descomente y cambie el valor así, para una primera y simple configuración:
Para obtener más información sobre el discovery.seed_hosts
, lea la documentación oficial.
Si hay varias interfaces de red en su computadora, especifique la dirección IP de la interfaz para forzar a Elasticsearch a escuchar solo la interfaz proporcionada.
Reinicie el servicio Elasticsearch para que los cambios surtan efecto:
sudo systemctl restart elasticsearch
Eso es todo. Ahora puede conectarse al servidor Elasticsearch desde su ubicación remota.
Conclusión
Le mostramos cómo instalar Elasticsearch en Ubuntu 20.04 LTS Focal Fossa.
Para obtener más información sobre Elasticsearch, visite la página de documentación oficial.