bolt Valebyte VPS desde $4/mes — NVMe, despliegue en 60s.

Obtener VPS arrow_forward
eco Principiante Tutorial/Cómo hacer

Despliegue de OpenSearch y

calendar_month Aug 18, 2026 schedule 20 min de lectura visibility 13 vistas
Развертывание OpenSearch и OpenSearch Dashboards на VPS для централизованного логирования и аналитики
info

¿Necesitas un servidor para esta guía? Ofrecemos servidores dedicados y VPS en más de 50 países con configuración instantánea.

¿Necesitas un VPS para esta guía?

Explore otras opciones de servidores dedicados en

Despliegue de OpenSearch y OpenSearch Dashboards en un VPS para registro y análisis centralizados

TL;DR

En esta guía detallada, configuraremos paso a paso OpenSearch y OpenSearch Dashboards en su VPS para crear un sistema potente y flexible de recopilación, almacenamiento, búsqueda y análisis centralizados de logs y métricas. Aprenderá cómo preparar el servidor, instalar todos los componentes necesarios, configurarlos de forma segura utilizando TLS y un proxy inverso, y garantizar una copia de seguridad y un mantenimiento fiables.

  • Instalación de OpenSearch y OpenSearch Dashboards de versiones actuales (2.15+) en Ubuntu 24.04 LTS.
  • Configuración de acceso seguro a través de HTTPS con Caddy y Let's Encrypt.
  • Configuración de los mecanismos de seguridad integrados de OpenSearch para autenticación y autorización.
  • Recomendaciones para elegir la configuración óptima de VPS para su tarea.
  • Creación de un script simple para la copia de seguridad automática de datos de OpenSearch.
  • Solución de problemas comunes paso a paso durante el despliegue.

Qué configuramos y por qué

Diagrama: Qué configuramos y por qué
Diagrama: Qué configuramos y por qué

Desplegaremos la combinación de OpenSearch y OpenSearch Dashboards. OpenSearch es un sistema de búsqueda y análisis distribuido y escalable, construido sobre Apache Lucene. Es un fork de Elasticsearch y está diseñado para procesar grandes volúmenes de datos en tiempo real, realizar búsquedas de texto completo, agregación y análisis. OpenSearch Dashboards (un fork de Kibana) es una potente herramienta de visualización y gestión de datos que permite crear dashboards interactivos, analizar logs, métricas y otros datos almacenados en OpenSearch.

En última instancia, obtendrá una plataforma completamente funcional para registro, monitoreo y análisis centralizados, capaz de recopilar logs de diversas fuentes (aplicaciones, servidores, dispositivos de red), almacenarlos, ejecutar consultas complejas sobre ellos y visualizar los resultados. Esto es fundamental para la depuración de aplicaciones, la identificación de problemas de rendimiento, la garantía de seguridad y el cumplimiento normativo.

Por ejemplo, un desarrollador podrá encontrar fácilmente errores en los logs de su aplicación, un fundador solitario de SaaS podrá monitorear la actividad de los usuarios y el rendimiento del servicio, y un entusiasta de las criptomonedas podrá monitorear el funcionamiento de su nodo analizando sus logs. Las posibilidades de aplicación son prácticamente ilimitadas.

Alternativas: en la nube vs. autoalojado

Existen varios enfoques para el despliegue de estos sistemas. Las principales alternativas son los servicios gestionados en la nube (por ejemplo, Amazon OpenSearch Service, Google Cloud Logging, Azure Monitor) o el despliegue autoalojado (self-hosted) en un VPS propio o un servidor dedicado.

Los servicios gestionados en la nube ofrecen comodidad, escalabilidad bajo demanda y no requieren conocimientos profundos de administración. Sin embargo, a menudo son más caros, especialmente con grandes volúmenes de datos, y pueden tener limitaciones de personalización. Además, usted depende de un proveedor específico y su política de precios.

La solución autoalojada en un VPS, que configuraremos, le da control total sobre los datos, la configuración y los costos. Solo paga por los recursos del servidor, lo que a menudo es significativamente más barato a largo plazo. Es una opción ideal para quienes valoran la privacidad, desean comprender a fondo el funcionamiento del sistema o tienen requisitos específicos difíciles de implementar en la nube. Sí, requiere más esfuerzo de configuración y mantenimiento, pero para eso se ha creado esta guía.

Qué configuración de VPS se necesita para esta tarea

Diagrama: Qué configuración de VPS se necesita para esta tarea
Diagrama: Qué configuración de VPS se necesita para esta tarea

OpenSearch es un sistema bastante exigente en cuanto a recursos, especialmente en memoria RAM y subsistema de disco. La elección correcta de la configuración del VPS es crucial para un funcionamiento estable y rápido.

Requisitos mínimos para OpenSearch y OpenSearch Dashboards (un nodo)

  • Procesador (CPU): 2 núcleos. Preferiblemente Intel Xeon o AMD EPYC modernos.
  • Memoria RAM: Mínimo 8 GB. OpenSearch utiliza activamente la caché del sistema de archivos y el Heap de la JVM. Se recomienda asignar la mitad de la RAM disponible al Heap de la JVM.
  • Disco: 100 GB NVMe SSD. La velocidad del disco es uno de los factores más importantes para el rendimiento de OpenSearch, ya que indexa y busca datos constantemente. NVMe SSD supera significativamente a SATA SSD.
  • Red: 1 Gbit/s. Para la transmisión de logs y el acceso a Dashboards.

