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

Obtener VPS arrow_forward
eco Principiante Tutorial/Cómo hacer

Despliegue de Gray

calendar_month Aug 29, 2026 schedule 18 min de lectura visibility 15 vistas
Развёртывание Graylog на 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 Graylog en un VPS: recopilación y análisis centralizado de logs

TL;DR

En esta guía, configuraremos paso a paso Graylog 6.0 en un servidor privado virtual (VPS) para la recopilación, almacenamiento y análisis centralizado de logs de diversas fuentes. Aprenderá cómo instalar todos los componentes necesarios – MongoDB, OpenSearch y Java – así como configurar un acceso seguro a través de HTTPS con Caddy, asegurar las copias de seguridad y mantener el sistema actualizado, lo que permitirá monitorear eficazmente la infraestructura e identificar problemas rápidamente.

  • Instalación y configuración de Graylog 6.0, OpenSearch 2.13 y MongoDB 7.0 en Debian 12.
  • Asegurar el servidor usando claves SSH, firewall y Fail2ban.
  • Configuración automática de TLS/HTTPS para Graylog a través de Caddy.
  • Desarrollo de una estrategia de copia de seguridad para datos críticos de Graylog.
  • Recomendaciones para elegir la configuración óptima de VPS y escalar el sistema.
  • Comandos prácticos y ejemplos de archivos de configuración, listos para usar.

¿Qué configuramos y por qué?

Esquema: ¿Qué configuramos y por qué?
Esquema: ¿Qué configuramos y por qué?

En el mundo moderno, donde el número de servicios y sistemas crece constantemente, la recopilación y el análisis centralizado de logs se convierte en una tarea de importancia crítica. Los logs son la huella digital que dejan todas las aplicaciones y sistemas operativos. Contienen información sobre eventos, errores, advertencias y acciones de los usuarios, lo que los convierte en una fuente invaluable de datos para monitoreo, depuración, seguridad y auditoría.

Desplegaremos Graylog, una potente plataforma para la gestión de logs que permite recopilar, indexar y analizar datos de logs estructurados y no estructurados de diversas fuentes. Graylog ofrece una interfaz web intuitiva para la búsqueda, visualización y creación de alertas basadas en logs. Está construido sobre OpenSearch (anteriormente Elasticsearch) para el almacenamiento e indexación de datos, MongoDB para el almacenamiento de metadatos y configuración, y Java para el propio servidor Graylog.

Al finalizar esta guía, tendrá un sistema Graylog completamente funcional en su VPS, capaz de recibir logs de sus aplicaciones, servidores, dispositivos de red y otras fuentes. Podrá buscar en estos logs, crear dashboards para visualizar métricas clave y configurar alertas sobre eventos críticos. Esto simplificará significativamente el proceso de depuración, monitoreo del rendimiento y garantía de la seguridad de su infraestructura.

Existen diferentes enfoques para la gestión de logs. Se pueden utilizar servicios gestionados en la nube, como AWS CloudWatch, Google Cloud Logging, Logz.io, Datadog o Splunk Cloud. Estas soluciones ofrecen alta disponibilidad, escalabilidad y una administración mínima, pero a menudo conllevan altos costos mensuales, especialmente con grandes volúmenes de logs. Para proyectos con presupuesto limitado, startups o desarrolladores que necesitan control total sobre los datos y la infraestructura, el despliegue de una solución propia en un VPS es una opción más económica y flexible. Graylog autoalojado le permite controlar completamente sus datos, su almacenamiento y procesamiento, así como optimizar los costos, pagando solo por los recursos del VPS y no por el volumen de logs procesados. Esto es especialmente relevante para proyectos donde la confidencialidad de los datos es una prioridad o donde se requiere una integración específica no disponible en los servicios en la nube.

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

Esquema: ¿Qué configuración de VPS se necesita para esta tarea?
Esquema: ¿Qué configuración de VPS se necesita para esta tarea?

Los requisitos de VPS para Graylog pueden variar significativamente dependiendo del volumen de logs que planee recopilar, la velocidad de su llegada y la profundidad de almacenamiento. Graylog es un sistema bastante intensivo en recursos, especialmente su componente OpenSearch, que utiliza activamente el subsistema de disco y la memoria RAM.

