Cómo instalar OpenSearch en Ubuntu 24.04

OpenSearch es un proyecto de Amazon impulsado por la comunidad y una bifurcación de Elasticsearch y Kibana. Se trata de un motor de búsqueda y un conjunto de herramientas analíticas totalmente de código abierto, con ricas características y una funcionalidad innovadora. Los principales componentes del proyecto OpenSearch son OpenSearch (una bifurcación de Elasticsearch) y OpenSearch Dashboards (una bifurcación de Kibana). Ambos componentes proporcionan funciones como seguridad empresarial, alertas, aprendizaje automático, SQL, gestión del estado de los índices y mucho más.

Esta guía te mostrará cómo instalar OpenSearch y OpenSearch Dashboard en el servidor Ubuntu 24.04. También asegurarás OpenSearch con certificados TLS y habilitarás la autenticación con nombre de usuario y contraseña.

Requisitos previos

Antes de empezar, asegúrate de que tienes lo siguiente:

  • Un servidor Ubuntu 24.04 con al menos 8GB de RAM
  • Un usuario no root con un servidor administrador

Añadir el repositorio OpenSearch

Para empezar, tienes que añadir los repositorios OpenSearch y OpenSearch Dashboard a tu sistema. En este ejemplo, utilizaremos la última versión estable de OpenSearch.

En primer lugar, ejecuta el siguiente comando para instalar los paquetes básicos en tu sistema Ubuntu.

sudo apt install lsb-release ca-certificates curl gnupg2 -y

Descarga la clave GPG para el repositorio OpenSearch con el siguiente comando.

curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring

Añade repositorios para OpenSearch y OpenSearch Dashboard a tu sistema con el comando siguiente. En este ejemplo, utilizarás la versión estable OpenSearch 2.x.

echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list

echo «deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/apt stable main» | sudo tee /etc/apt/sources.list.d/opensearch-dashboards-2.x.list

Por último, ejecuta el comando‘apt‘ que aparece a continuación para actualizar tu índice de paquetes y recuperar la información de los nuevos paquetes de OpenSearch.

sudo apt update

Instalar OpenSearch y OpenSearch Dashboard

Una vez añadido el repositorio de OpenSearch, instalarás OpenSearch y OpenSearch Dashboard a través del gestor de paquetes APT. A continuación, iniciarás ambos servicios mediante la utilidad‘systemctl‘.

Antes de instalar OpenSearch, ejecuta el siguiente comando para generar una contraseña aleatoria para la instalación de OpenSearch. Asegúrate de copiar el resultado e incluir mayúsculas, números y símbolos.

sudo openssl rand -hex 16

Ahora ejecuta el siguiente comando para instalar los paquetes«opensearch» y«opensearch-dashboard«. Asegúrate de cambiar la‘OPENSEARCH_INITIAL_ADMIN_PASSWORD‘ y escribe‘Y’ para confirmar la instalación.

sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD=B07e_af7e9f8fe12e@85ab797ddc1f174Dapt-get install opensearch opensearch-dashboard

Una vez finalizada la instalación, ejecuta el siguiente comando«systemctl» para recargar el gestor systemd y aplicar los nuevos archivos de servicio.

sudo systemctl daemon-reload

Ahora puedes iniciar, activar y verificar OpenSearch con el siguiente comando.

sudo systemctl enable --now opensearch
sudo systemctl status opensearch

A continuación puedes ver que OpenSearch se está ejecutando.

comprobar opensearch

Por último, ahora puedes iniciar, habilitar y verificar el servicio OpenSearch Dashboard con el siguiente comando.

sudo systemctl enable --now opensearch-dashboards
sudo systemctl status opensearch-dashboards

En la siguiente salida, puedes ver que el servicio‘opensearch-dashboards‘ se está ejecutando.

comprueba el panel de opensearch

Configurar OpenSearch

Con OpenSearch instalado, configurarás la instalación a través del archivo‘/etc/opensearch/opensearch.yml‘. También aumentarás el tamaño máximo predeterminado de la JVM (memoria virtual de Java) para OpenSearch según sea necesario.

Abre la configuración por defecto de OpenSearch‘/etc/opensearch/opensearch.yml‘ con el editor‘nano‘.

sudo nano /etc/opensearch/opensearch.yml