Plan de VPS recomendado para una carga de producción pequeña

Si planea recopilar logs de varios servicios o procesar un volumen significativo de datos (por ejemplo, más de 10-20 GB de logs al día), se recomienda la siguiente configuración:

  • Procesador (CPU): 4 núcleos.
  • Memoria RAM: 16-32 GB. Esto permitirá a OpenSearch almacenar en caché los datos de manera más eficiente y procesar consultas complejas.
  • Disco: 250-500 GB NVMe SSD. El volumen del disco dependerá del volumen de logs y del período de retención deseado. Asegúrese de que el disco sea lo suficientemente potente.
  • Red: 1 Gbit/s.

Para estas características, se puede considerar un VPS con las características indicadas, que proporcionará el rendimiento y la estabilidad necesarios.

Cuándo se necesita un servidor dedicado y no un VPS

Un servidor dedicado se vuelve preferible a un VPS cuando:

  • El volumen de datos es muy grande: Si planea almacenar terabytes de logs o procesar cientos de gigabytes al día.
  • Se requiere el máximo rendimiento: Para sistemas críticos donde cada milisegundo cuenta.
  • Se necesita aislamiento completo de recursos: Un servidor dedicado garantiza que no compartirá recursos con otros usuarios.
  • Se necesita personalización de hardware: Por ejemplo, el uso de controladores RAID especializados o grandes volúmenes de RAM.

Para instalaciones muy grandes, OpenSearch a menudo se despliega en un clúster de varios servidores dedicados. Para tareas pequeñas y medianas, un VPS es suficiente.

Ubicación: qué factores influye

La elección de la ubicación del VPS tiene varios aspectos importantes:

  • Latencia: Elija una ubicación geográficamente cercana a las fuentes de sus logs (servidores, aplicaciones, usuarios). Esto minimizará los retrasos en la transmisión de datos y mejorará la capacidad de respuesta de los Dashboards.
  • Legislación: Dependiendo del tipo de datos que almacenará, pueden aplicarse diferentes leyes de privacidad de datos (por ejemplo, GDPR). Elija una ubicación que cumpla con sus requisitos legales.
  • Disponibilidad: Algunas ubicaciones pueden ser más estables o tener mejor conectividad con ciertas regiones del mundo.

Para la mayoría de los usuarios, la elección óptima será un centro de datos en Europa o América del Norte, dependiendo de la audiencia principal y la ubicación de sus otros servidores.

Preparación del servidor

Diagrama: Preparación del servidor
Diagrama: Preparación del servidor

Antes de instalar OpenSearch y OpenSearch Dashboards, es necesario realizar una configuración básica y reforzar la seguridad de su VPS. Utilizaremos Ubuntu Server 24.04 LTS.

1. Actualización del sistema e instalación de utilidades básicas

Conéctese al servidor por SSH con la cuenta root o un usuario con permisos de sudo.


sudo apt update && sudo apt upgrade -y # Actualización de la lista de paquetes e instalación de actualizaciones
sudo apt install -y curl wget git vim htop screen net-tools # Instalación de utilidades útiles

2. Creación de un nuevo usuario con permisos sudo

No se recomienda trabajar como root. Cree un nuevo usuario y agréguelo al grupo sudo.


sudo adduser adminuser # Creación de un nuevo usuario, siga las instrucciones
sudo usermod -aG sudo adminuser # Adición del usuario al grupo sudo

Ahora, salga de la sesión de root y conéctese como adminuser.


exit # Salir de la sesión actual
ssh adminuser@ВАШ_IP_АДРЕС # Iniciar sesión como el nuevo usuario

3. Configuración de claves SSH (recomendado)

Para mejorar la seguridad, use claves SSH en lugar de contraseñas. Primero, genere las claves en su máquina local (si aún no lo ha hecho).


ssh-keygen -t rsa -b 4096 # En su máquina local

Copie la clave pública al servidor (reemplace adminuser y SU_DIRECCIÓN_IP).


ssh-copy-id adminuser@ВАШ_IP_АДРЕС # En su máquina local

Luego, deshabilite la autenticación por contraseña y el inicio de sesión para root en el archivo /etc/ssh/sshd_config en el servidor.


sudo vim /etc/ssh/sshd_config # Abrir el archivo de configuración SSH

Encuentre y modifique las siguientes líneas (o agréguelas si no existen):


# Deshabilitar el inicio de sesión para root
PermitRootLogin no

# Deshabilitar la autenticación por contraseña después de configurar las claves SSH
PasswordAuthentication no

# Asegúrese de que se utilice la autenticación por clave
PubkeyAuthentication yes

Guarde los cambios y reinicie el servicio SSH.


sudo systemctl restart sshd # Reiniciar el servicio SSH

4. Configuración del firewall (UFW)

Configure UFW (Uncomplicated Firewall) para permitir solo el tráfico necesario.


