Elasticsearch 8 es un motor de análisis y búsqueda de código abierto potente y flexible conocido por su escalabilidad, velocidad y capacidades de indexación de datos en tiempo real. La versión 8.x trae mejoras significativas, incluidas características de seguridad mejoradas con administración de certificados simple, capacidades de búsqueda de texto enriquecido y ejecución de consultas más eficiente. También presenta soporte nativo para campos de tiempo de ejecución, lo que facilita la personalización de cómo se indexan y buscan los datos sin cambiar el esquema subyacente. Estos avances hacen de Elasticsearch 8.xa una solución sólida para gestionar y analizar grandes volúmenes de datos.
Para instalar Elasticsearch 8 en Debian 12, 11 o 10, puede utilizar el repositorio APT oficial proporcionado por Elasticsearch. Esta guía lo guiará a través de los pasos para configurar Elasticsearch, garantizando que tenga acceso a las últimas funciones y mejoras.
Actualice Debian antes de la instalación de Elasticsearch
En el primer paso, debe asegurarse de que su sistema Debian Linux esté actualizado. Este paso actualizará todo el software existente a sus últimas versiones y preparará su sistema para la instalación.
Ejecute el siguiente comando para actualizar su sistema Debian:
sudo apt update && sudo apt upgrade
Instalación de paquetes necesarios
Antes de instalar Elasticsearch 8 en Debian, debemos cumplir requisitos previos específicos. Esto implica instalar algunos paquetes necesarios, como software-properties-common, apt-transport-https y curl. Estos paquetes facilitan la gestión de software y la transferencia de datos a través de la red.
Instale los paquetes necesarios ejecutando lo siguiente:
sudo apt install software-properties-common apt-transport-https curl -y
Agregue el repositorio APT de Elasticsearch 8 en Debian
A continuación, agregaremos el repositorio APT de Elasticsearch a nuestro sistema Debian Linux. En primer lugar, importaremos la clave GPG para Elasticsearch, que garantiza la autenticidad del software que estás instalando. Ejecute el siguiente comando para importar la clave GPG:
curl -fSsL https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor | sudo tee /usr/share/keyrings/elasticsearch-8.gpg > /dev/null
A continuación, importemos el repositorio de Elasticsearch. Esto nos permitirá instalar Elasticsearch directamente usando el apt
gerente de empaquetación:
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-8.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elasticsearch-8.list
Actualización de la caché del índice APT
Debemos actualizar el índice del paquete APT después de agregar el repositorio de Elasticsearch a nuestro sistema. Esto garantiza que APT conozca los nuevos paquetes del repositorio recién agregado. Ejecute el siguiente comando para actualizar el índice APT:
sudo apt update
Instale Elasticsearch 8 mediante el comando APT
Ahora que nuestro sistema está preparado y el índice APT está actualizado, podemos instalar Elasticsearch 8. Utilice el siguiente comando para instalar Elasticsearch:
sudo apt install elasticsearch
Nota: Si existen dos entradas para el mismo repositorio de Elasticsearch, encontrará un error durante la actualización de apt. Si encuentra el error 'Entrada duplicada de fuentes.list', verifique en /etc/apt/sources.list.d/elasticsearch-8.x.list la entrada duplicada o localice la entrada duplicada entre los archivos en /etc/ apt/sources.list.d/ y el archivo /etc/apt/sources.list.
Habilite Elasticsearch en Debian después de la instalación
Después de la instalación, el servicio Elasticsearch está deshabilitado durante el arranque y está inactivo de forma predeterminada. Para habilitar el servicio Elasticsearch y configurarlo para que se inicie automáticamente en el arranque, utilice lo siguiente systemctl
dominio:
sudo systemctl enable elasticsearch.service --now
Configurar Elasticsearch 8
La siguiente etapa en la administración de Elasticsearch 8 en su sistema Debian Linux es configurarlo.
Familiarizarse con la configuración predeterminada de Elasticsearch
En una instalación nueva de Elasticsearch, el software coloca sus datos procesados y almacenados en el directorio /var/lib/elasticsearch. Si necesita modificaciones de configuración, /etc/elasticsearch es su directorio de referencia. Si es necesario modificar las opciones de inicio de Java, estas configuraciones se pueden ajustar en el archivo de configuración /etc/default/elasticsearch.
Estas configuraciones estándar se adaptan a servidores independientes donde Elasticsearch opera exclusivamente en localhost. Sin embargo, si su objetivo es establecer un clúster de Elasticsearch o permitir conexiones remotas, es necesario realizar modificaciones en la configuración predeterminada.
Refinando el archivo de configuración de Elasticsearch
El archivo de configuración de Elasticsearch contiene muchos parámetros que se pueden ajustar para satisfacer sus necesidades únicas. Para abrir este archivo, ejecute el siguiente comando:
sudo nano /etc/elasticsearch/elasticsearch.yml
Un parámetro importante es cluster.name, que designa el nombre del clúster al que pertenece su nodo. De forma predeterminada, esto es "elasticsearch", pero se recomienda un nombre más distintivo en un entorno de producción.
He aquí un ejemplo:
cluster.name: my_application
La opción node.name es otra importante que establece el nombre del nodo Elasticsearch. Este nombre es esencial para una administración y gestión fluidas, especialmente cuando se trabaja con varios nodos.
He aquí un ejemplo:
node.name: node-1
Configurar Elasticsearch 8 con HTTPS en Debian
Lo siguiente cubre la configuración de HTTPS para su instalación de Elasticsearch. El cifrado es esencial para proteger los datos y permitir que Elasticsearch 8 utilice HTTPS garantiza que los datos se transmitan de forma segura entre nodos y clientes.
Generar certificados SSL
El primer paso para configurar Elasticsearch para HTTPS es generar un certificado SSL. Este certificado es lo que cifrará los datos entre su servidor y sus clientes. Elasticsearch tiene una herramienta integrada llamada elasticsearch-certutil que puede utilizar para generar un certificado autofirmado. Ejecute el siguiente comando:
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil cert --silent --pem -out config/elastic-certificates.p12
Esto creará un archivo .p12 en el directorio de configuración. Este archivo contiene tanto la clave privada como el certificado público. Es esencial proteger este archivo y garantizar que no sea accesible para usuarios no autorizados.
Actualizar la configuración de Elasticsearch 8
A continuación, debe actualizar el archivo de configuración de Elasticsearch ubicado en /etc/elasticsearch/elasticsearch.yml para incluir las rutas a su certificado y clave privada. Abra el archivo de configuración y agregue las siguientes líneas:
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
Estas configuraciones habilitan SSL para la capa de transporte, especifican que usamos certificados para la verificación SSL y definen las rutas al certificado y la clave privada.
Permitir el acceso remoto (opcional)
Elasticsearch está configurado para escuchar solo localhost de forma predeterminada. Sin embargo, esto se puede ajustar en los casos en que se requiera acceso remoto. Busque la sección Red y descomente la línea network.host eliminando el # al frente. Reemplace el valor existente con su dirección IP privada interna o dirección IP externa.
He aquí un ejemplo:
# network.host: 192.168.0.1
En este ejemplo, network.host se ha descomentado y se ha ajustado a una dirección IP privada interna.
Por seguridad, es recomendable especificar direcciones IP individuales. Sin embargo, puede cambiar la interfaz de red para escuchar todo configurándola en 0.0.0.0 para múltiples direcciones IP internas o externas que se conectan al servidor.
Después de realizar los cambios necesarios, guarde el archivo de configuración (CTRL+O para guardar, CTRL+X para salir).
Para aplicar los cambios en el archivo de configuración, reinicie el servicio Elasticsearch con el comando:
sudo systemctl restart elasticsearch
Modificación de las reglas del firewall UFW para conexiones remotas
Si ha configurado Elasticsearch para permitir conexiones remotas, es vital ajustar las reglas de su firewall para acomodar estas conexiones. El cortafuegos sencillo (UFW) puede ayudar con esto.
Puede permitir que una dirección IP específica se conecte a Elasticsearch ejecutando este comando:
sudo ufw allow from <IP Address> to any port 9200
No olvides reemplazar con la dirección IP real desde la que desea permitir las conexiones. Este comando abrirá el puerto 9200 para la dirección IP especificada, permitiéndole interactuar con Elasticsearch.
Por ejemplo, si desea permitir que se conecte la dirección IP 192.168.0.2, el comando sería:
sudo ufw allow from 192.168.0.2 to any port 9200
Después de esto, su servidor Debian permitirá que el tráfico desde 192.168.0.2 acceda a Elasticsearch a través del puerto 9200. Recuerde que la seguridad de sus servidores es primordial, así que asegúrese de otorgar acceso solo a direcciones IP confiables.
Verificación de la configuración de Elasticsearch 8
Después de modificar su configuración de Elasticsearch, es vital verificar que los cambios se hayan implementado correctamente y que su instancia de Elasticsearch esté funcionando como se esperaba.
Comprobación del estado del servicio Elasticsearch 8
Primero, verifique el estado de su servicio Elasticsearch para confirmar que esté activo y ejecutándose. Puedes hacer esto con el siguiente comando:
sudo systemctl status elasticsearch
Este comando generará información sobre el servicio Elasticsearch, incluido si está activo y en ejecución. De lo contrario, es posible que deba solucionar el problema o revisar los cambios de configuración.
Prueba de acceso remoto (opcional)
Si ha habilitado el acceso remoto, puede probarlo intentando conectarse a su instancia de Elasticsearch desde una máquina remota. Como se analizó en la sección anterior, la dirección IP desde la que se conecta debe estar permitida en las reglas de su firewall.
Puedes utilizar el comando curl para este propósito:
curl https://<Your_Elasticsearch_IP>:9200
Reemplazar con la dirección IP de su servidor Elasticsearch. Si tiene éxito, este comando debería devolver información sobre su instancia de Elasticsearch.
Validación de la integridad de los datos
Finalmente, es esencial verificar la integridad de sus datos de Elasticsearch, especialmente si realizó cambios en el directorio de datos en su configuración. Elasticsearch proporciona API que puede utilizar para comprobar el estado de sus datos.
Por ejemplo, para obtener el estado de todos los índices, utilice el siguiente comando:
curl -X GET "https://localhost:9200/_cat/indices?v=true&pretty"
Este comando enumera todos los índices en su instancia de Elasticsearch y su estado de salud. Verifique el estado de salud de sus índices para asegurarse de que sus datos estén seguros y accesibles.
Nota: Recuerde, mantener la integridad y seguridad de sus datos siempre debe ser una máxima prioridad. Siempre verifique sus cambios, valide su configuración y supervise su instancia de Elasticsearch con regularidad. Esto le ayudará a mantener un sistema de gestión de datos fiable, eficiente y seguro con Elasticsearch.
Interactuando con Elasticsearch 8 a través de cURL
Esta sección explorará comandos comunes que interactúan con su instancia de Elasticsearch 8. Usaremos el curl
Herramienta de línea de comandos, una biblioteca flexible para transferir datos utilizando diferentes protocolos.
Eliminar un índice
Un índice de Elasticsearch es un conjunto de documentos que tienen características similares. Si tiene un índice llamado samples que desea eliminar, puede hacerlo con el siguiente comando:
curl -X DELETE 'https://localhost:9200/samples'
Este comando envía una solicitud HTTP DELETE a la URL especificada, lo que le indica a Elasticsearch que elimine el índice de muestras.
Listado de todos los índices
Para recuperar una lista de todos los índices en su instancia de Elasticsearch, use el punto final _cat/indices con una solicitud GET como esta:
curl -X GET 'https://localhost:9200/_cat/indices?v'
La respuesta enumerará todos los índices, incluido el estado, el estado, el tamaño y la cantidad de documentos del índice.
Obtener documentos de un índice
Para recuperar todos los documentos de un índice específico, por ejemplo un ejemplo, utilice el punto final _search:
curl -X GET 'https://localhost:9200/sample/_search'
Este comando recupera todos los documentos almacenados en el índice de muestra.
Búsqueda con parámetros de URL
Puede utilizar la sintaxis de consulta de Lucene para búsquedas de texto básicas. Por ejemplo, si quisiera buscar documentos donde el campo de la escuela sea Harvard, usaría:
curl -X GET https://localhost:9200/samples/_search?q=school:Harvard
Este comando envía una solicitud GET al punto final _search utilizando el parámetro q para la consulta.
Búsqueda con Elasticsearch Query DSL
Para consultas más complejas, es posible que prefiera utilizar Query DSL de Elasticsearch, que le permite utilizar JSON para definir consultas. Este formato es más legible y más accesible para depurar consultas complejas.
He aquí un ejemplo:
curl -XGET --header 'Content-Type: application/json' https://localhost:9200/samples/_search -d '{
"query" : {
"match" : { "school": "Harvard" }
}
}'
Este comando hace lo mismo que el anterior pero usa JSON para la definición de la consulta. De esta manera, el comando es más legible, especialmente cuando se trata de consultas más complejas.
Agregar y actualizar documentos
Para agregar un nuevo documento a un índice, puede usar el método PUT junto con el punto final _doc. Por ejemplo, para agregar un documento con un ID de 1 y un campo escolar de Harvard al índice de muestras, usaría:
curl -XPUT --header 'Content-Type: application/json' https://localhost:9200/samples/_doc/1 -d '{
"school" : "Harvard"
}'
Para actualizar un documento, puede utilizar el método POST con el punto final _update. Por ejemplo, para agregar un campo de estudiantes al documento que acabamos de crear, usaría:
curl -XPOST --header 'Content-Type: application/json' https://localhost:9200/samples/_doc/1/_update -d '{
"doc" : {
"students": 50000}
}'
Este comando le indica a Elasticsearch que actualice el documento con un ID de 1 en el índice de muestras, agregando un campo de estudiantes con un valor de 50000.
Estos comandos son sólo una pequeña muestra de lo que puede lograr con Elasticsearch. El DSL de consulta de Elasticsearch
Administrar Elasticsearch 8 en Debian 12, 11 o 10
Este segmento profundiza en el proceso de eliminación de Elasticsearch 8 de su servidor Debian Linux. Es posible que desee hacer esto por varios motivos, como que el software ya no se adapta a sus necesidades o que esté pensando en cambiar a una solución alternativa. Independientemente de sus motivos, los pasos que se describen a continuación lo guiarán a través del proceso.
Eliminación de Elasticsearch 8 de Debian
Erradicar Elasticsearch de su servidor implica un comando simple. Sin embargo, recuerda que esta acción es irreversible y eliminará todos los datos asociados. Aquí está el comando a ejecutar:
sudo apt remove elasticsearch
La ejecución del comando anterior desinstalará efectivamente Elasticsearch, liberando cualquier recurso del sistema previamente asignado.
Eliminar el repositorio APT de Elasticsearch
El repositorio de Elasticsearch permanecerá en su sistema después de la desinstalación. Si está seguro de que no reinstalará Elasticsearch en el futuro, también puede deshacerse de él para evitar desorden innecesario.
A continuación se explica cómo eliminar el repositorio de Elasticsearch:
sudo rm /etc/apt/sources.list.d/elasticsearch-8.list
El comando anterior eliminará el repositorio de Elasticsearch 8 de su servidor Debian Linux.
Actualización de la lista de repositorios
El último paso es actualizar la lista de paquetes de apt. Este paso es esencial para garantizar que su sistema no considere Elasticsearch 8 para futuras actualizaciones o instalaciones.
El comando para actualizar su lista de repositorios es el siguiente:
sudo apt update
Conclusión
Con Elasticsearch 8 instalado exitosamente en su sistema Debian, puede aprovechar sus capacidades avanzadas de búsqueda y análisis para administrar y analizar sus datos de manera eficiente. Actualice Elasticsearch periódicamente para beneficiarse de las últimas funciones y mejoras de seguridad. Disfrute de las potentes funcionalidades de Elasticsearch 8.x, diseñadas para satisfacer las demandas de la gestión y el análisis de datos modernos.