Cambia las siguientes configuraciones de OpenSearch:

  • * Cambia la opción‘network.host‘ por tu dirección IP local.
  • * Añade el‘discovery.type‘ como‘single-node‘ para ejecutar OpenSearch en un único modo
  • * Establece‘plugins.security.disabled‘ como‘false’.
# Bind OpenSearch to the correct network interface. Use 0.0.0.0
# to include all available interfaces or specify an IP address
# assigned to a specific interface.
network.host: 192.168.10.60
# Unless you have already configured a cluster, you should set
# discovery.type to single-node, or the bootstrap checks will
# fail when you try to start the service.
discovery.type: single-node

# If you previously disabled the security plugin in opensearch.yml,
# be sure to re-enable it. Otherwise you can skip this setting.
plugins.security.disabled: false

Guarda el archivo y sal del editor cuando hayas terminado.

A continuación, abre la configuración de la JVM (Máquina Virtual Java)‘/etc/opensearch/jvm.options‘ con el editor‘nano‘.

sudo nano /etc/opensearch/jvm.options

Aumenta la memoria máxima por defecto para OpenSearch según sea necesario. El valor por defecto es‘1GB‘.

-Xms2g
-Xmx2g

Guarda el archivo y sal de él.

Por último, ejecuta el siguiente comando‘systemctl‘ para reiniciar‘opensearch‘ y aplicar tus cambios. Con esto, OpenSearch se ejecutará en una dirección IP local en modo único.

sudo systemctl restart opensearch

Asegurar OpenSearch con certificados TLS/SSL

Ahora que ya has configurado OpenSearch, tendrás que configurar la seguridad de OpenSearch mediante certificados SSL/TLS. En esta sección, deshabilitarás los certificados de demostración y, a continuación, generarás certificados raíz, certificados de administrador y certificados de host/servidor.

Antes de generar los certificados SSL, elimina los certificados demo de OpenSearch utilizando el comando que se indica a continuación.

rm -f /opt/opensearch/{esnode-key.pem,esnode.pem,kirk-key.pem,kirk.pem,root-ca.pem}

Edita la configuración de OpenSearch‘/etc/opensearch/opensearch.yml‘ con el editor‘nano‘.

sudo nano /etc/opensearch/opensearch.yml

Comenta la configuración de seguridad‘demo’ para OpenSearch como se indica a continuación.

desactivar demo

Guarda el archivo y sal del editor.

Ahora crea un nuevo directorio‘/etc/opensearch/certs‘ y entra en él. Este directorio se utilizará para almacenar los nuevos certificados para OpenSearch.

mkdir -p /etc/opensearch/certs; cd /etc/opensearch/certs

Generar certificados raíz

En primer lugar, ejecuta el siguiente comando para generar certificados raíz que se utilizarán para firmar tus otros certificados, como los de servidor y cliente.

openssl genrsa -out root-ca-key.pem 2048

Ahora ejecuta el siguiente comando para generar un certificado raíz a partir de tu clave privada. Asegúrate de cambiar la opción«-subj» por los datos de tu servidor.

openssl req -new -x509 -sha256 -key root-ca-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ROOT" -out root-ca.pem -days 730

Generar certificados de administrador

Crea una nueva clave privada para tu certificado admin con lo siguiente.

openssl genrsa -out admin-key-temp.pem 2048

Convierte tu clave admin al formato PKCS8 utilizando el siguiente comando.

openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem

A continuación, crea un nuevo certificado de solicitud de firma (CSR) para el certificado admin con el comando siguiente.

openssl req -new -key admin-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=A" -out admin.csr

Ahora ejecuta el siguiente comando para firmar tu nuevo certificado de solicitud de firma (CSR) de admin con el certificado raíz.

openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730

root ca y admin

Generar certificados de host o servidor

Genera la clave privada de tus hosts/servidores OpenSearch y convierte el certificado al formato PKCS8.

openssl genrsa -out ubuntu24-key-temp.pem 2048
openssl pkcs8 -inform PEM -outform PEM -in ubuntu24-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out ubuntu24-key.PEM

Ahora ejecuta el siguiente comando para generar una solicitud de certificado (CSR) para tu host. El CN o Nombre Común debe coincidir con el fqdn de tu servidor host y no con el nombre del host. En este ejemplo, el fqdn del servidor es‘ubuntu24.howtoforge.local‘.

openssl req -new -key ubuntu24-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ubuntu24.howtoforge.local" -out ubuntu24.csr