Requisitos mínimos para proyectos pequeños (hasta 100-200 mensajes por segundo, almacenamiento de 7-14 días):

  • Procesador (CPU): 2-4 vCPU. Graylog y OpenSearch pueden ser bastante exigentes con la CPU durante la indexación y búsqueda.
  • Memoria RAM: Mínimo 8 GB. Se recomiendan 12-16 GB. OpenSearch es muy aficionado a la RAM para el almacenamiento en caché de índices y la ejecución de consultas. El servidor Graylog también requiere varios gigabytes.
  • Disco: 100-200 GB SSD. El SSD es críticamente importante para el rendimiento de OpenSearch. Cuanto más rápido sea el disco, más rápida será la indexación y la búsqueda. El volumen depende del tamaño de los logs y su período de retención. Para 200 mensajes/seg y 14 días de almacenamiento, 200 GB pueden ser suficientes, pero es mejor tener un margen.
  • Red: 1 Gbit/s. Para logs entrantes y acceso a la interfaz web.
  • Sistema operativo: Debian 12 (Bookworm) o Ubuntu 24.04 LTS.

Plan de VPS recomendado para cargas medias (hasta 500-1000 mensajes por segundo, almacenamiento de 30-60 días):

Para cargas más serias, donde planea recopilar logs de varios servidores o aplicaciones con alta intensidad, se requerirá un VPS más potente:

  • Procesador (CPU): 4-8 vCPU.
  • Memoria RAM: 16-32 GB.
  • Disco: 500 GB - 1 TB NVMe SSD. NVMe proporcionará un rendimiento significativamente mejor en comparación con un SSD normal.
  • Red: 1 Gbit/s o superior.

Para alquilar un VPS con las características indicadas, por ejemplo, con 4 vCPU, 16 GB de RAM y 500 GB NVMe SSD, se puede considerar un VPS con las características indicadas.

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

Si espera un volumen muy grande de logs (miles de mensajes por segundo), un almacenamiento prolongado (varios meses o años), o si Graylog será una parte críticamente importante de su infraestructura con altos requisitos de rendimiento y fiabilidad, probablemente necesitará un servidor dedicado. Un servidor dedicado ofrece recursos garantizados (sin "vecindad"), lo que elimina la influencia de otros usuarios en el rendimiento de su sistema. También permite utilizar subsistemas de disco más potentes (por ejemplo, arrays RAID de NVMe SSD) y más memoria RAM de la que suele estar disponible en un VPS. Esto es crítico para grandes clústeres de OpenSearch.

Ubicación: qué factores influyen

La elección de la ubicación del VPS es importante por dos aspectos principales:

  1. Latencia: Cuanto más cerca físicamente esté su VPS de las fuentes de logs, menor será la latencia en la transmisión de datos. Esto es importante para la recopilación rápida de logs y para reducir la probabilidad de pérdida durante las cargas pico. Si sus servidores principales están en Europa, elija un VPS en Europa.
  2. Legislación: En algunas jurisdicciones existen requisitos estrictos para el almacenamiento de logs y datos personales. Asegúrese de que la ubicación del VPS seleccionada cumpla con todas las leyes y regulaciones aplicables (por ejemplo, GDPR para la UE).

Preparación del servidor

Esquema: Preparación del servidor
Esquema: Preparación del servidor

Antes de instalar Graylog, es necesario realizar una configuración básica de seguridad e instalar las utilidades necesarias en su nuevo VPS. Utilizaremos Debian 12 (Bookworm) como sistema operativo.

1. Acceso SSH y actualización del sistema

Conéctese a su servidor como usuario root, usando SSH. Si aún no ha configurado las claves SSH, se recomienda encarecidamente hacerlo para mejorar la seguridad.


ssh root@ВАШ_IP_АДРЕС_VPS

Actualice la lista de paquetes y los paquetes instalados a las versiones más recientes:


sudo apt update && sudo apt upgrade -y

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

Trabajar como usuario root no es seguro. Cree un nuevo usuario y otórguele permisos sudo.


adduser graylogadmin # Creamos un nuevo usuario
usermod -aG sudo graylogadmin # Añadimos el usuario al grupo sudo