sudo ufw allow OpenSSH # Permitir tráfico SSH
sudo ufw allow http # Permitir tráfico HTTP (para Caddy)
sudo ufw allow https # Permitir tráfico HTTPS (para Caddy)
sudo ufw enable # Habilitar el firewall
sudo ufw status # Verificar el estado del firewall

Si utiliza un puerto no estándar para SSH, permítalo en lugar de OpenSSH (por ejemplo, sudo ufw allow 2222/tcp).

5. Instalación de Fail2Ban

Fail2Ban ayuda a proteger contra ataques de fuerza bruta, bloqueando las direcciones IP desde las que se realizan intentos fallidos de inicio de sesión.


sudo apt install -y fail2ban # Instalación de Fail2Ban
sudo systemctl enable fail2ban # Habilitar el inicio automático de Fail2Ban
sudo systemctl start fail2ban # Iniciar Fail2Ban

Para una configuración básica, la configuración predeterminada suele ser suficiente. Puede copiar el archivo de configuración principal para modificarlo:


sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # Crear una copia local
sudo vim /etc/fail2ban/jail.local # Editar el archivo local

En la sección [sshd], asegúrese de que enabled = true.

Ahora su servidor está listo para la instalación de OpenSearch y OpenSearch Dashboards.

Instalación de software — paso a paso

Diagrama: Instalación de software — paso a paso
Diagrama: Instalación de software — paso a paso

Instalaremos OpenSearch 2.15 (versión actual para 2026, o una versión 2.x estable más reciente) y OpenSearch Dashboards 2.15 en Ubuntu 24.04 LTS, utilizando los repositorios APT oficiales.

1. Instalación de Java Development Kit (JDK)

OpenSearch requiere una JVM. Se recomienda usar OpenJDK 17 LTS o OpenJDK 21 LTS.


sudo apt update # Actualización de la lista de paquetes
sudo apt install -y openjdk-17-jdk # Instalación de OpenJDK 17
java -version # Verificación de la versión de Java instalada

Asegúrese de que el comando java -version muestre información sobre OpenJDK 17.

2. Adición del repositorio de OpenSearch

Agregue la clave GPG del repositorio de OpenSearch y el repositorio mismo a su sistema.


# Importar la clave GPG de OpenSearch
wget -qO - https://artifacts.opensearch.org/publickeys/opensearch.gpg | sudo gpg --dearmor -o /usr/share/keyrings/opensearch-keyring.gpg

# Añadir el repositorio de OpenSearch para OpenSearch 2.x
echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring.gpg] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list

# Actualizar la lista de paquetes después de añadir el repositorio
sudo apt update

Nota: Si para 2026 la versión actual es OpenSearch 3.x, cambie la ruta del repositorio a /3.x/apt en consecuencia.

3. Instalación de OpenSearch

Ahora puede instalar OpenSearch.


sudo apt install -y opensearch # Instalación del paquete OpenSearch

Después de la instalación, configure el inicio automático y ejecute el servicio.


sudo systemctl daemon-reload # Recargar systemd
sudo systemctl enable opensearch # Habilitar el inicio automático de OpenSearch
sudo systemctl start opensearch # Iniciar el servicio OpenSearch
sudo systemctl status opensearch # Verificar el estado del servicio

Asegúrese de que el servicio esté en ejecución y activo (Active: active (running)).

4. Instalación de OpenSearch Dashboards

OpenSearch Dashboards utiliza el mismo repositorio que OpenSearch.


sudo apt install -y opensearch-dashboards # Instalación del paquete OpenSearch Dashboards

Configure el inicio automático y ejecute el servicio Dashboards.


sudo systemctl daemon-reload # Recargar systemd
sudo systemctl enable opensearch-dashboards # Habilitar el inicio automático de Dashboards
sudo systemctl start opensearch-dashboards # Iniciar el servicio OpenSearch Dashboards
sudo systemctl status opensearch-dashboards # Verificar el estado del servicio

Asegúrese de que el servicio esté en ejecución.

5. Instalación de Caddy (para HTTPS)

Caddy es un servidor web potente y fácil de usar con soporte HTTPS automático a través de Let's Encrypt. Lo usaremos como proxy inverso para OpenSearch Dashboards.


sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https # Instalación de los paquetes necesarios
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg # Añadir la clave GPG de Caddy
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list # Añadir el repositorio de Caddy
sudo apt update # Actualizar la lista de paquetes
sudo apt install -y caddy # Instalación de Caddy
sudo systemctl enable caddy # Habilitar el inicio automático de Caddy
sudo systemctl start caddy # Iniciar el servicio Caddy
sudo systemctl status caddy # Verificar el estado de Caddy

Ahora todos los componentes están instalados. Pasamos a su configuración.

Configuración

Diagrama: Configuración
Diagrama: Configuración

La configuración de OpenSearch y OpenSearch Dashboards requiere atención a los detalles, especialmente en lo que respecta a la seguridad. Configuraremos TLS para OpenSearch, el sistema de seguridad integrado y un proxy inverso con HTTPS para Dashboards.

1. Configuración de OpenSearch

El archivo de configuración principal de OpenSearch se encuentra en /etc/opensearch/opensearch.yml.


sudo vim /etc/opensearch/opensearch.yml # Abrir el archivo de configuración de OpenSearch

