GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar y configurar Elasticsearch en Ubuntu 18.04

Elasticsearch es un motor de búsqueda gratuito y de código abierto, basado en Apache Lucene y equipado con capacidad de texto completo y soporte para arquitecturas distribuidas. Esta es una solución establecida desde hace mucho tiempo en el campo del análisis de datos en tiempo real.

En este tutorial encontrará todos los pasos necesarios para crear y configurar un servidor de Elasticsearch en Linux Ubuntu 18.04.

Primero, conéctese a su servidor a través de una conexión SSH. Si aún no lo ha hecho, se recomienda seguir nuestra guía para conectarse de forma segura con SSH. En caso de un servidor local, vaya al siguiente paso y abra la terminal de su servidor.

Instalación de Java

Antes de continuar con la instalación de Elasticsearch, instale el kit de desarrollo de Java. Para hacerlo, siga nuestra guía sobre cómo instalar Java en Ubuntu 18.04. En caso de que JDK ya esté instalado en su sistema, omita este paso.

Instalación de Elasticsearch

El paquete de instalación se puede descargar directamente desde el sitio web de Elastic:

$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.2-amd64.deb

Después de completar la descarga, proceda instalando el paquete:

$ sudo dpkg -i elasticsearch-7.3.2-amd64.deb

Luego, proceda instalando e iniciando el servicio a través de:

$ sudo systemctl enable elasticsearch.service
$ sudo systemctl start elasticsearch.service

Configuración del cortafuegos

En caso de un firewall en el sistema, puede ser necesario permitir el tráfico al servicio Elasticsearch, habilitando el puerto apropiado.

Al usar el firewall UFW, escriba este comando para desbloquear el puerto predeterminado de Elasticsearch:

$ sudo ufw allow 9200

En este punto, el cortafuegos permitirá conexiones en el puerto 9200.

Comprobando el estado del servicio

Verifique si el servicio se está ejecutando y verifique los puertos TCP que están escuchando actualmente, ejecutando:

$ netstat -a -o -n | grep LISTEN

Luego, se deben ver los puertos de escucha 9200 y 9300 como sigue:

tcp        0 0 127.0.0.53:53           0.0.0.0:* LISTEN   off (0.00/0/0)

tcp        0 0 0.0.0.0:22              0.0.0.0:* LISTEN   off (0.00/0/0)

tcp6       0 0 127.0.0.1:9200          :::* LISTEN   off (0.00/0/0)

tcp6       0 0 ::1:9200                :::* LISTEN   off (0.00/0/0)

tcp6       0 0 127.0.0.1:9300          :::* LISTEN   off (0.00/0/0)

tcp6       0 0 ::1:9300                :::* LISTEN   off (0.00/0/0)

Uso de Elasticsearch

Ahora que el servicio se está ejecutando, use pruebas ingresando datos y verificando que se encuentren más tarde.

N.B. Si usa un servidor remoto, reemplace localhost con la dirección IP de su servidor en los comandos que se muestran a continuación.

En este ejemplo, ingrese 3 productos comerciales:

$ curl -POST 'http://localhost:9200/products/1' -curl -H 'Content-Type: application/json' -d '

{

    "name": "Coffe Machine 1",

    "uuid": "00000010"

}'

Al realizar la llamada anterior, se insertará un nuevo documento en el índice "productos" con el atributo "nombre" correspondiente a "Cafetera 1" y con un identificador "uuid":

{"_index":"index","_type":"products","_id":"cUqGY20Bm2mQybZCoeKU","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":1,"_primary_term":1}

Elasticsearch responderá como se muestra arriba, especificando la identificación del producto insertado y otros datos de informes.

Luego proceda insertando otros 2 productos:

$ curl -POST 'http://localhost:9200/index/products' -curl -H 'Content-Type: application/json' -d '

{

    "name": "White Desk",

    "uuid": "WD000010"

}'
                $ curl -POST 'http://localhost:9200/index/products' -curl -H 'Content-Type: application/json' -d '

{

    "name": "Black Desk",

    "uuid": "WD000011"

}'

Una vez completado, puede continuar realizando su primera búsqueda indicando "Escritorio" como parámetro de búsqueda:

$ curl -X GET "http://localhost:9200/index/_search?q=Desk*&pretty"

Como puede ver, se obtienen 2 resultados, incluidos los dos escritorios insertados anteriormente:

{

    ...

    "hits" : [

      {

        ….

        "_source" : {

          "name" : "White Desk",

          "uuid" : "WD000010"

        }

      },

      {

        ...

        "_score" : 1.0,

        "_source" : {

          "name" : "Black Desk",

          "uuid" : "WD000011"

        }

      }

    ]

  }

}

Configuración de Elastisearch

Todos los archivos de configuración de Elasticsearch están en el directorio /etc/elasticsearch. El archivo más importante es elasticsearch.yml que permite modificar los parámetros básicos de funcionamiento del sistema, como la información del clúster, los parámetros de conexión TCP/IP o las carpetas donde almacenar los datos.

Todos los archivos de configuración presentes usan el formato YAML, por lo tanto, cuando edite estos archivos, preste atención a la sangría.

Mejora de la seguridad

Una de las primeras cosas que hay que hacer para aumentar la seguridad del servicio es limitar las conexiones entrantes, admitiendo sólo las locales. De esta forma, solo su aplicación en el servidor puede usar el servicio.

Para modificar la tarjeta de escucha altere el archivo /etc/elasticsearch/elasticsearch.yml yendo a descomentar y modifique la siguiente línea:

…

network.host: 127.0.0.1

...

Guarde el archivo y reinicie el servicio para aplicar los cambios:

$ sudo systemctl restart elasticsearch.service

Espere unos minutos y verifique que el servicio esté escuchando solo en la interfaz local iniciando:

$ netstat -a -o -n | grep LISTEN

Para mantener el servicio disponible también para uso externo, siempre es posible cambiar el puerto de escucha para ocultar la presencia de Elasticsearch.

Edite el archivo de configuración principal /etc/elasticsearch/elasticsearch.yml:

…

#

# Set the bind address to a specific IP (IPv4 or IPv6):

#

network.host: 0.0.0.0

#

# Set a custom port for HTTP:

#

http.port: 2900

...

NB En lugar de la puerta 2900 se puede insertar cualquier otra puerta.

Después de guardar el archivo, reinicie el servicio:

$ sudo systemctl restart elasticsearch.service

Para comprobar el estado del servicio, después de aplicar los cambios, utilice siempre netstat:

$ netstat -a -o -n | grep LISTEN

Linux
  1. Cómo instalar y configurar Redis en Ubuntu 18.04

  2. Cómo instalar y configurar Redmine en Ubuntu 18.04

  3. Cómo instalar y configurar Samba en Ubuntu 18.04

  4. Cómo instalar y configurar Elasticsearch en Ubuntu 20.04

  5. ¿Cómo instalar y configurar Fail2ban en Ubuntu?

Cómo instalar y configurar Git en Ubuntu 20.04

Cómo instalar y configurar OpenVAS 9 en Ubuntu

Cómo instalar y configurar Redis en Ubuntu 20.04

Cómo instalar y configurar Neo4j en Ubuntu 20.04

Cómo instalar y configurar Ubuntu SDK en Ubuntu 16.04 y 14.04

Cómo instalar y configurar Elasticsearch en Ubuntu 20.04