Cambie al nuevo usuario y salga de root:


su - graylogadmin
exit # Salir de la sesión root

Ahora puede conectarse al servidor como graylogadmin.


ssh graylogadmin@ВАШ_IP_АДРЕС_VPS

3. Configuración de claves SSH (recomendado)

Para mejorar la seguridad, se recomienda deshabilitar el inicio de sesión con contraseña para SSH y usar solo claves SSH. Primero, copie su clave SSH pública al servidor (si aún no lo ha hecho):


ssh-copy-id graylogadmin@ВАШ_IP_АДРЕС_VPS

Luego, edite el archivo de configuración del servidor SSH:


sudo nano /etc/ssh/sshd_config

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


# ...
PasswordAuthentication no
PermitRootLogin no
# ...

Reinicie el servidor SSH para aplicar los cambios:


sudo systemctl restart sshd

Ahora podrá iniciar sesión solo con una clave SSH, y el usuario root no podrá iniciar sesión directamente.

4. Configuración del firewall (UFW)

Uncomplicated Firewall (UFW) es una utilidad sencilla para gestionar iptables. Instálelo y configúrelo:


sudo apt install ufw -y # Instalamos UFW
sudo ufw allow ssh # Permitimos conexiones SSH (puerto 22)
sudo ufw allow http # Permitimos HTTP (puerto 80)
sudo ufw allow https # Permitimos HTTPS (puerto 443)
sudo ufw enable # Habilitamos el firewall (confirme 'y')
sudo ufw status # Verificamos el estado del firewall

Más tarde, añadiremos reglas para los puertos de Graylog, OpenSearch y MongoDB.

5. Instalación de Fail2ban

Fail2ban ayuda a proteger contra ataques de fuerza bruta bloqueando las direcciones IP desde las que se producen múltiples intentos fallidos de inicio de sesión.


sudo apt install fail2ban -y # Instalamos Fail2ban
sudo systemctl enable fail2ban # Habilitamos el inicio automático de Fail2ban
sudo systemctl start fail2ban # Iniciamos Fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # Copiamos la configuración para cambios locales

Abra /etc/fail2ban/jail.local y asegúrese de que la sección [sshd] esté activa (enabled = true).

Instalación de software — paso a paso

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

Ahora que el servidor está preparado, podemos proceder con la instalación de los componentes necesarios: Java, MongoDB, OpenSearch y Graylog.

1. Instalación de Java (OpenJDK 21)

Graylog, OpenSearch y otros componentes requieren Java. Instalaremos OpenJDK 21, la versión LTS actual para 2026.


sudo apt update # Actualizamos la lista de paquetes
sudo apt install openjdk-21-jdk -y # Instalamos OpenJDK 21
java -version # Verificamos la versión de Java

La salida debería ser similar a esta:


openjdk version "21.0.3" 2024-04-16
OpenJDK Runtime Environment (build 21.0.3+9-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 21.0.3+9-Debian-1deb12u1, mixed mode, sharing)

2. Instalación de MongoDB 7.0

Graylog utiliza MongoDB para almacenar metadatos, configuración y datos de usuario. Instalaremos la versión actual de MongoDB 7.0.


sudo apt install gnupg curl -y # Instalamos las utilidades necesarias

# Importamos la clave pública GPG de MongoDB
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
   sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg

# Creamos la lista de repositorios de MongoDB
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

sudo apt update # Actualizamos la lista de paquetes
sudo apt install -y mongodb-org # Instalamos MongoDB 7.0

Iniciamos y habilitamos el inicio automático de MongoDB:


sudo systemctl enable mongod.service # Habilitamos el inicio automático del servicio MongoDB
sudo systemctl start mongod.service # Iniciamos el servicio MongoDB
sudo systemctl status mongod.service # Verificamos el estado del servicio

Asegúrese de que MongoDB esté funcionando (Active: active (running)).

3. Instalación de OpenSearch 2.13

OpenSearch (un fork de Elasticsearch) es utilizado por Graylog para almacenar e indexar todos los logs. Instalaremos OpenSearch versión 2.13.


# Importamos la clave GPG de OpenSearch
curl -fsSL https://opensearch.org/keys/opensearch-2-public-key.gpg | \
   sudo gpg --dearmor -o /usr/share/keyrings/opensearch-keyring.gpg