Realice los siguientes cambios (o descomente y modifique):


# Configuración principal del clúster
cluster.name: opensearch-cluster
node.name: node-1

# Configuración de red
network.host: 0.0.0.0 # Permitir conexiones desde todas las interfaces
http.port: 9200
transport.port: 9300

# Configuración de descubrimiento (para un solo nodo)
discovery.type: single-node

# Rutas de datos y logs
path.data: /var/lib/opensearch
path.logs: /var/log/opensearch

# Configuración de seguridad (Security Plugin)
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.clientauth_mode: OPTIONAL
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/opensearch.pem
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/opensearch.key
plugins.security.ssl.http.rootcas_filepath: /etc/opensearch/certs/root-ca.pem

plugins.security.ssl.transport.enabled: true
plugins.security.ssl.transport.clientauth_mode: OPTIONAL
plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/opensearch.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/opensearch.key
plugins.security.ssl.transport.rootcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.allow_unsafe_democertificates: false # En producción, siempre false
plugins.security.audit.type: internal_opensearch
plugins.security.audit.config.internal_opensearch.enabled: true
plugins.security.nodes_dn:
  - "CN=node-1,OU=opensearch,O=OpenSearch,L=Seattle,ST=Washington,C=US" # Reemplace con el DN de su nodo

# Para usar la autenticación integrada
plugins.security.authcz.admin_dn:
  - "CN=admin,OU=opensearch,O=OpenSearch,L=Seattle,ST=Washington,C=US" # Reemplace con el DN de su administrador
Generación de certificados

OpenSearch requiere certificados TLS para un funcionamiento seguro. Usaremos la herramienta integrada opensearch-certgen.


sudo /usr/share/opensearch/modules/opensearch-security/tools/securityadmin.sh -cd /usr/share/opensearch/plugins/opensearch-security/securityconfig/ -icl -nhnv -cacert /usr/share/opensearch/plugins/opensearch-security/securityconfig/root-ca.pem -cert /usr/share/opensearch/plugins/opensearch-security/securityconfig/kirk.pem -key /usr/share/opensearch/plugins/opensearch-security/securityconfig/kirk-key.pem

# Creamos el directorio para los certificados
sudo mkdir -p /etc/opensearch/certs

# Generamos certificados usando opensearch-certgen
# Siga las instrucciones, ingrese 'y' para crear la CA, luego para generar los certificados.
# Asegúrese de que el Common Name (CN) para el nodo coincida con 'CN=node-1,OU=opensearch,O=OpenSearch,L=Seattle,ST=Washington,C=US'
# y para el administrador 'CN=admin,OU=opensearch,O=OpenSearch,L=Seattle,ST=Washington,C=US'
sudo /usr/share/opensearch/plugins/opensearch-security/tools/opensearch-certgen.sh -p /etc/opensearch/certs

# Movemos los archivos generados
sudo mv /etc/opensearch/certs/kirk-key.pem /etc/opensearch/certs/opensearch.key
sudo mv /etc/opensearch/certs/kirk.pem /etc/opensearch/certs/opensearch.pem
sudo mv /etc/opensearch/certs/root-ca.pem /etc/opensearch/certs/root-ca.pem # Este ya es el nombre correcto
sudo chown -R opensearch:opensearch /etc/opensearch/certs # Establecer los permisos correctos
sudo chmod -R 700 /etc/opensearch/certs # Proteger las claves privadas
Configuración de la seguridad integrada (Security Plugin)

Después de generar los certificados, es necesario inicializar el plugin de seguridad. Primero, reinicie OpenSearch.


sudo systemctl restart opensearch # Reiniciar OpenSearch
sudo systemctl status opensearch # Asegúrese de que el servicio esté en ejecución

Inicialice el plugin de seguridad. Esto cargará los roles y usuarios estándar.


# Ejecute este script. Solicitará contraseñas para los usuarios integrados (admin, kibanaserver, logstash, readall, snapshotrestore).
# Establezca una contraseña segura para el usuario 'admin'.
sudo /usr/share/opensearch/plugins/opensearch-security/tools/securityadmin.sh -cd /usr/share/opensearch/plugins/opensearch-security/securityconfig/ -icl -nhnv -cacert /etc/opensearch/certs/root-ca.pem -cert /etc/opensearch/certs/opensearch.pem -key /etc/opensearch/certs/opensearch.key

Después de esto, el script le pedirá que ingrese nuevas contraseñas para los usuarios del sistema. Asegúrese de establecer una contraseña segura para admin.

Verifique el acceso a OpenSearch usando curl (se le pedirá que ingrese un nombre de usuario/contraseña, use admin y la contraseña que estableció).


curl -k --user admin:SU_CONTRASEÑA_DE_ADMIN https://localhost:9200/_cat/health?v # Verificar el estado del clúster

Si ve una respuesta, significa que OpenSearch está en ejecución y funcionando con la seguridad habilitada.

2. Configuración de OpenSearch Dashboards

El archivo de configuración principal de Dashboards se encuentra en /etc/opensearch-dashboards/opensearch_dashboards.yml.


sudo vim /etc/opensearch-dashboards/opensearch_dashboards.yml # Abrir el archivo de configuración de Dashboards

