GNU/Linux >> Tutoriales Linux >  >> AlmaLinux

Cómo instalar Elasticsearch en AlmaLinux 8

Búsqueda elástica es un motor de análisis y búsqueda de texto completo de código abierto altamente escalable . Por lo general, es el motor o la tecnología subyacente el que impulsa las aplicaciones con características y requisitos de búsqueda complejos. El software admite operaciones RESTful que le permiten almacenar, buscar y analizar volúmenes significativos 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 potente motor de búsqueda basado en la biblioteca de Lucene.

En el siguiente tutorial, aprenderá cómo instalar Elastic Search en AlmaLinux 8 .

Requisitos

  • SO recomendado: AlmaLinux 8.
  • Cuenta de usuario: Una cuenta de usuario con privilegios sudo o acceso raíz (comando su) .

Actualización del sistema operativo

Actualiza tu AlmaLinux sistema operativo para asegurarse de que todos los paquetes existentes estén actualizados:

sudo dnf upgrade --refresh -y

El tutorial usará el comando sudo y asumiendo que tiene estado sudo .

Para verificar el estado de sudo en su cuenta:

sudo whoami

Ejemplo de salida que muestra el estado de sudo:

[joshua@localhost ~]$ sudo whoami
root

Para configurar una cuenta Sudo existente o nueva, visite nuestro tutorial sobre Cómo agregar un usuario a Sudoers en AlmaLinux .

Para usar la cuenta raíz , use el siguiente comando con la contraseña de root para iniciar sesión.

su

Instalar paquete CURL

El CURL Se necesita el comando para algunas partes de esta guía. Para instalar este paquete, escriba el siguiente comando:

sudo dnf install curl -y

Instalar paquete Java

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

Escriba el siguiente comando para instalar OpenJDK paquete:

sudo dnf install java-11-openjdk-devel

Dependencias de ejemplo que se instalarán:

Escriba “Y”, luego presione la “TECLA ENTER” para continuar con la instalación.

Confirme que Java se ha instalado correctamente con el siguiente comando:

java -version

Ejemplo de salida:

openjdk version "11.0.12" 2021-07-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.12+7-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.12+7-LTS, mixed mode, sharing)

Instalar Elasticsearch

Elasticsearch no está disponible en el flujo estándar de la aplicación AlmaLinux 8 , por lo que debe instalarlo desde el repositorio RPM de Elasticsearch .

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

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

El siguiente paso es crear un archivo de repositorio de Elasticsearch de la siguiente manera:

sudo nano /etc/yum.repos.d/elasticsearch.repo

Una vez dentro del archivo, agrega las siguientes líneas:

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Para guardar (CTRL+O), luego salga (CTRL+X) .

Ahora instale Elasticsearch usando el siguiente comando:

sudo dnf install elasticsearch

Ejemplo de salida:

Escribe “Y” , luego presione la “TECLA ENTER” para continuar con la instalación

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

Ejemplo de salida:

Executing: /usr/lib/systemd/systemd-sysv-install enable elasticsearch
Created symlink /etc/systemd/system/multi-user.target.wants/elasticsearch.service → /usr/lib/systemd/system/elasticsearch.service.

Verifique que Elasticsearch se esté ejecutando correctamente usando el comando curl para enviar una solicitud HTTP al puerto 9200 en localhost de la siguiente manera:

curl -X GET "localhost:9200/"

Ejemplo de salida:

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:

-- Logs begin at Sat 2021-08-21 01:54:10 EDT, end at Sat 2021-08-21 02:11:00 EDT. --
Aug 21 02:09:17 localhost.localdomain systemd[1]: Starting Elasticsearch...
Aug 21 02:09:43 localhost.localdomain systemd[1]: Started Elasticsearch.

Cómo configurar 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á bien principalmente 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

Desplácese hacia abajo hasta la línea 56 y busca la sección Red y elimina 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 como se indica arriba.

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:

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

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 número de códigos de respuesta del producto de la 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"
            }
        }
}
}

Cómo quitar (desinstalar) Elasticsearch

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

sudo dnf autoremove elasticsearch

Ejemplo de salida:

Escribe “Y” , luego presione la “TECLA ENTER” para continuar con la eliminación de Elasticsearch.


AlmaLinux
  1. Cómo instalar Elasticsearch en Debian 9

  2. Cómo instalar MongoDB en AlmaLinux 8

  3. Cómo instalar Lighttpd en AlmaLinux 8

  4. Cómo instalar PrestaShop en Almalinux 8

  5. Cómo instalar Nginx en AlmaLinux 8

Cómo instalar phpMyAdmin en AlmaLinux 8

Cómo instalar Nginx en AlmaLinux 8

Cómo instalar PostgreSQL en AlmaLinux 8

Cómo instalar MongoDB en AlmaLinux 8

Cómo instalar Elasticsearch en AlmaLinux 8

Cómo instalar ELK Stack en AlmaLinux 8