# Añadimos el repositorio de OpenSearch
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

sudo apt update # Actualizamos la lista de paquetes
sudo apt install opensearch -y # Instalamos OpenSearch 2.13

Configuramos OpenSearch para usarlo con Graylog. Abra el archivo de configuración:


sudo nano /etc/opensearch/opensearch.yml

Añada o modifique las siguientes líneas (asegúrese de que network.host esté configurado en localhost por seguridad):


# ...
cluster.name: graylog-cluster
node.name: ${HOSTNAME}
path.data: /var/lib/opensearch
path.logs: /var/log/opensearch
network.host: localhost # Importante para la seguridad - OpenSearch solo es accesible localmente
http.port: 9200
discovery.type: single-node # Para una instalación de nodo único
# ...

Guarde los cambios (Ctrl+O, Enter, Ctrl+X). Ahora iniciamos y habilitamos OpenSearch:


sudo systemctl daemon-reload
sudo systemctl enable opensearch.service
sudo systemctl start opensearch.service
sudo systemctl status opensearch.service

Espere a que OpenSearch se inicie completamente (esto puede tardar varios minutos). Puede verificar su funcionamiento de la siguiente manera:


curl -XGET 'http://localhost:9200/?pretty'

Debería ver una respuesta JSON con información sobre el clúster de OpenSearch.

4. Instalación de Graylog 6.0

Finalmente, instalamos el propio servidor Graylog.


# Importamos la clave GPG de Graylog
curl -fsSL https://packages.graylog2.org/repo/debian/graylog.key | sudo gpg --dearmor -o /usr/share/keyrings/graylog-keyring.gpg

# Añadimos el repositorio de Graylog
echo "deb [signed-by=/usr/share/keyrings/graylog-keyring.gpg] https://packages.graylog2.org/repo/debian/stable/6.0/ /" | sudo tee /etc/apt/sources.list.d/graylog.list

sudo apt update # Actualizamos la lista de paquetes
sudo apt install graylog-server -y # Instalamos Graylog 6.0

Graylog está instalado. Ahora pasamos a su configuración.

Configuración

Esquema: Configuración
Esquema: Configuración

Después de instalar todos los componentes, es necesario configurar Graylog correctamente para que pueda interactuar con MongoDB, OpenSearch y ser accesible a través de la interfaz web.

1. Configuración principal de Graylog

El archivo de configuración principal de Graylog se encuentra en /etc/graylog/server/server.conf. Ábralo para editar:


sudo nano /etc/graylog/server/server.conf

En este archivo, debe cambiar varios parámetros críticos:

  • password_secret: Genera una clave secreta única. Esto es muy importante para la seguridad. Use el comando pwgen -N 96 -s 0 para crear una clave aleatoria larga.
  • root_password_sha2: Hash SHA-256 de la contraseña para el usuario admin en la interfaz web de Graylog. Genérelo con el comando echo -n "su_contraseña" | sha256sum. Reemplace su_contraseña con la contraseña deseada para el administrador.
  • root_email: Correo electrónico del administrador (opcional, pero útil).
  • root_timezone: Zona horaria para el usuario admin. Por ejemplo, Europe/Moscow.
  • http_bind_address: Dirección IP en la que Graylog escuchará las conexiones entrantes para la interfaz web. Establézcala en 127.0.0.1:9000, ya que usaremos Caddy para proxyar las solicitudes y añadir HTTPS.
  • http_external_uri: URL completa por la que Graylog será accesible desde el exterior. Este será su dominio con HTTPS, por ejemplo, https://graylog.example.com/.
  • opensearch_hosts: Lista de hosts de OpenSearch. Como está instalado localmente, especifique http://localhost:9200.
  • mongodb_uri: URI para conectarse a MongoDB. Por defecto mongodb://localhost:27017/graylog.

Ejemplo de cambios en server.conf:


# ...
password_secret = [SECRETO_GENERADO_DE_96_CARACTERES]
root_password_sha2 = [HASH_DE_SU_CONTRASEÑA_PARA_ADMIN]
root_email = "[email protected]"
root_timezone = "Europe/Moscow"
# ...
http_bind_address = 127.0.0.1:9000 # Graylog escuchará localmente
http_publish_uri = http://127.0.0.1:9000/
http_external_uri = https://graylog.example.com/ # SU DOMINIO CON HTTPS
# ...
opensearch_hosts = http://localhost:9200
# ...
# mongodb_uri = mongodb://localhost:27017/graylog # Normalmente el valor por defecto es adecuado
# ...

Después de realizar los cambios, guarde el archivo. Inicie y habilite Graylog:


sudo systemctl daemon-reload
sudo systemctl enable graylog-server.service
sudo systemctl start graylog-server.service
sudo systemctl status graylog-server.service

Espere a que Graylog se inicie. Esto puede tardar varios minutos.

2. Configuración de TLS/HTTPS con Caddy

Para un acceso seguro a la interfaz web de Graylog, utilizaremos Caddy, un servidor web moderno con HTTPS automático. Caddy obtiene y renueva automáticamente los certificados SSL de Let's Encrypt.

Instalación de Caddy:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy -y
Configuración de Caddy:

Cree o edite el archivo Caddyfile:


sudo nano /etc/caddy/Caddyfile

Añada la siguiente configuración (reemplace graylog.example.com con su dominio):


graylog.example.com {
    reverse_proxy 127.0.0.1:9000
    # Configuración para WebSocket (si es necesario, Graylog usa WebSockets)
    header_up Host {host}
    header_up X-Real-IP {remote_host}
    header_up X-Forwarded-Proto {scheme}
    header_up X-Forwarded-For {remote_host}
}

Guarde el archivo. Asegúrese de que su dominio graylog.example.com apunte a la dirección IP de su VPS en los registros DNS (registro A).

Reinicie Caddy para aplicar los cambios:


sudo systemctl enable caddy
sudo systemctl restart caddy
sudo systemctl status caddy

Caddy obtendrá automáticamente un certificado SSL. Si surgen problemas, revise los logs de Caddy (sudo journalctl -u caddy --no-pager) y asegúrese de que su dominio esté configurado correctamente en DNS y sea accesible desde internet.

3. Apertura de puertos en el firewall

Ahora que Graylog y Caddy están configurados, es necesario abrir los puertos correspondientes en UFW.

  • 9000/tcp: Para acceso directo a Graylog (pero usamos Caddy, por lo que este puerto puede permanecer cerrado desde el exterior).
  • 80/tcp y 443/tcp: Para Caddy (HTTP y HTTPS).
  • 12201/udp y 12201/tcp: Puerto estándar para Graylog GELF (Graylog Extended Log Format) UDP/TCP.
  • 514/udp y 514/tcp: Para Syslog UDP/TCP.
  • 5044/tcp: Para Beats (Filebeat, Metricbeat, etc.).

Añada las reglas necesarias en UFW. Para empezar, abriremos los puertos para Caddy y GELF:


sudo ufw allow 80/tcp # Para Caddy (http)
sudo ufw allow 443/tcp # Para Caddy (https)
sudo ufw allow 12201/udp # Para entrada GELF UDP
sudo ufw allow 12201/tcp # Para entrada GELF TCP
sudo ufw reload # Recargamos las reglas de UFW
sudo ufw status # Verificamos el estado de UFW

Añada otros puertos según sea necesario, dependiendo de las fuentes de logs que vaya a utilizar.

4. Verificación del funcionamiento

Abra su navegador y vaya a https://graylog.example.com/ (reemplace con su dominio). Debería ver la página de inicio de sesión de Graylog. Inicie sesión con el nombre de usuario admin y la contraseña que estableció usando root_password_sha2.

Después de iniciar sesión, verifique en la sección "System" -> "Nodes" que su servidor Graylog esté iniciado y funcionando correctamente. También asegúrese de que en la sección "System" -> "Inputs" pueda crear una nueva entrada GELF UDP y que se inicie correctamente.

Copias de seguridad y mantenimiento

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

La copia de seguridad es una parte críticamente importante de cualquier sistema de producción. Graylog almacena sus datos en MongoDB (configuración, metadatos) y OpenSearch (los propios logs). Es importante realizar copias de seguridad de ambos componentes regularmente.