Realice los siguientes cambios:


server.port: 5601
server.host: "localhost" # Dashboards solo estará disponible localmente, Caddy hará proxy de las solicitudes

# Configuración de OpenSearch
opensearch.hosts: ["https://localhost:9200"] # Conexión a OpenSearch a través de HTTPS
opensearch.ssl.verificationMode: certificate # Verificación de certificados de OpenSearch
opensearch.ssl.certificateAuthorities: ["/etc/opensearch/certs/root-ca.pem"] # Ruta a la CA raíz de OpenSearch

# Autenticación para Dashboards
opensearch.username: "kibanaserver" # Usamos el usuario del sistema para Dashboards
opensearch.password: "SU_CONTRASEÑA_KIBANASERVER" # Contraseña establecida durante la inicialización de securityadmin.sh

# Configuración de seguridad de Dashboards
opensearch_security.auth.type: "basic" # Usamos autenticación básica
opensearch_security.cookie.secure: true

Reemplace SU_CONTRASEÑA_KIBANASERVER con la contraseña que estableció para el usuario kibanaserver al ejecutar securityadmin.sh.

Guarde los cambios y reinicie OpenSearch Dashboards.


sudo systemctl restart opensearch-dashboards # Reiniciar OpenSearch Dashboards
sudo systemctl status opensearch-dashboards # Verificar el estado del servicio

3. Configuración de Caddy para HTTPS

Configuraremos Caddy como un proxy inverso para OpenSearch Dashboards, para proporcionar acceso HTTPS y gestión automática de certificados SSL.


sudo vim /etc/caddy/Caddyfile # Abrir el archivo de configuración de Caddy

Reemplace el contenido del archivo con lo siguiente (reemplace SU_DOMINIO con su dominio real):


SU_DOMINIO {
    # HTTPS automático con Let's Encrypt
    tls {
        dns cloudflare {ENV.CLOUDFLARE_API_TOKEN} # Ejemplo para Cloudflare DNS.
                                                # Si usa otro proveedor de DNS,
                                                # instale el plugin Caddy correspondiente.
                                                # Para la verificación HTTP-01 sin DNS - simplemente tls
    }

    # Compresión
    encode gzip zstd

    # Proxy inverso a OpenSearch Dashboards
    reverse_proxy localhost:5601 {
        # Añadir encabezados para un funcionamiento correcto
        header_up Host {http.request.host}
        header_up X-Real-IP {http.request.remote}
        header_up X-Forwarded-For {http.request.remote}
        header_up X-Forwarded-Proto {http.request.scheme}
    }

    # Protección contra clickjacking
    header {
        X-Frame-Options "DENY"
        X-Content-Type-Options "nosniff"
        X-XSS-Protection "1; mode=block"
    }

    # Registro (opcional)
    log {
        output file /var/log/caddy/access.log {
            roll_size 10MiB
            roll_keep 5
        }
    }
}

Importante: Para la emisión automática de certificados TLS a través de la verificación DNS-01 (recomendado si su servidor no es accesible externamente a través de los puertos 80/443 directamente o si desea certificados wildcard), debe instalar el plugin Caddy correspondiente (por ejemplo, para Cloudflare) y especificar el token de API en la variable de entorno. Si su servidor es accesible a través de los puertos 80/443, basta con tls sin configuraciones adicionales.

Para DNS-01 con Cloudflare, cree el archivo /etc/systemd/system/caddy.service.d/override.conf:


[Service]
Environment="CLOUDFLARE_API_TOKEN=SU_API_TOKEN_CLOUDFLARE"

Reemplace SU_API_TOKEN_CLOUDFLARE con su token real (se crea en su cuenta de Cloudflare). Luego:


sudo systemctl daemon-reload # Recargar systemd
sudo systemctl restart caddy # Reiniciar Caddy
sudo systemctl status caddy # Verificar el estado de Caddy

Si Caddy no puede obtener el certificado, revise los logs de Caddy: sudo journalctl -u caddy --no-pager.

4. Configuración del firewall (UFW) para OpenSearch

Por defecto, OpenSearch está disponible en el puerto 9200. Si no planea el acceso directo a OpenSearch desde el exterior (lo cual es altamente desaconsejable), asegúrese de que el puerto 9200 esté cerrado para conexiones externas. Si planea un clúster o acceso para Logstash/Filebeat desde otros servidores, permita el tráfico solo desde esas direcciones IP.


# Si OpenSearch solo debe ser accesible localmente:
sudo ufw deny 9200/tcp # Denegar el acceso externo a OpenSearch

# Si necesita permitir el acceso desde una dirección IP específica (por ejemplo, para otro nodo del clúster o Logstash)
# sudo ufw allow from 192.168.1.10 to any port 9200 # Permitir desde 192.168.1.10

sudo ufw reload # Recargar reglas de UFW
sudo ufw status # Verificar el estado de UFW

5. Verificación de la funcionalidad

Abra https://SU_DOMINIO en su navegador. Debería ver la página de inicio de sesión de OpenSearch Dashboards. Use el nombre de usuario admin y la contraseña que estableció previamente.

