GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar Elasticsearch en CentOS 8 / RHEL 8

Elasticsearch es un motor de búsqueda de código abierto basado en Apache Lucene, ofrece un motor de búsqueda de texto completo distribuido en tiempo real con una interfaz web HTTP y documentos JSON sin esquema.

Elasticsearch está desarrollado en Java. La versión de código abierto de Elasticsearch se publica con la licencia Apache 2.0 y la versión comercial se publica con la licencia de Elastic. Actualmente, es el motor de búsqueda empresarial más popular después de Apache Solr.

Esta publicación lo ayudará a instalar Elasticsearch en CentOS 8 / RHEL 8.

Requisitos

Elasticsearch está construido con Java y el paquete incluye una versión integrada de OpenJDK, lo que significa que no necesita instalar Java por separado para la instalación de Elasticsearch. El OpenJDK incluido se encuentra dentro del directorio JDK del directorio de inicio de Elasticsearch /usr/share/elasticsearch.

Instalar Java

Para usar su propia versión de Java, instale la versión LTS de Java y establezca la variable de entorno JAVA_HOME en su sistema.

LEER :Cómo instalar Java en CentOS 8 / RHEL 8

Verifique la versión de Java instalada en el sistema.

java -version

Salida:

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

Configure JAVA_HOME con el siguiente comando.

export JAVA_HOME=<JAVA_PATH>
Después de instalar Elasticsearch en su sistema, configure JAVA_HOME en el archivo /etc/sysconfig/elasticsearch para permitir que Elasticsearch use una versión personalizada de Java.

Configurar repositorio de Elasticsearch

Elastic ofrece un paquete binario preconstruido (rpm) para RHEL y sus derivados. Descargue e instale la clave de firma pública de Elastic.

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

Versión gratuita

Este paquete es de uso gratuito. Contiene funciones comerciales de código abierto, gratuitas y de pago. Cuando instale un paquete, recibirá una licencia básica. Puede visitar la página de suscripción para obtener una lista de todas las funciones incluidas en las versiones gratuita y comercial.

Puede iniciar una prueba de 30 días para probar todas las funciones pagas. Al final del período de prueba, las funciones comerciales funcionan en modo degradado. Puede revertir la licencia a una licencia básica, extender la prueba o comprar una suscripción.

