Elasticsearch es un servidor de búsqueda de código abierto de nivel empresarial basado en Apache Lucene, ofrece análisis y búsqueda distribuidos en tiempo real con una interfaz web RESTful y documentos JSON sin esquema. Elasticsearch está desarrollado en Java y se publica bajo licencia Apache. Actualmente, ocupa el segundo lugar en el motor de búsqueda empresarial más popular, detrás de Apache Solr.
Esta guía lo ayudará a instalar Elasticsearch en CentOS 7 /
Requisitos
Como se dijo anteriormente, Elasticsearch está desarrollado en Java. Asegúrese de tener instalado el último JDK en su sistema. Siga los tutoriales a continuación para instalar Oracle JDK en Linux.
LEER :Cómo instalar Java JDK 8 en Ubuntu 16.04 / Linux Mint 18
LEER :Cómo instalar Java SDK 1.8 en RHEL 7 / CentOS 7
Verifique la versión de JDK instalada en el sistema.
java -version
Salida:
openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11) OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
Instalar Elasticsearch
Elasticsearch se puede descargar directamente desde el sitio web oficial, más que eso, ofrece un paquete binario preconstruido para RHEL y derivados de Debian.
Descargue e instale la clave de firma pública.
### Debian 9 / Ubuntu 16.04 & Linux Mint 18 ### $ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - ### RHEL 7 / CentOS 7 ### # rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Agregue y habilite el repositorio de Elasticsearch.
### Debian 9 / Ubuntu 16.04 & Linux Mint 18 ### $ echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elk.list ### RHEL 7 / CentOS 7 ### # cat <<EOF >> /etc/yum.repos.d/elasticsearch.repo [elasticsearch-5.x] name=Elasticsearch repository for 5.x packages baseurl=https://artifacts.elastic.co/packages/5.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF
Instale Elasticsearch usando el siguiente comando.
### Debian 9 / Ubuntu 16.04 & Linux Mint 18 ### $ sudo apt-get update $ sudo apt-get install -y elasticsearch ### RHEL 7 / CentOS 7 ### # yum -y install elasticsearch
Configure Elasticsearch para que se inicie automáticamente durante el inicio del sistema.
### Debian 9 / Ubuntu 16.04 & Linux Mint 18 ### $ sudo systemctl enable elasticsearch $ sudo systemctl start elasticsearch ### RHEL 7 / CentOS 7 ### # systemctl daemon-reload # systemctl enable elasticsearch # systemctl start elasticsearch
Configurar Elasticsearch
Los archivos de configuración de Elasticsearch se pueden encontrar en el directorio /etc/elasticsearch/; solo podía ver dos archivos, elasticsearch.yml y logging.yml.
logging.yml administra el registro de elasticsearch, y los archivos de registro se almacenan en el directorio /var/log/elasticsearch.
elasticsearch.yml es el archivo de configuración principal de elasticsearch, contiene la configuración predeterminada para ejecutar el clúster de producción.
Elasticsearch, de forma predeterminada, se vincula a todas las tarjetas de red (0.0.0.0) y escucha en el puerto 9200 - 9300 para el tráfico HTTP y en el 9300 - 9400 para la comunicación interna de nodo a nodo, los rangos significan que si el puerto está ocupado, pruebe automáticamente el siguiente puerto.
Edite el archivo elasticsearch.yml.
# vi /etc/elasticsearch/elasticsearch.yml
Para hacer que Elasticsearch escuche en una IP en particular, coloque la dirección IP en la siguiente sintaxis. Para proteger elasticsearch del acceso público, puede configurarlo para escuchar en localhost.
### Listening on particular IPv4 ### network.bind_host: 192.168.0.1 ### Disabling public access ### network.bind_host: 127.0.0.1
Reinicie el servicio Elasticsearch.
# service elasticsearch restart
Una vez que haya reiniciado, espere al menos un minuto para permitir que Elasticsearch se inicie por completo. De lo contrario, la prueba fallará. Elastisearch ahora debería estar escuchando en 9200 para procesar la solicitud HTTP; usaremos CURL para obtener la respuesta.
# curl -X GET 'http://localhost:9200'
Debería obtener la respuesta como se muestra a continuación.
{ "name" : "gf5QYAn", "cluster_name" : "elasticsearch", "cluster_uuid" : "S6gZNkMERpSr-MGXqEFUJw", "version" : { "number" : "5.5.2", "build_hash" : "b2f0c09", "build_date" : "2017-08-14T12:33:14.154Z", "build_snapshot" : false, "lucene_version" : "6.6.0" }, "tagline" : "You Know, for Search" }
Alternativamente, puede usar un navegador para consultar Elasticsearch. Deberías ver lo mismo que viste usando curl.
Clúster de búsqueda elástica
Nombre del clúster
La configuración cluster.name se utiliza para descubrir y unirse automáticamente a otros nodos. Si un grupo de servidores de Elasticsearch en la misma red tiene el mismo nombre de clúster, se descubrirán entre sí. Asegúrese de cambiar el nombre de clúster predeterminado del servidor de Elasticsearch para evitar la unión automática de otros servidores en la misma red que no está bajo su control.
Si ejecuta varios clústeres de Elasticsearch en la misma red, asegúrese de utilizar nombres de clúster únicos.
cluster.name:<NAME OF YOUR CLUSTER>
Nombre de nodo
El nombre del nodo es como un nombre de host para el servidor de Elasticsearch, generado dinámicamente durante el inicio del servicio. Puede establecer su propio nombre configurando la siguiente sintaxis.
node.name: "<NAME OF YOUR NODE>"
No olvide reiniciar el servicio Elasticsearch.
# service elasticsearch restart
Uso de Elasticsearch
Agreguemos algunos datos a Elasticsearch. Podemos usar curl para hablar con Elasticsearch a través del puerto 9200 usando una API RESTful. Con curl, podemos leer, agregar, eliminar y actualizar los datos usando la API. 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, es como el tipo de datos.
Documentos =Contiene los campos de datos.
Campos =Datos detallados reales.
Añadir
Use el siguiente comando curl para agregar datos a nuestro Elasticsearch.
# curl -X POST 'http://localhost:9200/itzgeek/howtos/1' -d '{ "Title" : "Installing Elasticsearch", "Date" : "March 2015", "Tag" : "Ubuntu,CentOS,LinuxMint" }'
Debería obtener la siguiente respuesta.
{"_index":"itzgeek","_type":"howtos","_id":"1","_version":1,"created":true}
donde
“itzgeek” es el índice del clúster de Elasticsearch.
“cómo” es el tipo de documento
Leer
Puede usar el siguiente comando para consultar los datos en Elasticsearch.
# curl -X GET 'http://localhost:9200/itzgeek/howtos/1'
Agregue ?pretty=true para obtener una salida con formato.
# 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, "found" : true, "_source":{ "Title" : "Installing Elasticsearch", "Date" : "March 2015", "Tag" : "Ubuntu,CentOS,LinuxMint" } }
Actualizar
Para actualizar el documento completo, use el siguiente comando POST. No habrá cambios en el índice, tipo y documento; los campos tendrán un dato modificado.
# curl -X POST 'http://localhost:9200/itzgeek/howtos/1' -d '{ "Title" : "Installing LogStash", "Date" : "March 2015", "Tag" : "Ubuntu,CentOS,LinuxMint" }'
La respuesta debería verse como a continuación, debería contener version:2 y creado:falso; significa que el documento ha sido actualizado.
{"_index":"itzgeek","_type":"howtos","_id":"1","_version":2,"created":false}
Eliminar
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á encontrado:verdadero y versión incrementada .
{"found":true,"_index":"itzgeek","_type":"howtos","_id":"1","_version":3}
Si no se encuentra el documento, obtendrá encontrado:falso y versión incrementada .
{"found":false,"_index":"itzgeek","_type":"howtos","_id":"1","_version":4}
¡Eso es todo! Ha instalado y configurado correctamente Elasticsearch en Ubuntu 14.10/RHEL 7/Linux Mint 17.
Enlaces:
Elasticsearch =elastisearch.org
SetupGuide =Guía