Después de iniciar sesión, puede ir a la sección "Stack Management" -> "Index Management" o "Dev Tools" para verificar el estado de OpenSearch.

En Dev Tools, ejecute la siguiente consulta:


GET /_cat/health?v

Debería recibir una respuesta que muestre el estado del clúster (por ejemplo, green o yellow).

Copias de seguridad y mantenimiento

Diagrama: Copias de seguridad y mantenimiento
Diagrama: Copias de seguridad y mantenimiento

Las copias de seguridad regulares son cruciales para cualquier sistema en producción. OpenSearch proporciona potentes herramientas para crear instantáneas (snapshots), y para los archivos de configuración se pueden utilizar utilidades estándar.

1. Qué respaldar

  • Datos de OpenSearch: Índices, documentos, metadatos. Esto es lo más importante. Utilice la función de instantáneas integrada de OpenSearch.
  • Archivos de configuración: /etc/opensearch/opensearch.yml, /etc/opensearch/certs/, /etc/opensearch-dashboards/opensearch_dashboards.yml, /etc/caddy/Caddyfile, así como los archivos de seguridad (roles.yml, roles_mapping.yml, etc., si los ha modificado).
  • Configuraciones del sistema: Por ejemplo, reglas de UFW, configuraciones de Fail2Ban.

2. Configuración del repositorio de instantáneas de OpenSearch

OpenSearch puede guardar instantáneas en varios repositorios, incluyendo el sistema de archivos, Amazon S3, Google Cloud Storage, Azure Blob Storage y otros. La opción más universal y fiable es un almacenamiento compatible con S3.

Primero, instale el plugin S3 para OpenSearch:


sudo /usr/share/opensearch/bin/opensearch-plugin install -b repository-s3 # Instalación del plugin S3
sudo systemctl restart opensearch # Reiniciar OpenSearch después de instalar el plugin

Luego, registre el repositorio en OpenSearch. Necesitará el ID de clave de acceso de AWS y la clave de acceso secreta (o equivalentes para un almacenamiento compatible con S3). Nunca los almacene directamente en los archivos de configuración de OpenSearch.

Cree un archivo para almacenar las credenciales de forma segura:


echo "s3.client.default.access_key: SU_AWS_ACCESS_KEY_ID" | sudo tee -a /etc/opensearch/opensearch.yml
echo "s3.client.default.secret_key: SU_AWS_SECRET_ACCESS_KEY" | sudo tee -a /etc/opensearch/opensearch.yml
sudo systemctl restart opensearch # Reiniciar OpenSearch para aplicar las credenciales

Ahora, registre el repositorio de instantáneas a través de la API de OpenSearch (en Dev Tools Dashboards o curl):


PUT /_snapshot/my_s3_repository
{
  "type": "s3",
  "settings": {
    "bucket": "your-s3-bucket-name",
    "region": "us-east-1",
    "base_path": "opensearch_backups/"
  }
}

Reemplace your-s3-bucket-name y us-east-1 con sus datos.

3. Script simple de copia de seguridad automática

Cree un script para la creación automática de instantáneas y la copia de seguridad de archivos de configuración.


sudo mkdir /opt/backup_scripts
sudo vim /opt/backup_scripts/opensearch_backup.sh

Contenido de opensearch_backup.sh:


#!/bin/bash

DATE=$(date +%Y%m%d%H%M%S)
SNAPSHOT_NAME="snapshot-$DATE"
REPOSITORY_NAME="my_s3_repository"
OPENSEARCH_HOST="https://localhost:9200"
OPENSEARCH_USER="admin"
OPENSEARCH_PASSWORD="SU_CONTRASEÑA_DE_ADMIN"
BACKUP_DIR="/var/backups/opensearch_configs"

# Creación de instantánea de OpenSearch
echo "Creating OpenSearch snapshot: $SNAPSHOT_NAME..."
curl -k -u "${OPENSEARCH_USER}:${OPENSEARCH_PASSWORD}" -XPUT "${OPENSEARCH_HOST}/_snapshot/${REPOSITORY_NAME}/${SNAPSHOT_NAME}?wait_for_completion=true" -H 'Content-Type: application/json' -d'
{
  "indices": "",
  "ignore_unavailable": true,
  "include_global_state": true
}'

if [ $? -eq 0 ]; then
  echo "Snapshot $SNAPSHOT_NAME created successfully."
else
  echo "Error creating snapshot $SNAPSHOT_NAME."
fi

# Eliminación de instantáneas antiguas (ejemplo: mantener las últimas 7 instantáneas)
# Obtener lista de todas las instantáneas
SNAPSHOTS=$(curl -k -u "${OPENSEARCH_USER}:${OPENSEARCH_PASSWORD}" "${OPENSEARCH_HOST}/_snapshot/${REPOSITORY_NAME}/_all" | jq -r '.snapshots[].snapshot')
NUM_SNAPSHOTS=$(echo "$SNAPSHOTS" | wc -l)
if [ "$NUM_SNAPSHOTS" -gt 7 ]; then
    SNAPSHOTS_TO_DELETE=$(echo "$SNAPSHOTS" | head -n $((NUM_SNAPSHOTS - 7)))
    for SNAPSHOT in $SNAPSHOTS_TO_DELETE; do
        echo "Deleting old snapshot: $SNAPSHOT"
        curl -k -u "${OPENSEARCH_USER}:${OPENSEARCH_PASSWORD}" -XDELETE "${OPENSEARCH_HOST}/_snapshot/${REPOSITORY_NAME}/${SNAPSHOT}"
    done
