GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar Elasticsearch en Debian 11 Bullseye

Búsqueda elástica es un motor de análisis y búsqueda de texto completo de código abierto altamente escalable . El software admite operaciones RESTful que le permiten almacenar, buscar y analizar grandes volúmenes de datos rápidamente y casi en tiempo real. Elasticsearch es apreciado y popular entre los administradores de sistemas y los desarrolladores, ya que es un poderoso motor de búsqueda basado en la biblioteca Lucene. Por lo general, se utiliza como motor/tecnología subyacente que potencia las aplicaciones con características y requisitos de búsqueda complejos.

En el siguiente tutorial, aprenderá cómo instalar Elastic Search en Debian 11 Bullseye .

Requisitos

  • SO recomendado: Diana de Debian 11
  • Cuenta de usuario: Una cuenta de usuario con sudo o acceso root.
  • Paquetes requeridos: Curl y Java

Instalando Curl

Rizos es necesario para algunas partes de esta guía. Para instalar este paquete, escriba el siguiente comando:

sudo apt install curl -y

Instalación de Java

Para instalar correctamente y, lo que es más importante, utilizar Elasticsearch , necesitas instalar Java . El proceso es bastante fácil.

Escriba el siguiente comando para instalar OpenJDK paquete:

sudo apt install default-jdk

Ejemplo de salida con paquetes a instalar:

Para continuar con la instalación, escriba (Y) luego presione el (ENTRAR) clave.

A continuación, verifique la versión de Java instalada y la compilación con el siguiente comando:

java -version

Ejemplo de salida a continuación:

Instalación de Elasticsearch

Elasticsearch no está disponible en los repositorios estándar de Debian 11, por lo que deberá instalarlo desde el repositorio APT de Elasticsearch.

Antes de agregar el repositorio, importa la clave GPG con el siguiente comando:

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

Ejemplo de salida con (Ok) confirmando que fue exitoso:

Ahora que ha agregado la clave GPG, ahora se confiará en los repositorios de Elasticsearch. Proceda a instalar el repositorio oficial con el siguiente comando de terminal:

sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'

En el momento de crear el tutorial, Elasticsearch 7.13.4 es la versión más reciente, pero cambiará con el tiempo, y el repositorio que agregó funcionará para cualquier versión 7.x.x en el futuro.

A continuación, actualice su lista de repositorios e instale Elasticsearch de la siguiente manera:

sudo apt update && sudo apt install elasticsearch

De manera predeterminada, el servicio de Elasticsearch está deshabilitado en el arranque y no está activo. Para iniciar el servicio y habilitarlo en el arranque del sistema, escriba lo siguiente (systemctl) comando:

sudo systemctl enable elasticsearch.service --now

A continuación, para verificar que Elasticsearch se está ejecutando correctamente, utilizará el curl comando para enviar una solicitud HTTP al puerto 9200 en localhost de la siguiente manera:

curl -X GET "localhost:9200/"

Ejemplo de salida para verificar que Elasticsearch funcione correctamente:

Para ver el mensaje del sistema que Elasticsearch registra en su sistema, escriba el siguiente comando:

sudo journalctl -u elasticsearch

Ejemplo de registro de salida:

Configuración de Elasticsearch

Los datos de Elasticsearch se almacenan en la ubicación del directorio predeterminado (/var/lib/elasticsearch) . Para ver o editar los archivos de configuración, puede encontrarlos en la ubicación del directorio (/etc/elasticsearch) y las opciones de inicio de Java se pueden configurar en (/etc/default/elasticsearch) archivo de configuración.

La configuración predeterminada está generalmente bien para servidores operativos únicos, ya que Elasticsearch se ejecuta en localhost solamente. Sin embargo, si va a configurar un clúster, deberá modificar el archivo de configuración para permitir conexiones remotas.

Configurar el acceso remoto (opcional)

De forma predeterminada, Elasticsearch solo escucha localhost. Para cambiar esto, abra el archivo de configuración de la siguiente manera:

sudo nano /etc/elasticsearch/elasticsearch.yml

