Cómo instalar Elasticsearch en Ubuntu 22.04 con SSL. Elasticsearch 8 es un potente análisis de datos y búsqueda distribuida en tiempo real escalable. Aquí aprenderá cómo configurar SSL para su instalación de Elasticsearch con el proxy inverso Nginx en Ubuntu 22.04.
Creará un subdominio para su servicio Elasticsearch e instalará el certificado SSL Let's Encrypt gratuito usando Certbot.
Esta configuración se prueba en Google Cloud Platform con Ubuntu 22.04 LTS. Por lo tanto, esta guía funcionará perfectamente en otros proveedores de servicios en la nube como AWS, Azure o cualquier VPS o servidores dedicados.
Requisitos
- Un servidor con un mínimo de 2 GB de RAM y 2 vCPU
- Un usuario con privilegios sudo.
Configuración inicial del servidor
Comience por actualizar los paquetes de software del servidor a la última versión disponible.
sudo apt update sudo apt upgrade
Configurar subdominio
Asegúrese de usar un subdominio para acceder a su instalación de Elasticsearch.
Vaya a su sección de administración de DNS y cree un nuevo A
registro con el nombre que deseas para tu subdominio (por ejemplo search
) y el valor de la dirección IP de su servidor.
Por lo tanto, su subdominio se verá similar al que se muestra a continuación. Si desea configurar su dominio principal, también puede hacerlo.
search.yourdomain.com
Paso 1:Instalar ElasticSearch
Java ya está incluido en el paquete de Elasticsearch, por lo que no desea instalar Java manualmente. Obtenga más información sobre cómo instalar Java en Ubuntu 22.04.
Aquí instalaremos Elasticsearch 8.
Comience importando la clave GPG del repositorio de Elasticsearch.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Agregue el repositorio a la lista de fuentes de su servidor o sistema Ubuntu.
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
Actualice la lista de paquetes e instale ElasticSearch.
sudo apt update sudo apt install elasticsearch
Una vez que se complete la instalación, recibirá la contraseña de superusuario, téngala en cuenta y protéjala.
------------------- Security autoconfiguration information ---------------------- Authentication and authorization are enabled. TLS for the transport and HTTP layers is enabled and configured. The generated password for the elastic built-in superuser is : houbJ1uivo5b=aVYYPa5 If this node should join an existing cluster, you can reconfigure this with '/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <token-here>' after creating an enrollment token on your existing cluster. You can complete the following actions at any time: Reset the password of the elastic built-in superuser with '/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic'. Generate an enrollment token for Kibana instances with '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'. Generate an enrollment token for Elasticsearch nodes with '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node'. ---------------------------------------------------------------------------------
El servicio Elasticsearch no se inicia automáticamente después de la instalación, debe ejecutar los siguientes comandos para configurar el servicio Elasticsearch para que se inicie automáticamente usando systemd.
sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service sudo systemctl start elasticsearch.service
Una vez instalado Elasticsearch, puede restringir el puerto 9200
desde el acceso externo editando el elasticsearch.yml file
y descomente el network.host
y reemplaza el valor con Internal IP or any IP or localhost
.
sudo nano /etc/elasticsearch/elasticsearch.yml
Entonces se ve así..
network.host: INTERNAL_IP
También puedes usar localhost
como host o cualquier dirección IP que desee.
Presiona Ctrl+X
seguido de Y
y Enter
para guardar el archivo y salir.
Ahora inicie y habilite Elasticsearch en el arranque del servidor.
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Ahora asegúrese de que su servicio Elasticsearch se esté ejecutando.
sudo systemctl status elasticsearch
Paso 2:Verificar si Elasticsearch funciona
Pruebe su instalación enviando una solicitud HTTPs adjuntando el certificado usando el siguiente comando.
Tome nota de la contraseña que recibió anteriormente, deberá usarla cuando se le solicite.
sudo su curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://INTERNAL_IP:9200
Introduzca la contraseña cuando se le solicite.
Recibirá una respuesta como se muestra a continuación.
{ "name" : "elasticsearch-vm", "cluster_name" : "elasticsearch", "cluster_uuid" : "vGrj3z4rQEWRBUdd9IhZWA", "version" : { "number" : "8.2.2", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "9876968ef3c745186b94fdabd4483e01499224ef", "build_date" : "2022-05-25T15:47:06.259735307Z", "build_snapshot" : false, "lucene_version" : "9.1.0", "minimum_wire_compatibility_version" : "7.17.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "You Know, for Search" }
Paso 3:Instalar y configurar Nginx para Elasticsearch
Ahora es el momento de instalar y configurar Nginx. Ejecute el siguiente comando para instalar Nginx.
sudo apt install nginx
Ahora puede configurar el proxy inverso Nginx para su Elasticsearch.
Eliminar configuraciones predeterminadas
sudo rm /etc/nginx/sites-available/default sudo rm /etc/nginx/sites-enabled/default
Cree un nuevo archivo de configuración de Nginx.
sudo nano /etc/nginx/sites-available/search.conf
Pegue lo siguiente.
Nota:debe usar exactamente el mismo IP
o localhost
que utilizó en el host de la configuración de Elasticsearch.
server { listen [::]:80; listen 80; server_name search.yourdomain.com; location / { proxy_pass http://INTERNAL_IP:9200; proxy_redirect off; proxy_read_timeout 90; proxy_connect_timeout 90; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; }
Guarde y salga del archivo.
Habilite su configuración creando un enlace simbólico.
sudo ln -s /etc/nginx/sites-available/search.conf /etc/nginx/sites-enabled/search.conf
Paso 4:Instalar Let's Encrypt SSL
HTTPS es un protocolo para la comunicación segura entre un servidor (instancia) y un cliente (navegador web). Debido a la introducción de Let's Encrypt, que proporciona certificados SSL gratuitos, todos adoptan HTTPS y también brindan confianza a sus audiencias.
sudo apt install python3-certbot-nginx
Ahora que hemos instalado Certbot de Let's Encrypt para Ubuntu 22.04, ejecute este comando para recibir sus certificados.
sudo certbot --nginx --agree-tos --no-eff-email --redirect -m [email protected] -d search.domainname.com
Este comando instalará Free SSL, configurará la redirección a HTTPS y reiniciará el servidor Nginx.
Paso 5:Renovación del certificado SSL
Los certificados proporcionados por Let's Encrypt son válidos solo por 90 días, por lo que debe renovarlos con frecuencia. Entonces, probemos la función de renovación usando el siguiente comando.
sudo certbot renew --dry-run
Este comando probará la caducidad del certificado y configurará la función de renovación automática.
Prepárese para un puesto de trabajo como profesional de tecnología de la información con sistema operativo Linux
Conclusión
Ahora ha aprendido cómo instalar Elasticsearch 8 y protegerlo con SSL gratuito de Let's Encrypt en Ubuntu 22.04.
Gracias por tu tiempo. Si tiene algún problema o comentario, deje un comentario a continuación.