fi


# Copia de seguridad de archivos de configuración
echo "Backing up configuration files..."
sudo mkdir -p "$BACKUP_DIR"
sudo tar -czvf "$BACKUP_DIR/opensearch_configs-$DATE.tar.gz" \
  /etc/opensearch/opensearch.yml \
  /etc/opensearch/certs \
  /etc/opensearch-dashboards/opensearch_dashboards.yml \
  /etc/caddy/Caddyfile \
  /etc/fail2ban/jail.local \
  /etc/ssh/sshd_config \
  --absolute-names

echo "Configuration files backed up to $BACKUP_DIR/opensearch_configs-$DATE.tar.gz"

# Limpieza de configuraciones antiguas (ejemplo: mantener los últimos 7 archivos)
find "$BACKUP_DIR" -name "opensearch_configs-.tar.gz" -mtime +7 -delete

echo "Backup process finished."

Reemplace SU_CONTRASEÑA_DE_ADMIN con la contraseña actual. Instale jq para procesar JSON:


sudo apt install -y jq # Instalación de jq
sudo chmod +x /opt/backup_scripts/opensearch_backup.sh # Hacer el script ejecutable

4. Configuración de Cron para la automatización

Agregue el script a Cron para su ejecución diaria.


sudo crontab -e # Abrir crontab para root (o sudo -u adminuser crontab -e para su usuario)

Agregue la siguiente línea para ejecutar el script diariamente a las 03:00 de la madrugada:


0 3   * /opt/backup_scripts/opensearch_backup.sh >> /var/log/opensearch_backup.log 2>&1

Esto creará una instantánea de OpenSearch y hará una copia de seguridad de los archivos de configuración. Las instantáneas se almacenarán en su almacenamiento compatible con S3, y las configuraciones, localmente en el servidor, con limpieza automática de versiones antiguas.

5. Actualizaciones: Rolling vs. Ventana de mantenimiento

  • OpenSearch y OpenSearch Dashboards: Para un solo nodo, las actualizaciones deben realizarse dentro de una "ventana de mantenimiento" (maintenance window). Detenga Dashboards, luego OpenSearch, actualice los paquetes a través de apt upgrade, luego inicie OpenSearch, y solo después Dashboards. Para un clúster de varios nodos, se puede utilizar una "actualización continua" (rolling upgrade), pero es un procedimiento más complejo.
  • Paquetes del sistema: Ejecute regularmente sudo apt update && sudo apt upgrade -y.
  • Caddy: Se actualiza junto con los paquetes del sistema.

Siempre realice una copia de seguridad antes de cualquier actualización significativa.

Solución de problemas + Preguntas frecuentes

OpenSearch no se inicia o falla con un error OutOfMemoryError

Qué verificar: OpenSearch es muy exigente con la memoria. Asegúrese de que el tamaño del heap de la JVM esté configurado correctamente y de que tenga suficiente RAM física. Por defecto, OpenSearch asigna 1 GB de RAM, pero esto es insuficiente para la mayoría de las tareas.

Cómo solucionarlo: Edite el archivo /etc/opensearch/jvm.options. Busque las líneas -Xms1g y -Xmx1g (o similares) y aumente sus valores a la mitad de la RAM disponible, pero no más de 30 GB (por ejemplo, -Xms8g y -Xmx8g para un servidor con 16 GB de RAM). Después del cambio, reinicie OpenSearch: sudo systemctl restart opensearch.

OpenSearch Dashboards no puede conectarse a OpenSearch