1. Qué respaldar

  • Base de datos MongoDB: Contiene toda la configuración de Graylog, flujos (streams), paneles (dashboards), alertas, usuarios y metadatos. Este es el componente más importante para restaurar Graylog a un estado operativo.
  • Archivos de configuración de Graylog: /etc/graylog/server/server.conf.
  • Datos de OpenSearch: Los propios logs. En la mayoría de los casos, estos datos pueden perderse sin un daño crítico para la operatividad de Graylog (simplemente se perderá el historial de logs), pero para auditorías o análisis profundos pueden ser irremplazables. Las copias de seguridad de OpenSearch pueden ser muy voluminosas.

2. Copia de seguridad de MongoDB

MongoDB se puede respaldar utilizando la utilidad mongodump. Se recomienda realizar la copia de seguridad con el servidor Graylog apagado para garantizar la consistencia de los datos, pero para sistemas pequeños se puede hacer una copia de seguridad "en caliente".


# Creamos el directorio para las copias de seguridad
sudo mkdir -p /var/backups/mongodb

# Realizamos la copia de seguridad de la base de datos Graylog
sudo mongodump --db graylog --out /var/backups/mongodb/$(date +%Y%m%d%H%M%S)

# O copia de seguridad de todas las bases (si Graylog no es la única)
# sudo mongodump --out /var/backups/mongodb/$(date +%Y%m%d%H%M%S)

3. Copia de seguridad de los archivos de configuración

Simplemente copie el archivo de configuración de Graylog:


sudo cp /etc/graylog/server/server.conf /var/backups/graylog_server_conf_$(date +%Y%m%d%H%M%S).conf

4. Copia de seguridad de los datos de OpenSearch

La copia de seguridad de OpenSearch se realiza mejor utilizando la Snapshot API. Para ello, es necesario registrar un repositorio de instantáneas (por ejemplo, en NFS, S3 o localmente) y luego crear las instantáneas. Repositorio local:


# Creamos el directorio para las instantáneas de OpenSearch
sudo mkdir -p /var/backups/opensearch_snapshots
sudo chown opensearch:opensearch /var/backups/opensearch_snapshots

# Registramos el repositorio (se ejecuta a través de la API de OpenSearch)
curl -X PUT "http://localhost:9200/_snapshot/my_backup_repository" -H 'Content-Type: application/json' -d'
{
  "type": "fs",
  "settings": {
    "location": "/var/backups/opensearch_snapshots"
  }
}'

# Creamos una instantánea de todos los índices
curl -X PUT "http://localhost:9200/_snapshot/my_backup_repository/snapshot_$(date +%Y%m%d%H%M%S)?wait_for_completion=true"

Para la automatización, se puede usar un script y cron.

5. Script simple de copia de seguridad automática (cron + rsync)

Cree el script /usr/local/bin/graylog_backup.sh:


#!/bin/bash

BACKUP_DIR="/var/backups/graylog"
TIMESTAMP=$(date +%Y%m%d%H%M%S)
MONGODB_BACKUP_PATH="$BACKUP_DIR/mongodb/$TIMESTAMP"
CONFIG_BACKUP_PATH="$BACKUP_DIR/configs"
OPENSEARCH_SNAPSHOT_REPO="my_backup_repository"

mkdir -p "$MONGODB_BACKUP_PATH"
mkdir -p "$CONFIG_BACKUP_PATH"

echo "Iniciando copia de seguridad de Graylog en $TIMESTAMP..."

# Copia de seguridad de MongoDB
echo "  Realizando copia de seguridad de MongoDB..."
sudo mongodump --db graylog --out "$MONGODB_BACKUP_PATH"
if [ $? -eq 0 ]; then
    echo "  Copia de seguridad de MongoDB exitosa."
else
    echo "  Copia de seguridad de MongoDB FALLIDA."
fi

# Copia de seguridad de la configuración de Graylog
echo "  Realizando copia de seguridad de Graylog server.conf..."
sudo cp /etc/graylog/server/server.conf "$CONFIG_BACKUP_PATH/server.conf.$TIMESTAMP"
if [ $? -eq 0 ]; then
    echo "  Copia de seguridad de la configuración de Graylog exitosa."
else
    echo "  Copia de seguridad de la configuración de Graylog FALLIDA."