cat << EOF > /etc/yum.repos.d/elasticsearch.repo 
[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
EOF

Versión de código abierto

Este paquete es de uso gratuito y contiene solo funciones que están disponibles bajo la licencia Apache 2.0.

cat << EOF > /etc/yum.repos.d/elasticsearch.repo 
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

Instalar Elasticsearch

Instale Elasticsearch (v7.x) usando el siguiente comando.

Versión gratuita

yum install -y elasticsearch

Versión de código abierto

yum install -y elasticsearch-oss

Habilite Elasticsearch para que se inicie automáticamente durante el inicio del sistema.

systemctl daemon-reload

systemctl enable elasticsearch

systemctl start elasticsearch

Una vez que haya iniciado el servicio Elasticsearch, espere al menos un minuto para que se inicie por completo. De lo contrario, la prueba fallará.

Elastisearch ahora debería estar escuchando en el puerto 9200 para procesar solicitudes HTTP. Usa curl para obtener la respuesta.

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

Debería obtener una respuesta como la siguiente.

{
  "name" : "centos8.itzgeek.local",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "s6PwCJnoS7e7Pb3QMzkINg",
  "version" : {
    "number" : "7.4.0",
    "build_flavor" : "oss",
    "build_type" : "rpm",
    "build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910",
    "build_date" : "2019-09-27T08:36:48.569419Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Configurar Elasticsearch

Los archivos de configuración de Elasticsearch se encuentran en el directorio /etc/elasticsearch/. elasticsearch.yml es el archivo de configuración principal de Elasticsearch y contiene la configuración predeterminada para ejecutar el clúster de desarrollo. Los registros de Elasticsearch se almacenan en el directorio /var/log/elasticsearch.

Nombre del clúster

La configuración cluster.name se usa para descubrir y unir automáticamente un nodo con otros nodos. Si un grupo de nodos de Elasticsearch en la misma red tiene el mismo nombre de clúster, se descubrirán entre sí y formarán un clúster.

Cambie el nombre de clúster predeterminado del nodo de Elasticsearch para evitar la unión automática con otros nodos en la misma red. Asegúrese de utilizar un nombre de clúster único.

Edite el archivo elasticsearch.yml.

vi /etc/elasticsearch/elasticsearch.yml

Reemplace els-cluster con el nombre de su clúster de Elasticsearch.

cluster.name: els-cluster

Nombre de nodo

El node.name es como un nombre de host para el servidor de Elasticsearch, generado dinámicamente durante el inicio del servicio. Puede establecer el nombre del nodo actualizando la siguiente línea. Reemplace els-cluster-node01 con su nombre de nodo de Elasticsearch.

node.name: els-cluster-node01

Dirección de escucha

Elasticsearch se une a localhost (127.0.0.1) y escucha en el número de puerto 9200 para el tráfico HTTP de forma predeterminada. Utiliza el número de puerto 9300 – 9400 para la comunicación entre nodos dentro del clúster.

Para formar un clúster de Elasticsearch multinodo o traer el nodo de Elasticsearch para uso de producción para permitir que las aplicaciones accedan al nodo de Elasticsearch, debe configurar Elasticsearch para escuchar la dirección IP del sistema.

### Listening on particular IPv4 ###

network.host: 192.168.0.10

O

### Listen on All IP Address ###

network.host: 0.0.0.0

También debe actualizar la configuración a continuación con la dirección IP de su sistema.

discovery.seed_hosts: ["192.168.0.10"]

Reinicie el servicio Elasticsearch.

systemctl restart elasticsearch

Una vez que reinicie el servicio Elasticsearch, espere al menos un minuto para permitir que Elasticsearch se inicie por completo.

Compruebe si Elasticsearch está escuchando en el puerto 9200 en todas las direcciones IP o en una dirección IP particular con el comando netstat.

LEER: Comando netstat no encontrado en CentOS 8 / RHEL 8

 netstat -antup | grep -i 9200

Salida:

tcp6       0      0 :::9200                 :::*                    LISTEN      2143/java

Verifique que tanto el Nombre del nodo como el Nombre del clúster se hayan configurado correctamente mediante curl.

curl -X GET 'http://192.168.0.10:9200'

Debería obtener una respuesta como la siguiente.

{
  "name" : "els-cluster-node01",
  "cluster_name" : "els-cluster",
  "cluster_uuid" : "s6PwCJnoS7e7Pb3QMzkINg",
  "version" : {
    "number" : "7.4.0",
    "build_flavor" : "oss",
    "build_type" : "rpm",
    "build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910",
    "build_date" : "2019-09-27T08:36:48.569419Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Trabajar con Elasticsearch

Agreguemos algunos datos a Elasticsearch. Puede usar el comando curl para leer, agregar, eliminar y actualizar los datos en Elasticsearch a través del puerto 9200 usando una API RESTful.

Los documentos se almacenan en el siguiente formato

Elasticsearch ⇒ Índices ⇒ Tipos ⇒ Documentos ⇒ Campos

Índices: Plural de un índice, donde se almacenan los datos de Elasticsearch.

Tipos: Contiene varios documentos y es como el tipo de datos.

Documentos: Contiene los campos de datos.

Campos: Datos reales.

Añadir datos

Use el siguiente comando curl para agregar datos a nuestro Elasticsearch.

curl -XPUT 'http://localhost:9200/itzgeek/howtos/1' -H 'Content-Type: application/json' -d '
{ 
    "Title" : "Install Elasticsearch On RHEL 8", 
    "Date"  : "May 2019", 
    "Tag"   : "RHEL"
}'

Debería obtener la siguiente respuesta con "resultado":"creado".

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

donde,

itzgeek: El índice del clúster de Elasticsearch.

instrucciones: El tipo de documento

1: La identificación de la entrada en howtos y el índice itzgeek.

Leer datos

Use el siguiente comando para consultar datos en Elasticsearch.

curl -X GET 'http://localhost:9200/itzgeek/howtos/1'

Agregue ?pretty=true al comando anterior para obtener una salida formateada.

curl -X GET 'http://localhost:9200/itzgeek/howtos/1?pretty=true'

La salida se verá como a continuación.

{
  "_index" : "itzgeek",
  "_type" : "howtos",
  "_id" : "1",
  "_version" : 1,
  "_seq_no" : 0,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "Title" : "Install Elasticsearch On RHEL 8",
    "Date" : "May 2019",
    "Tag" : "RHEL"
  }
}

Actualizar datos

Use el siguiente comando para actualizar los datos.

curl -XPUT 'http://localhost:9200/itzgeek/howtos/1' -H 'Content-Type: application/json' -d '
{ 
    "Title" : "Install Elasticsearch On RHEL 8", 
    "Date"  : "May 2019", 
    "Tag"   : "RHEL"
}'

No habrá cambios en el índice, el tipo y el documento. Pero, los campos tendrán datos modificados.

La respuesta debería verse como a continuación, contener "_versión":2 y "resultado":"actualizado", lo que significa que el documento ha sido actualizado.

{"_index":"itzgeek","_type":"howtos","_id":"1","_version":2,"result":"updated","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":1,"_primary_term":1}

Eliminar datos

Utilice el siguiente comando para eliminar el documento.

curl -X DELETE 'http://localhost:9200/itzgeek/howtos/1'

La respuesta se verá a continuación. Si se encuentra el documento, obtendrá "resultado":"eliminado".

{"_index":"itzgeek","_type":"howtos","_id":"1","_version":3,"result":"deleted","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":2,"_primary_term":1}

Si no se encuentra el documento, obtendrá "resultado":"not_found".

{"_index":"itzgeek","_type":"howtos","_id":"1","_version":4,"result":"not_found","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":3,"_primary_term":1}

Conclusión

Espero que haya aprendido a instalar Elasticsearch en CentOS 8/RHEL 8 y a agregar, leer, eliminar y actualizar datos en Elasticsearch. También puede configurar un clúster de Elasticsearch de múltiples nodos para manejar una gran cantidad de datos.


Cent OS
  1. Cómo instalar Gradle en CentOS 8/7 y RHEL 8/7

  2. Cómo instalar Oracle Java 12/11/8 en CentOS 6/RHEL 6

  3. Cómo instalar Oracle Java JDK 12/11/8 en CentOS 7/RHEL 7

  4. Cómo instalar Graylog2 en CentOS 7 / RHEL 7

  5. Cómo instalar Elasticsearch en CentOS/RHEL 8

Cómo instalar Java en RHEL 8 / CentOS 8 Linux

Cómo instalar Java en CentOS 7

Cómo instalar Elasticsearch en CentOS 7

Cómo instalar Elasticsearch en CentOS 8

Cómo instalar Graylog en CentOS 8 / RHEL 8

Cómo instalar Graylog 3.0 en CentOS 7 / RHEL 7