A continuación, desplácese hacia abajo y busque la sección Red y elimine el comentario (#) la siguiente línea y reemplácela con la dirección IP privada interna o la dirección IP externa de la siguiente manera:

En el ejemplo, descomentamos (#) el (red.host) y la cambió a una dirección IP privada interna.

Por motivos de seguridad, es ideal para especificar direcciones; sin embargo, si tiene varias direcciones IP internas o externas que acceden al servidor, cambie la interfaz de red para escuchar todas ingresando (0.0.0.0) de la siguiente manera:

A continuación, guarde el archivo de configuración (CTRL+O) luego salga (CLTR+X) .

Deberá reiniciar el servicio Elasticsearch con el siguiente comando para que los cambios surtan efecto:

sudo systemctl restart elasticsearch

Configurar UFW Firewall para permitir conexiones remotas

Si permite conexiones remotas, deberá permitir que su firewall permita que esas direcciones IP se conecten. Esto se puede hacer con el siguiente comando:

sudo ufw allow from <IP Address> to any port 9200

Puede encontrar más información sobre Debian y el cortafuegos UFW para configurar el cortafuegos UFW en Debian.

Cómo usar Elasticsearch

Para usar Elasticsearch usando el comando curl es un proceso sencillo. A continuación se muestran algunos de los más utilizados:

Borrar índice

Debajo del índice se denomina muestras .

curl -X DELETE 'http://localhost:9200/samples'

Lista de todos los índices

curl -X GET 'http://localhost:9200/_cat/indices?v'

Lista de todos los documentos en el índice

curl -X GET 'http://localhost:9200/sample/_search'

Consulta usando parámetros de URL

Aquí usamos el formato de consulta de Lucene para escribir q=escuela:Harvard.

curl -X GET http://localhost:9200/samples/_search?q=school:Harvard

Consulta con JSON, también conocido como Elasticsearch Query DSL

Puede consultar usando parámetros en la URL. Pero también puede usar JSON, como se muestra en el siguiente ejemplo. JSON sería más fácil de leer y depurar cuando tiene una consulta compleja que una cadena gigante de parámetros de URL.

curl -XGET --header 'Content-Type: application/json' http://localhost:9200/samples/_search -d '{
      "query" : {
        "match" : { "school": "Harvard" }
    }
}'

Asignación de índice de lista

Todos los campos de Elasticsearch son índices. Esto enumera todos los campos y sus tipos en un índice.

curl -X GET http://localhost:9200/samples

Añadir datos

curl -XPUT --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/1 -d '{
   "school" : "Harvard"			
}'

Actualizar documento

Aquí se explica cómo agregar campos a un documento existente. Primero, creamos uno nuevo. Luego lo actualizamos.

curl -XPUT --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/2 -d '
{
    "school": "Clemson"
}'

curl -XPOST --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/2/_update -d '{
"doc" : {
               "students": 50000}
}'

Índice de copia de seguridad

curl -XPOST --header 'Content-Type: application/json' http://localhost:9200/_reindex -d '{
  "source": {
    "index": "samples"
  },
  "dest": {
    "index": "samples_backup"
  }
}'

Carga masiva de datos en formato JSON

export pwd="elastic:"

curl --user $pwd  -H 'Content-Type: application/x-ndjson' -XPOST 'https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/0/_bulk?pretty' --data-binary @<file>

Mostrar estado del clúster

curl --user $pwd  -H 'Content-Type: application/json' -XGET https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/_cluster/health?pretty

Agregación y Agregación de cubos

Para un servidor web Nginx, esto produce recuentos de visitas web por ciudad de usuario:

curl -XGET --user $pwd --header 'Content-Type: application/json'  https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/logstash/_search?pretty -d '{
        "aggs": {
             "cityName": {
                    "terms": {
                     "field": "geoip.city_name.keyword",
                                "size": 50

        }
   }
  }
}
'

Esto lo amplía al recuento de códigos de respuesta del producto por ciudad en un registro del servidor web Nginx

curl -XGET --user $pwd --header 'Content-Type: application/json'  https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/logstash/_search?pretty -d '{
        "aggs": {
          "city": {
                "terms": {
                        "field": "geoip.city_name.keyword"
                },
        "aggs": {
          "responses": {
                "terms": {
                     "field": "response"
                 }
           }
         }
      },
      "responses": {
                "terms": {
                     "field": "response"
                 }
        }
   }
}'

Uso de ElasticSearch con autenticación básica

Si ha activado la seguridad con ElasticSearch, debe proporcionar el usuario y la contraseña como se muestra a continuación para cada comando curl:

curl -X GET 'http://localhost:9200/_cat/indices?v' -u elastic:(password)

Impresión bonita

Agregue ?pretty=true a cualquier búsqueda para imprimir bastante el JSON. Así:

 curl -X GET 'http://localhost:9200/(index)/_search'?pretty=true

Para consultar y devolver solo ciertos campos

Para devolver solo ciertos campos, colóquelos en la matriz _source:

GET filebeat-7.6.2-2020.05.05-000001/_search
 {
    "_source": ["suricata.eve.timestamp","source.geo.region_name","event.created"],
    "query":      {
        "match" : { "source.geo.country_iso_code": "GR" }
    }
}

Para consultar por fecha

Cuando el campo es de tipo fecha, puede usar matemáticas de fecha, así:

GET filebeat-7.6.2-2020.05.05-000001/_search
 {
    "query": {
        "range" : {
            "event.created": {
                "gte" : "now-7d/d"
            }
        }
}
}

Desinstalación de Elasticsearch

Si ya no necesita Elasticsearch, puede eliminar el software con el siguiente comando:

sudo apt remove elasticsearch

Elimine el repositorio apt de la siguiente manera:

sudo rm /etc/apt/sources.list.d/elastic-7.x.list

Luego actualice su lista de repositorios para reflejar los cambios:

sudo apt update

Debian
  1. Cómo instalar Elasticsearch en Debian Linux

  2. Cómo instalar R en Debian 9

  3. Cómo instalar Elasticsearch en Debian 9

  4. Cómo instalar Python 3.8 en Debian 11 Bullseye

  5. Cómo instalar Python 3.9 en Debian 11 Bullseye

Cómo instalar VidCutter en Debian 11 Bullseye

Cómo instalar PuTTY en Debian 11 Bullseye

Cómo instalar Graylog en Debian 9

Cómo instalar Go en Debian 10

Cómo instalar Elasticsearch en Debian 11

Cómo instalar Go en Debian