A continuación, ejecuta el siguiente comando para crear un nuevo archivo de extensión que contenga el DNS de tu host/servidor.

echo 'subjectAltName=DNS:ubuntu24.howtoforge.local' > ubuntu24.ext

Por último, ejecuta el siguiente comando para firmar el certificado del host/servidor con el certificado raíz e incluye el archivo de extensión que creaste anteriormente.

openssl x509 -req -in ubuntu24.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out ubuntu24.pem -days 730 -extfile ubuntu24.ext

certificado del servidor

Configurar certificados

Elimina los certificados temporales, las CSR (solicitudes de certificado) para el admin y el host, y el archivo de extensión con lo siguiente.

rm *temp.pem *csr *ext
ls

Ahora convierte el certificado‘root-ca.pem‘ en el archivo‘root-ca.crt‘ con el siguiente comando.

openssl x509 -outform der -in root-ca.pem -out root-ca.crt

Después, copia el certificado«root-ca.crt» en el directorio«/usr/local/share/ca-certificates» y carga tu certificado raíz en el servidor.

sudo cp root-ca.crt /usr/local/share/ca-certificates
sudo update-ca-certificates

añadir raíz ca

Por último, ejecuta el siguiente comando para configurar el permiso y la propiedad adecuados de los archivos y directorios de certificados.