fi

# Crear instantánea de OpenSearch
echo "  Creando instantánea de OpenSearch..."
curl -X PUT "http://localhost:9200/_snapshot/$OPENSEARCH_SNAPSHOT_REPO/snapshot_$TIMESTAMP?wait_for_completion=true"
if [ $? -eq 0 ]; then
    echo "  Instantánea de OpenSearch exitosa."
else
    echo "  Instantánea de OpenSearch FALLIDA."
fi

echo "Copia de seguridad de Graylog finalizada."

# Eliminación de copias de seguridad antiguas (por ejemplo, de más de 7 días)
find "$BACKUP_DIR/mongodb/" -type d -mtime +7 -exec rm -rf {} +
find "$CONFIG_BACKUP_PATH/" -type f -mtime +7 -name "server.conf." -delete
# Para las instantáneas de OpenSearch, se debe usar la API de OpenSearch para eliminar instantáneas antiguas
# curl -X DELETE "http://localhost:9200/_snapshot/$OPENSEARCH_SNAPSHOT_REPO/snapshot_TO_DELETE"

Haga el script ejecutable:


sudo chmod +x /usr/local/bin/graylog_backup.sh

Agregue una tarea a cron para su ejecución diaria (por ejemplo, a las 3:00 de la madrugada):


sudo crontab -e

Agregue la línea:


0 3    /usr/local/bin/graylog_backup.sh >> /var/log/graylog_backup.log 2>&1

6. Dónde almacenar las copias de seguridad

Almacenar las copias de seguridad en el mismo servidor que el sistema de producción es altamente desaconsejable. En caso de un fallo de hardware del VPS o de compromiso del servidor, perderá tanto los datos como las copias de seguridad. Opciones recomendadas:

  • Almacenamiento externo compatible con S3: Servicios en la nube como AWS S3, Backblaze B2, DigitalOcean Spaces. Se puede usar s3cmd o rclone para la sincronización automática de las copias de seguridad locales con la nube.
  • VPS o NAS separado: Si tiene otro servidor, puede configurar rsync a través de SSH para copiar las copias de seguridad.
  • BorgBackup o Restic: Estas utilidades permiten crear copias de seguridad incrementales, deduplicadas y cifradas que se pueden enviar a almacenamientos remotos.

7. Actualizaciones: rolling vs ventana de mantenimiento

La actualización de Graylog y sus componentes (OpenSearch, MongoDB, Java) debe realizarse con precaución. Siempre lea la documentación oficial de actualización para cada versión.

  • Graylog: Generalmente requiere la detención del servicio. Se recomienda planificar una "ventana de mantenimiento" para las actualizaciones.
  • OpenSearch: Para una instalación de un solo nodo, también se requiere la detención del servicio. En configuraciones de clúster, son posibles las actualizaciones "rolling".
  • MongoDB: Las actualizaciones de versiones menores generalmente no requieren largos tiempos de inactividad, pero para versiones mayores también puede ser necesaria una ventana de mantenimiento.
  • Java: Generalmente se puede actualizar sin detener otros servicios, pero reiniciar Graylog y OpenSearch después de una actualización de Java será una buena práctica.

¡Siempre realice copias de seguridad completas antes de cualquier actualización importante!

Solución de problemas + Preguntas frecuentes

Graylog no se inicia o la interfaz web no está disponible. ¿Qué hacer?