Qué verificar:

  1. Asegúrese de que OpenSearch esté en ejecución y accesible en https://localhost:9200. Verifique con sudo systemctl status opensearch y curl -k https://localhost:9200/_cat/health?v.
  2. Verifique el archivo /etc/opensearch-dashboards/opensearch_dashboards.yml. Asegúrese de que opensearch.hosts apunte a la dirección correcta (https://localhost:9200) y que opensearch.username y opensearch.password correspondan al usuario kibanaserver y su contraseña.
  3. Verifique que los certificados de OpenSearch estén correctamente especificados en opensearch.ssl.certificateAuthorities.

Cómo solucionarlo: Corrija los errores en los archivos de configuración, reinicie los servicios: sudo systemctl restart opensearch, luego sudo systemctl restart opensearch-dashboards.

No se puede acceder a Dashboards a través del dominio (Caddy no funciona)

Qué verificar:

  1. Asegúrese de que su dominio apunte correctamente a la dirección IP de su VPS.
  2. Verifique que Caddy esté en ejecución: sudo systemctl status caddy.
  3. Revise los registros de Caddy: sudo journalctl -u caddy --no-pager en busca de errores relacionados con la obtención del certificado TLS o el proxy.
  4. Asegúrese de que los puertos 80 y 443 estén abiertos en UFW: sudo ufw status.
  5. Verifique que OpenSearch Dashboards sea accesible localmente: curl http://localhost:5601 (si usa server.host: "localhost").

Cómo solucionarlo: Corrija los registros DNS, los errores en /etc/caddy/Caddyfile, abra los puertos en UFW. Si utiliza la verificación DNS-01, verifique el token API de su proveedor de DNS.

¿Qué configuración mínima de VPS es adecuada?

Para una carga de prueba o muy pequeña, por ejemplo, para aprender OpenSearch o recopilar registros de una o dos aplicaciones inactivas, un VPS con 2 vCPU, 8 GB de RAM y 100 GB de SSD NVMe será mínimamente adecuado. Esto permitirá ejecutar OpenSearch y Dashboards, pero el rendimiento puede verse limitado con el aumento del volumen de datos o el número de solicitudes. Para cualquier entorno de producción, se recomienda utilizar configuraciones más potentes.

¿Qué elegir: VPS o dedicado para esta tarea?

La elección entre un VPS y un servidor dedicado depende de la escala de su tarea y su presupuesto. Para la mayoría de los desarrolladores individuales, equipos pequeños o fundadores solitarios de SaaS que desean centralizar el registro, un VPS será la opción óptima, ofreciendo un buen equilibrio entre costo y rendimiento. Sin embargo, si planea procesar terabytes de datos, requerir el máximo rendimiento o construir un clúster grande, un servidor dedicado proporcionará la potencia y el aislamiento de recursos necesarios.

¿Cómo configurar la recopilación de registros de otros servidores?

Qué verificar: OpenSearch por sí mismo no recopila registros. Para ello, necesitará agentes como Filebeat, Logstash o Fluentd. Estos agentes se instalan en los servidores de destino, se configuran para recopilar registros de archivos u otras fuentes y los envían a OpenSearch.

Cómo solucionarlo: Instale y configure Filebeat en sus servidores. Filebeat es muy ligero y eficiente. En su configuración, especifique su OpenSearch (o Caddy, si también actúa como proxy para Filebeat, aunque es preferible el acceso directo a OpenSearch con autenticación) como host de destino, así como el usuario y la contraseña para la autenticación. Asegúrese de que los puertos de OpenSearch estén abiertos para las direcciones IP de sus agentes en UFW.

¿Cómo actualizar OpenSearch y OpenSearch Dashboards?

Qué verificar: Antes de actualizar, siempre consulte la documentación oficial de OpenSearch para verificar la compatibilidad de versiones e instrucciones específicas de actualización. Siempre realice una copia de seguridad completa de los datos de OpenSearch y los archivos de configuración antes de comenzar el proceso.

Cómo solucionarlo: Para una instalación de un solo nodo:

  1. Detenga OpenSearch Dashboards: sudo systemctl stop opensearch-dashboards.
  2. Detenga OpenSearch: sudo systemctl stop opensearch.
  3. Actualice los paquetes: sudo apt update && sudo apt upgrade -y. Esto actualizará OpenSearch y Dashboards a la última versión en su repositorio.
  4. Inicie OpenSearch: sudo systemctl start opensearch.
  5. Inicie OpenSearch Dashboards: sudo systemctl start opensearch-dashboards.
Después de la actualización, puede ser necesario reiniciar securityadmin.sh si hubo cambios en el plugin de seguridad.

Conclusiones y próximos pasos

Diagrama: Conclusiones y próximos pasos
Diagrama: Conclusiones y próximos pasos

¡Felicidades! Ha desplegado y configurado con éxito un potente sistema centralizado de registro y análisis basado en OpenSearch y OpenSearch Dashboards en su VPS. Ahora tiene control total sobre sus registros y métricas, lo cual es la base para un monitoreo, depuración y toma de decisiones efectivos.

Aquí hay algunos pasos prácticos sobre cómo puede avanzar:

  • Configuración de la recopilación de registros: Instale y configure Filebeat (o Logstash) en sus servidores y aplicaciones para enviar registros a OpenSearch. Explore los módulos de Filebeat para el análisis automático de registros de servicios populares (Nginx, Apache, MySQL, etc.).
  • Creación de paneles y visualizaciones: Utilice OpenSearch Dashboards para crear paneles informativos que le ayuden a rastrear rápidamente métricas clave, detectar anomalías y analizar el comportamiento de usuarios o sistemas.
  • Configuración de alertas (Alerting): OpenSearch tiene un mecanismo de alertas incorporado. Configúrelo para recibir notificaciones sobre eventos críticos, errores o superación de umbrales de métricas por correo electrónico, Slack u otros canales.
  • Optimización del rendimiento y escalabilidad: A medida que crezca el volumen de datos, explore las opciones para optimizar índices (por ejemplo, Index Lifecycle Management), sharding y replicación para mejorar el rendimiento y la tolerancia a fallos. Si es necesario, considere agregar nodos OpenSearch adicionales para crear un clúster.

¿Te fue útil esta guía?

Tus comentarios nos ayudan a mejorar nuestras guías.

Compartir esta publicación:

Envía esta guía a alguien a quien pueda resultarle útil.

Telegram VKVK WhatsApp Facebook LinkedIn XX

Despliegue OpenSearch y OpenSearch Dashboards en VPS para logging y analítica centralizada
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.