sudo chown -R opensearch:opensearch /etc/opensearch/certs
sudo chmod 0700 /etc/opensearch/certs
sudo chmod 0600 /etc/opensearch/certs/*.pem
sudo chmod 0600 /etc/opensearch/certs/*.crt

Añadir certificados a OpenSearch

Después de generar los certificados TLS para OpenSearch, tienes que añadir una nueva configuración al archivo‘opensearch.yml‘. En este caso, añadirás una nueva configuración al archivo ‘opensearch.yml’ mediante el script bash.

Antes de añadir certificados a tu servidor OpenSearch, ejecuta el siguiente comando para hacer una copia de seguridad del archivo‘opensearch.yml‘ y configurar el fqdn de tu servidor.

sudo cp /etc/opensearch/opensearch.yml /etc/opensearch/opensearch.yml.orig
sudo hostnamectl set-hostname ubuntu24.howtoforge.local

Ahora crea un nuevo archivo‘add-cert.sh‘ con el editor‘nano‘.

nano add-cert.sh

Introduce las siguientes configuraciones en el archivo. Con esto, añadirás nuevas configuraciones al archivo de configuración de OpenSearch‘opensearch.yml‘.

#! /bin/bash
# Before running this script, make sure to replace the CN in the
# node's distinguished name with a real DNS A record.

echo "plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/ubuntu24.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/ubuntu24-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.enabled: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/ubuntu24.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/ubuntu24-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.allow_default_init_securityindex: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.authcz.admin_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
echo " - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.nodes_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
echo " - 'CN=ubuntu24.hwdomain.lan,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.audit.type: internal_opensearch" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.enable_snapshot_restore_privilege: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.check_snapshot_restore_write_privileges: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.restapi.roles_enabled: [\"all_access\", \"security_rest_api_access\"]" | sudo tee -a /etc/opensearch/opensearch.yml

Guarda el archivo y sal del editor cuando hayas terminado.

Ahora haz ejecutable el archivo‘add-cert.sh’ y ejecútalo con el siguiente comando. Las nuevas configuraciones se añadirán al archivo ‘opensearch.yml’.

chmod +x add-cert.sh
./add-cert.sh

añadir nueva configuración

Proteger OpenSearch con autenticación de contraseña

Llegados a este punto, ya has configurado OpenSearch con certificados SSL/TLS y, en el siguiente paso, configurarás la autenticación por contraseña para OpenSearch. Configurarás dos usuarios que se utilizarán para iniciar sesión en OpenSearch e integrarse en el Panel de control de OpenSearch.

Ve al directorio‘/usr/share/opensearch/plugins/opensearch-security/tools‘ y ejecuta el script‘hash.sh‘ para generar una nueva contraseña para OpenSearch. Ejecuta el script‘hash.sh‘ dos veces para generar dos contraseñas para OpenSearch y OpenSearch Dashboard. Asegúrate también de copiar la contraseña generada en tu nota.

cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh

Ahora abre el archivo‘/etc/opensearch/opensearch-security/internal_users.yml‘ con el siguiente editor‘nano‘.

sudo nano /etc/opensearch/opensearch-security/internal_users.yml

Cambia la contraseña hash de los usuarios‘admin‘ y‘kibanaserver‘ por tu contraseña anterior. El usuario‘admin‘ se utilizará para iniciar sesión en el Panel de control de OpenSearch, el usuario‘kibanaserver‘ se utilizará para conectar entre OpenSearch y el Panel de control de OpenSearch.

admin:
hash: "$2y$12$zPtsgbrpfmInPRuDEKvDKetuzhUzsQWyCpE9foT1uun5RTMW51p9K"
reserved: true
backend_roles:
- "admin"
description: "Admin user"
kibanaserver:
hash: "$2y$12$zPtsgbrpfmInPRuDEKvDKetuzhUzsQWyCpE9foT1uun5RTMW51p9K"
reserved: true
description: "Demo OpenSearch Dashboards user"

Guarda el archivo y sal del editor cuando hayas terminado.

Ahora ejecuta el siguiente comando para reiniciar el servicio‘opensearch‘ y aplicar tus cambios.

sudo systemctl restart opensearch

Una vez reiniciado OpenSearch, ejecuta el comando que aparece a continuación para aplicar tus certificados SSL a OpenSearch.

cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h 192.168.10.60 -p 9200 -cd /etc/opensearch/opensearch-security/ -cacert /etc/opensearch/certs/root-ca.pem -cert /etc/opensearch/certs/admin.pem -key /etc/opensearch/certs/admin-key.pem -icl -nhnv

Si todo va bien, verás una salida como ésta:

añadir ceerts

Por último, ejecuta el comando‘curl‘ que aparece a continuación para verificar la autenticación en el servidor OpenSearch.

curl https://192.168.10.60:9200 -u admin:password -k
curl https://node-rock1:9200 -u kibanaserver:kibanapass -k

Si todo va bien, podrás acceder a OpenSearch con tu nombre de usuario y contraseña a través del protocolo HTTPS.

acceso opensearch

Configurar el panel de OpenSearch

Una vez configurada la autenticación con contraseña, configurarás el OpenSearch Dashboard editando el archivo‘opensearch-dashboard,yml‘.

Abre la configuración para OpenSearch Dashboard‘/etc/opensearch-dashboards/opensearch-dashboard.yml‘ con el editor‘nano‘.

sudo nano /etc/opensearch-dashboards/opensearch-dashboard.yml

Introduce tu dirección IP local en la opción‘servidor.host‘ como se indica a continuación:

server.host: "192.168.10.60"

Asegúrate de cambiar el host, el nombre de usuario y la contraseña de OpenSearch con tu información.

opensearch.hosts: ["https://192.168.10.60:9200"]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanapass

Guarda el archivo y sal del editor.

Ahora ejecuta el siguiente comando‘systemctl‘ para reiniciar el Panel de control de OpenSearch y aplicar tus cambios. Con esto, el OpenSearch Dashboard debería estar conectado a OpenSearch.

sudo systemctl restart opensearch-dashboards

A continuación, abre tu navegador y visita http://192.168.10.60:5601. Si la instalación se ha realizado correctamente, verás la página de inicio de sesión del Panel de control de OpenSearch.

Introduce tu usuario y contraseña de administrador y haz clic en«Iniciar sesión«.

inicio de sesión

Una vez conectado, selecciona«Añadir datos» para añadir nuevos datos o haz clic en la opción«Explorar por mi cuenta«.

explorar mi propio

Para garantizar la conexión entre OpenSearch y el Panel de control de OpenSearch, debes comprobar el estado de OpenSearch desde el panel de control.

En la sección«Gestión«, haz clic en«Herramientas de desarrollo«.

herramientas de desarrollo

Dentro de la sección de la consola, introduce‘GET /‘ y pulsa el botón de reproducción. Si tu conexión con OpenSearch y OpenSearch Dashboard es correcta, verás la siguiente página.

consulta

Conclusión

¡Enhorabuena! Has instalado OpenSearch y OpenSearch Dashboard en el servidor Ubuntu 24.04. OpenSearch se ejecuta en modo único, y la instalación está protegida con HTTPS. Por último, también has configurado la autenticación para OpenSearch e integrado OpenSearch con el Panel de OpenSearch.

También te podría gustar...