En primer lugar, verifique los logs de Graylog: sudo journalctl -u graylog-server --no-pager. Las causas más comunes son: password_secret o root_password_sha2 configurados incorrectamente, problemas de conexión a MongoDB u OpenSearch, http_bind_address o http_external_uri especificados incorrectamente. Asegúrese de que MongoDB y OpenSearch estén en ejecución y accesibles (sudo systemctl status mongod, sudo systemctl status opensearch, curl http://localhost:9200). Verifique el firewall UFW, asegúrese de que Caddy (si se usa) esté funcionando y proxying las solicitudes correctamente.

OpenSearch no se inicia o Graylog no lo ve.

Verifique los logs de OpenSearch: sudo journalctl -u opensearch --no-pager. Asegúrese de que se haya asignado suficiente memoria RAM (JVM heap size) – por defecto, OpenSearch intenta usar hasta la mitad de la RAM disponible. Si la RAM es insuficiente, esto puede provocar fallos. Verifique el archivo /etc/opensearch/opensearch.yml para la corrección de network.host (debe ser localhost para Graylog en el mismo servidor) y cluster.name. Asegúrese de que el puerto 9200 esté disponible localmente.

No veo los logs en Graylog después de configurar un Input.

Verifique que el Input en Graylog esté activo y en ejecución ("System" -> "Inputs"). Asegúrese de que el puerto del Input (por ejemplo, 12201 para GELF) esté abierto en el firewall UFW de su VPS. Verifique que la fuente de logs (por ejemplo, Filebeat, su servicio) esté configurada para enviar logs a la dirección IP correcta de su VPS y al puerto de Beats Input (por defecto 5044/tcp). Use tcpdump o netcat en el VPS para verificar si los paquetes llegan al puerto deseado (por ejemplo, sudo tcpdump -i any port 12201).

¿Cómo actualizar Graylog a una nueva versión?

Siempre lea la guía oficial de actualización de Graylog para su versión específica. El proceso general incluye detener el servidor Graylog, actualizar el paquete Graylog a través de apt upgrade graylog-server, verificar y posiblemente actualizar los archivos de configuración, y luego iniciar Graylog. Antes de actualizar, siempre realice una copia de seguridad completa de MongoDB y la configuración de Graylog.

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

Para cargas de trabajo pequeñas (hasta 100-200 mensajes por segundo), se requerirá un VPS mínimo con 2-4 vCPU, 8-12 GB de RAM y un disco SSD de 100-200 GB. Sin embargo, para un funcionamiento cómodo y la posibilidad de un pequeño crecimiento, se recomienda optar por 4 vCPU, 16 GB de RAM y 200-500 GB de SSD NVMe. El disco debe ser rápido, ya que OpenSearch es muy sensible al rendimiento de E/S.

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

La elección entre VPS y dedicado depende del volumen de logs y la criticidad del sistema. Para la mayoría de las startups, desarrolladores y equipos pequeños, un VPS será la solución óptima y económica. Proporciona suficiente rendimiento y flexibilidad. Un servidor dedicado se vuelve necesario para cargas muy altas (miles de mensajes por segundo), almacenamiento a largo plazo de grandes volúmenes de datos (terabytes de logs), o cuando se requiere el máximo rendimiento y aislamiento de recursos. Los servidores dedicados ofrecen un rendimiento estable sin "vecinos ruidosos" y permiten el uso de subsistemas de disco más potentes.

¿Cómo configurar Graylog para recopilar logs de servidores remotos?

Para recopilar logs de servidores remotos, utilice agentes como Filebeat, Fluentd o rsyslog. Filebeat es la opción más popular para Graylog, ya que es ligero y fácil de configurar. En Graylog, debe crear un Input correspondiente (por ejemplo, "Beats Input" para Filebeat). En el servidor remoto, instale Filebeat, configúrelo para leer los logs deseados y enviarlos a la dirección IP de su VPS Graylog y al puerto de Beats Input (por defecto 5044/tcp). No olvide abrir este puerto en UFW en el VPS de Graylog.

Conclusiones y próximos pasos

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

Hemos desplegado Graylog 6.0 con éxito en su VPS, creando una plataforma potente y flexible para la recopilación y el análisis centralizado de logs. Ha obtenido un sistema en funcionamiento con MongoDB para la configuración, OpenSearch para el almacenamiento de datos y Caddy para un acceso seguro por HTTPS. Este es un paso significativo para aumentar la transparencia de su infraestructura y la respuesta operativa a incidentes.

Los próximos pasos pueden incluir la integración de Graylog con su infraestructura existente (configuración de Filebeat en todos sus servidores), la creación de paneles (dashboards) para visualizar métricas clave y la configuración de alertas complejas para eventos críticos. Para escalar el sistema, considere la posibilidad de dedicar OpenSearch a un servidor separado o configurar un clúster de OpenSearch para mejorar el rendimiento y la tolerancia a fallos a medida que aumentan los volúmenes de logs.

¿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 de Graylog en VPS: recopilación y análisis centralizado de logs
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.