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

Obtener VPS arrow_forward
eco Principiante Tutorial/Cómo hacer

Despliegue de Sig

calendar_month Jun 24, 2026 schedule 19 min de lectura visibility 15 vistas
Развёртывание SigNoz на VPS: комплексный мониторинг приложений (logs, metrics, traces)
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 SigNoz en un VPS: monitoreo integral de aplicaciones (logs, metrics, traces)

TL;DR

En esta guía, configuraremos paso a paso SigNoz, una potente plataforma de código abierto para la recopilación y el análisis de logs, métricas y trazas de aplicaciones, en su propio VPS o servidor dedicado. Aprenderá a instalar Docker, desplegar SigNoz con Docker Compose, asegurar la conexión a través de HTTPS con Caddy y configurar mecanismos básicos de copia de seguridad para obtener un control total sobre la observabilidad de su infraestructura.

  • Instalación de SigNoz usando Docker Compose en Ubuntu 24.04 LTS.
  • Configuración de acceso seguro a SigNoz a través de HTTPS con Caddy.
  • Ejemplos de envío de telemetría desde aplicaciones a SigNoz a través de OpenTelemetry.
  • Garantía de seguridad básica del servidor y resiliencia de los datos.
  • Recomendaciones para elegir la configuración óptima de VPS para diferentes cargas.

¿Qué configuramos y por qué?

Схема: Что мы настраиваем и зачем
Diagrama: Qué configuramos y por qué

En el mundo moderno del desarrollo y la operación de software, es fundamental tener una comprensión completa de lo que sucede con sus aplicaciones e infraestructura. Para esto existen los sistemas de monitoreo y recopilación de telemetría. Desplegaremos SigNoz, una solución integral de código abierto que combina la funcionalidad para la recopilación y el análisis de logs, métricas y trazas.

Los logs proporcionan información detallada sobre los eventos dentro de una aplicación, ayudando a depurar errores y comprender la secuencia de acciones. Las métricas son datos numéricos que muestran el rendimiento y el estado del sistema (por ejemplo, uso de CPU, uso de memoria, número de solicitudes por segundo). Las trazas (o distributed tracing) permiten rastrear el camino de una solicitud a través de múltiples microservicios, identificando cuellos de botella y latencias en arquitecturas complejas.

En resumen, al desplegar SigNoz, obtendrá un panel de control unificado donde podrá:

  • Recopilar y almacenar centralizadamente los logs de todas sus aplicaciones.
  • Visualizar métricas de rendimiento y crear dashboards personalizados.
  • Rastrear solicitudes a lo largo de su camino a través de sistemas distribuidos, identificando latencias.
  • Configurar alertas basadas en umbrales de métricas o patrones en los logs.
  • Diagnosticar problemas rápidamente y reducir el tiempo de inactividad.

Alternativas y por qué autoalojado en un VPS

Existen muchas soluciones de monitoreo. Entre los servicios comerciales en la nube populares se encuentran Datadog, New Relic, Dynatrace. Ofrecen una rica funcionalidad, pero su costo puede ser muy alto, especialmente para startups o proyectos con presupuestos limitados. Además, usted depende completamente de su infraestructura y política de precios.

Entre las soluciones de código abierto, son ampliamente conocidas ELK Stack (Elasticsearch, Logstash, Kibana) para logs, así como Prometheus y Grafana para métricas. Estos sistemas son potentes, pero requieren una configuración e integración más complejas, ya que inicialmente no son una solución "lista para usar" unificada para los tres pilares de la observabilidad. SigNoz, por su parte, busca proporcionar una experiencia integrada "out-of-the-box" para logs, métricas y trazas, utilizando estándares populares como OpenTelemetry.

El despliegue de SigNoz en su propio VPS o servidor dedicado le brinda control total sobre los datos, la seguridad y los costos. Solo paga por los recursos del servidor, evitando tarifas costosas por el volumen de datos. Es una opción ideal para desarrolladores, startups y empresas que necesitan un sistema de monitoreo potente pero económico sin depender de un proveedor de nube específico.

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

Схема: Какой VPS-конфиг нужен под эту задачу
Diagrama: Qué configuración de VPS se necesita para esta tarea

La elección de un VPS o servidor dedicado adecuado para SigNoz depende del volumen de datos que planee recopilar y del número de aplicaciones/servicios que enviarán telemetría. SigNoz, como cualquier sistema de observabilidad, puede ser bastante exigente en cuanto a recursos, especialmente en el subsistema de disco y la memoria RAM.

Requisitos mínimos

Para proyectos pequeños, donde monitorea de 1 a 5 aplicaciones con un volumen medio de logs y métricas (hasta varias decenas de GB de datos al mes), los requisitos mínimos serán los siguientes:

  • CPU: 2 núcleos (Intel Xeon o AMD EPYC modernos).
  • RAM: 4-8 GB. SigNoz utiliza ClickHouse para el almacenamiento de datos, que requiere mucha memoria RAM.
  • Disco: 100-200 GB NVMe SSD. La velocidad del disco es fundamental para la escritura y las consultas de datos de telemetría. Los SSD SATA normales pueden ser demasiado lentos para cargas intensivas.
  • Red: 100 Mbps - 1 Gbps. Para la recopilación de datos y el acceso a la UI.

Plan de VPS recomendado para la mayoría de las tareas

Para la mayoría de los proyectos medianos, que incluyen hasta 10-20 aplicaciones, recopilación de datos de varios servidores y almacenamiento de historial durante 1-3 meses, se recomiendan las siguientes características:

  • CPU: 4 núcleos.
  • RAM: 16-32 GB. Esto permitirá a ClickHouse almacenar datos en caché de manera eficiente y procesar consultas complejas.
  • Disco: 400-800 GB NVMe SSD. Mayor volumen para almacenamiento a largo plazo y alta velocidad para el rendimiento.
  • Red: 1 Gbps.

Un VPS con las características indicadas garantizará un funcionamiento cómodo con SigNoz y un margen para el crecimiento. Asegúrese de que el proveedor elegido ofrezca NVMe SSD, ya que esto afecta significativamente el rendimiento del sistema de monitoreo.

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

Un servidor dedicado se vuelve necesario si planea monitorear decenas o cientos de servicios que generan enormes volúmenes de datos (terabytes al mes), o si necesita un almacenamiento de historial muy prolongado (más de 3-6 meses). En este caso, necesitará:

  • CPU: 8+ núcleos.
  • RAM: 64 GB o más.
  • Disco: Varios terabytes de NVMe SSD en un array RAID para redundancia y rendimiento, o soluciones híbridas con SSD rápidos para datos "calientes" y HDD para datos "fríos".
  • Red: 10 Gbps.

Para estas tareas, puede considerar un servidor dedicado adecuado que proporcionará el máximo rendimiento y flexibilidad.

Ubicación: qué factores influyen

La elección de la ubicación del servidor para SigNoz es importante por varias razones:

  • Latencia: Cuanto más cerca esté el servidor SigNoz de sus aplicaciones, menor será la latencia al enviar telemetría. Esto es especialmente importante para las trazas y métricas, donde la puntualidad de los datos es crítica.
  • Legislación: Si trabaja con datos sensibles, asegúrese de que la ubicación del servidor cumpla con los requisitos de la legislación local sobre almacenamiento de datos.
  • Costo: Los precios de los VPS pueden variar según la región.

Generalmente se recomienda ubicar SigNoz en la misma región geográfica que la mayoría de sus servicios monitoreados.

Preparación del servidor

Схема: Подготовка сервера
Diagrama: Preparación del servidor

Antes de instalar SigNoz, es necesario realizar una preparación básica de su VPS. Como sistema operativo, utilizaremos Ubuntu 24.04 LTS (versión actual para 2026), ya que ofrece una excelente estabilidad y un amplio soporte comunitario. Se asume que tiene acceso al servidor por SSH con derechos de root o un usuario con sudo.

1. Actualización del sistema

Siempre comience actualizando la lista de paquetes y actualizándolos a las últimas versiones estables. Esto garantizará la disponibilidad de parches de seguridad actualizados y compatibilidad.


sudo apt update -y          # Обновление списка пакетов
sudo apt upgrade -y         # Обновление установленных пакетов
sudo apt autoremove -y      # Удаление ненужных зависимостей

2. Creación de un nuevo usuario y configuración de sudo

Trabajar directamente como root no es seguro. Crearemos un nuevo usuario, lo agregaremos al grupo sudo y configuraremos el acceso SSH.


# Замените 'youruser' на желаемое имя пользователя
sudo adduser youruser
sudo usermod -aG sudo youruser # Добавление пользователя в группу sudo

Cambie al nuevo usuario y configure las claves SSH para un inicio de sesión más seguro:


su - youruser # Переключение на нового пользователя

# Создайте директорию .ssh, если ее нет, и установите права
mkdir -p ~/.ssh
chmod 700 ~/.ssh

# Скопируйте ваш публичный SSH-ключ (id_rsa.pub)
# Замените 'ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ' на содержимое вашего ключа
echo "ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ" > ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

# Отключите вход по паролю для root и разрешите только по ключу
# Отредактируйте файл /etc/ssh/sshd_config (выполнять от root или через sudo)
# Откройте новый SSH-сеанс с новым пользователем, чтобы убедиться, что вход работает, прежде чем закрывать текущий root-сеанс!

3. Configuración del firewall (UFW)

UFW (Uncomplicated Firewall) es una interfaz conveniente para iptables. Lo configuraremos para permitir solo los puertos necesarios.


sudo apt install ufw -y              # Установка UFW
sudo ufw allow OpenSSH               # Разрешить SSH (порт 22)
sudo ufw allow http                  # Разрешить HTTP (порт 80)
sudo ufw allow https                 # Разрешить HTTPS (порт 443)
sudo ufw enable                      # Включить файрвол
sudo ufw status verbose              # Проверить статус

4. Instalación de Fail2ban

Fail2ban protege el servidor de ataques de fuerza bruta bloqueando las direcciones IP desde las que se producen demasiados intentos fallidos de inicio de sesión.


sudo apt install fail2ban -y         # Установка Fail2ban
sudo systemctl enable fail2ban       # Включение автозапуска сервиса
sudo systemctl start fail2ban        # Запуск сервиса

Fail2ban ya está configurado por defecto para proteger SSH. Para una configuración más detallada, puede crear el archivo /etc/fail2ban/jail.local.

5. Instalación de utilidades básicas

Instalaremos algunas utilidades útiles que pueden ser de ayuda durante el proceso de instalación y depuración.


sudo apt install curl wget git htop -y # Установка curl, wget, git и htop

Ahora su servidor está listo para la instalación de SigNoz.

Instalación de software — paso a paso

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

SigNoz se despliega utilizando Docker y Docker Compose, lo que simplifica significativamente el proceso de instalación y gestión de todos sus componentes. Utilizaremos las versiones actuales de Docker Engine y Docker Compose, así como la última versión estable de SigNoz (asumimos que será la versión 0.30+ para 2026).

1. Instalación de Docker Engine

Primero, instalaremos Docker Engine en su servidor. Se recomienda utilizar el repositorio oficial de Docker para obtener las versiones más recientes.


# Eliminación de versiones antiguas de Docker (si las hay)
for pkg in docker.io docker-doc docker-compose docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin; do sudo apt remove $pkg; done

# Instalación de dependencias
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release -y

# Adición de la clave GPG oficial de Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Adición del repositorio de Docker a las fuentes de APT
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Actualización de la lista de paquetes e instalación de Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

# Adición del usuario actual al grupo docker para ejecutar comandos Docker sin sudo
sudo usermod -aG docker youruser # Reemplace 'youruser' con su nombre de usuario
newgrp docker # Aplique los cambios a la sesión actual o vuelva a iniciar sesión

Verifique la instalación de Docker:


docker run hello-world # Ejecución de un contenedor de prueba

Debería ver un mensaje de bienvenida de Docker.

2. Instalación de SigNoz usando Docker Compose

SigNoz proporciona archivos Docker Compose listos para un despliegue conveniente.


# Creación de un directorio para SigNoz
mkdir -p ~/signoz
cd ~/signoz

# Clonación del repositorio de SigNoz
git clone -b main https://github.com/SigNoz/signoz.git

# Navegación al directorio de despliegue
cd signoz/deploy/

# Inicio de SigNoz usando Docker Compose
docker compose -f docker-compose.yaml up -d # Inicio de todos los servicios de SigNoz en segundo plano

Este proceso puede tardar varios minutos mientras Docker descarga todas las imágenes necesarias e inicia los contenedores. Una vez completado, puede verificar el estado de los contenedores:


docker compose -f docker-compose.yaml ps # Verificación del estado de los contenedores de SigNoz en ejecución

Debería ver una lista de servicios en ejecución, como ClickHouse, Query Service, Frontend, OpenTelemetry Collector y otros.

Por defecto, SigNoz estará disponible en el puerto 3301 de su VPS. Ahora puede proceder a la configuración de acceso.

Configuración de SigNoz y aplicaciones

Diagrama: Configuración de SigNoz y aplicaciones
Diagrama: Configuración de SigNoz y aplicaciones

Después de una instalación exitosa de SigNoz, es necesario configurar el acceso al mismo y comenzar a enviar datos desde sus aplicaciones. También aseguraremos una conexión segura a la interfaz de usuario de SigNoz a través de HTTPS.

1. Acceso inicial a la interfaz de usuario de SigNoz

Por defecto, la interfaz de usuario de SigNoz está disponible en la dirección http://SU_DIRECCIÓN_IP:3301. Ábrala en su navegador. Al iniciar sesión por primera vez, se le pedirá que cree una cuenta de administrador. Establezca un nombre de usuario y una contraseña segura.

2. Configuración de HTTPS con Caddy

El uso de HTTP para acceder al panel de monitoreo es altamente indeseable. Configuraremos Caddy — un servidor web fácil de usar con emisión y renovación automática de certificados TLS de Let's Encrypt — para proporcionar acceso HTTPS.

Pasos preliminares:

  1. Asegúrese de que su dominio (por ejemplo, signoz.yourdomain.com) apunte a la dirección IP de su VPS.
  2. Asegúrese de que los puertos 80 (HTTP) y 443 (HTTPS) estén abiertos en su UFW (ya los abrimos en la sección "Preparación del servidor").

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 # Instalación de Caddy

Configuración de Caddyfile:

Cree o edite el archivo /etc/caddy/Caddyfile. Reemplace signoz.yourdomain.com con su dominio real.


# /etc/caddy/Caddyfile
signoz.yourdomain.com {
    # Emisión y renovación automática de certificados TLS
    tls {
        # Use su correo electrónico para notificaciones de Let's Encrypt
        email [email protected]
    }

    # Proxy de todas las solicitudes al Frontend de SigNoz
    reverse_proxy localhost:3301 {
        # Adición de los encabezados necesarios para un funcionamiento correcto
        header_up Host {host}
        header_up X-Real-IP {remote_ip}
        header_up X-Forwarded-For {remote_ip}
        header_up X-Forwarded-Proto {scheme}
    }

    # Habilitar compresión (opcional, pero recomendado)
    encode gzip zstd

    # Registro de acceso (opcional)
    log {
        output file /var/log/caddy/access.log
        format json
    }
}

Cree un directorio para los logs de Caddy:


sudo mkdir -p /var/log/caddy
sudo chown caddy:caddy /var/log/caddy

Reinicio de Caddy:


sudo caddy validate -adapter caddyfile --config /etc/caddy/Caddyfile # Verificación de la configuración
sudo systemctl reload caddy # Recarga de Caddy para aplicar los cambios
sudo systemctl enable caddy # Asegurarse de que Caddy se inicie al arrancar el sistema

Ahora puede acceder a SigNoz en https://signoz.yourdomain.com.

3. Envío de datos a SigNoz usando OpenTelemetry

SigNoz utiliza activamente OpenTelemetry (OTel) — un estándar abierto para la recopilación de telemetría. Para enviar logs, métricas y trazas desde sus aplicaciones, deberá integrar el SDK de OTel en su código o usar el OTel Collector.

Ejemplo para una aplicación Node.js (trazado básico):

Instale los paquetes necesarios de OpenTelemetry:


npm install @opentelemetry/sdk-node @opentelemetry/api @opentelemetry/auto-instrumentations-node @opentelemetry/exporter-otlp-proto-http @opentelemetry/sdk-trace-node

Cree el archivo tracing.js:


// tracing.js
const opentelemetry = require('@opentelemetry/sdk-node');
const { getNodeAutoInstrumentations } = require('@opentelemetry/auto-instrumentations-node');
const { OTLPTraceExporter } = require('@opentelemetry/exporter-otlp-proto-http');

const traceExporter = new OTLPTraceExporter({
    url: 'http://localhost:4318/v1/traces', // Dirección del OpenTelemetry Collector de SigNoz
});

const sdk = new opentelemetry.NodeSDK({
  serviceName: 'my-node-app',
  traceExporter,
  instrumentations: [getNodeAutoInstrumentations()],
});

sdk.start()
  .then(() => console.log('Tracing initialized'))
  .catch((error) => console.error('Error initializing tracing', error));

process.on('SIGTERM', () => {
  sdk.shutdown()
    .then(() => console.log('Tracing terminated'))
    .catch((error) => console.error('Error terminating tracing', error))
    .finally(() => process.exit(0));
});

Ejecute su aplicación Node.js con este archivo:


node -r ./tracing.js your-app.js

Para otros lenguajes de programación y para el envío de métricas/logs, el proceso es similar: utilice los SDK y exportadores de OTel correspondientes. El OpenTelemetry Collector en SigNoz escucha por defecto los puertos 4317 (gRPC) y 4318 (HTTP) para trazas, así como 4317/4318 para métricas y 4317 para logs. Al enviar datos desde la aplicación, especifique la dirección localhost:4318 o localhost:4317, ya que el OTel Collector funciona en la misma pila de Docker Compose que la propia aplicación SigNoz.

Para recopilar logs del host o de otros contenedores, se puede configurar un OpenTelemetry Collector separado o utilizar el controlador de logs de Docker que envía los logs a SigNoz.

4. Verificación de la operatividad

Después de configurar las aplicaciones y enviar los datos, acceda a la interfaz de usuario de SigNoz (https://signoz.yourdomain.com). Vaya a las secciones "Traces", "Metrics" o "Logs". Debería ver los datos entrantes. Si no hay datos, verifique:

  • Logs de los contenedores de SigNoz: docker compose -f ~/signoz/signoz/deploy/docker-compose.yaml logs
  • Logs de Caddy: sudo journalctl -u caddy.service
  • La correcta configuración del SDK de OTel en su aplicación.
  • La disponibilidad de puertos entre la aplicación y el OTel Collector de SigNoz.

Copias de seguridad y mantenimiento

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

Las copias de seguridad y el mantenimiento regular son aspectos críticos para cualquier sistema de producción, especialmente para un sistema de monitoreo que almacena datos valiosos. La pérdida de datos de telemetría puede llevar a la imposibilidad de analizar incidentes y regresiones.

Qué respaldar

Para SigNoz, es necesario respaldar los siguientes componentes:

  1. Datos de ClickHouse: Este es el almacenamiento principal de todos los logs, métricas y trazas. Es el componente más grande e importante.
  2. Archivos de configuración de SigNoz: Los archivos docker-compose.yaml, .env, cualquier configuración personalizada de OpenTelemetry Collector u otros parámetros que haya podido modificar.
  3. Configuración de Caddy: El archivo /etc/caddy/Caddyfile y el directorio con los certificados TLS (normalmente /var/lib/caddy).

Script simple de copia de seguridad automática

Crearemos un script simple que archivará los archivos de configuración principales y realizará una copia de seguridad "en caliente" de los datos de ClickHouse. Para almacenar los datos de ClickHouse, se pueden usar los comandos docker exec.

Cree el archivo ~/signoz/backup_signoz.sh:


#!/bin/bash

# --- Configuración de la copia de seguridad ---
BACKUP_DIR="/var/backups/signoz_$(date +%Y%m%d%H%M%S)"
SIGNOZ_DEPLOY_PATH="/root/signoz/signoz/deploy" # Ruta a su deploy/ SigNoz
CLICKHOUSE_CONTAINER="signoz-clickhouse" # Nombre del contenedor ClickHouse, se puede obtener a través de docker ps
CLICKHOUSE_DATABASE="signoz" # Nombre de la base de datos ClickHouse
RETENTION_DAYS=7 # Cuántos días conservar las copias de seguridad

# --- Creación del directorio de copia de seguridad ---
echo "Creando directorio de copia de seguridad: $BACKUP_DIR"
sudo mkdir -p "$BACKUP_DIR"
if [ $? -ne 0 ]; then
    echo "Error: No se pudo crear el directorio de copia de seguridad. Verifique los permisos."
    exit 1
fi

# --- Copia de seguridad de archivos de configuración ---
echo "Copiando archivos de configuración..."
sudo cp -r "$SIGNOZ_DEPLOY_PATH" "$BACKUP_DIR/signoz_config"
sudo cp /etc/caddy/Caddyfile "$BACKUP_DIR/Caddyfile"
sudo cp -r /var/lib/caddy "$BACKUP_DIR/caddy_data" # Copia de seguridad de certificados de Caddy

# --- Copia de seguridad de datos de ClickHouse ---
echo "Copiando datos de ClickHouse..."
# ClickHouse soporta copias de seguridad "en caliente" usando el comando ATTACH TABLE FROM DISK
# Este método copia datos de particiones activas, lo que puede ser intensivo en recursos
# Una forma más fiable es usar la herramienta clickhouse-backup
# En este ejemplo, haremos un volcado del esquema y tablas importantes
# Para una copia de seguridad completa de ClickHouse, es mejor usar herramientas especializadas:
# https://clickhouse.com/docs/en/operations/backup

# Ejemplo: volcado del esquema de la base de datos
sudo docker exec "$CLICKHOUSE_CONTAINER" clickhouse-client --query="SHOW CREATE DATABASE $CLICKHOUSE_DATABASE" > "$BACKUP_DIR/clickhouse_schema.sql"

# Ejemplo: volcado de datos de tablas pequeñas pero importantes (por ejemplo, metadatos)
# Para tablas grandes, esto es ineficiente.
# sudo docker exec "$CLICKHOUSE_CONTAINER" clickhouse-client --query="SELECT  FROM signoz.traces ORDER BY timestamp LIMIT 1000 FORMAT CSV" > "$BACKUP_DIR/traces_sample.csv"

# Para una copia de seguridad completa de ClickHouse, se recomienda usar clickhouse-backup:
# 1. Instalar clickhouse-backup en el host: https://github.com/Altinity/clickhouse-backup
# 2. Configurarlo para trabajar con el contenedor ClickHouse.
# Ejemplo de comando con clickhouse-backup:
# sudo clickhouse-backup -c /etc/clickhouse-backup.yaml create --name signoz_full_backup

echo "Archivando copia de seguridad..."
sudo tar -czvf "$BACKUP_DIR.tar.gz" -C "$(dirname "$BACKUP_DIR")" "$(basename "$BACKUP_DIR")"
if [ $? -ne 0 ]; then
    echo "Error: No se pudo archivar la copia de seguridad."
    exit 1
fi
sudo rm -rf "$BACKUP_DIR" # Eliminando directorio temporal

echo "Copia de seguridad creada con éxito: $BACKUP_DIR.tar.gz"

# --- Eliminando copias de seguridad antiguas ---
echo "Eliminando copias de seguridad antiguas (más de $RETENTION_DAYS días)..."
sudo find /var/backups/signoz_ -type f -mtime +"$RETENTION_DAYS" -delete
echo "Completado."

Haga que el script sea ejecutable:


chmod +x ~/signoz/backup_signoz.sh

Dónde almacenar las copias de seguridad

Almacenar las copias de seguridad en el mismo servidor que los datos originales es extremadamente arriesgado. Si el servidor falla, perderá tanto los datos como las copias de seguridad. Se recomienda usar:

  • Almacenamiento externo compatible con S3: Amazon S3, MinIO, Wasabi, Backblaze B2. Es una solución económica y fiable. Puede usar s3cmd o rclone para subir los archivos.
  • VPS separado: Un VPS económico con gran volumen de disco, ubicado en otro centro de datos.
  • NAS/servidor local: Si tiene su propia infraestructura.

Para la carga automática a S3, puede añadir el comando aws s3 cp "$BACKUP_DIR.tar.gz" s3://your-backup-bucket/ al script de copia de seguridad (después de configurar AWS CLI).

Automatización de copias de seguridad con Cron

Añada una tarea a Cron para que el script se ejecute regularmente (por ejemplo, diariamente a las 3 de la madrugada).


sudo crontab -e

Añada la siguiente línea al final del archivo:


0 3   * /root/signoz/backup_signoz.sh >> /var/log/signoz_backup.log 2>&1

Esto ejecutará el script cada día a las 03:00 y registrará la salida en un archivo de log.

Actualizaciones: rolling vs maintenance window

Actualización de SigNoz:

SigNoz está en constante evolución. Para actualizar a una nueva versión:


cd ~/signoz/signoz/deploy/
git pull # Obtener los últimos cambios del repositorio
docker compose -f docker-compose.yaml pull # Descargar nuevas imágenes de contenedores
docker compose -f docker-compose.yaml up -d # Recrear contenedores con las nuevas imágenes
docker image prune -f # Limpiar imágenes antiguas no utilizadas

Se recomienda realizar las actualizaciones en una "ventana de mantenimiento" (maintenance window), cuando la carga del sistema es mínima, ya que la actualización puede causar una breve indisponibilidad de algunos servicios de SigNoz. Lea siempre las notas de la versión antes de actualizar para estar al tanto de posibles cambios importantes (breaking changes).

Actualización de SO y Docker:

Actualice regularmente el sistema operativo y Docker Engine:


sudo apt update && sudo apt upgrade -y
sudo systemctl restart docker # Reiniciar Docker después de actualizar componentes

Estas actualizaciones también es mejor realizarlas en una ventana de mantenimiento, ya que el reinicio de Docker puede detener todos los contenedores en ejecución durante unos segundos.

Resolución de problemas + Preguntas frecuentes

Durante el despliegue y la operación de SigNoz, pueden surgir varios problemas. A continuación, se presentan preguntas típicas y sus soluciones.

1. La interfaz de usuario de SigNoz no está disponible por dirección IP o dominio.

Qué verificar:

  • Estado de los contenedores Docker: Asegúrese de que todos los contenedores de SigNoz estén en ejecución.
    docker compose -f ~/signoz/signoz/deploy/docker-compose.yaml ps
    Todos los servicios deben estar en estado running. Si no es así, verifique los logs del contenedor problemático:
    docker compose -f ~/signoz/signoz/deploy/docker-compose.yaml logs signoz-frontend
  • Cortafuegos (UFW): Asegúrese de que los puertos 80, 443 (para Caddy) y 3301 (para acceso directo a la UI de SigNoz) estén abiertos.
    sudo ufw status verbose
  • Caddy: Si usa Caddy, verifique su estado y logs.
    sudo systemctl status caddy
    sudo journalctl -u caddy.service
    Asegúrese de que su dominio se resuelva correctamente a la dirección IP del servidor.
  • Conflictos de puertos: Verifique si otros servicios no están ocupando los puertos 80, 443 o 3301.
    sudo netstat -tulpn | grep -E "80|443|3301"

Cómo solucionar: Reinicie los servicios Docker o Caddy problemáticos. Abra los puertos necesarios en UFW. Corrija el registro DNS para el dominio.

2. No llegan logs, métricas o trazas a SigNoz.

Qué verificar:

  • Configuración de OpenTelemetry Collector: Asegúrese de que el OTel Collector en SigNoz esté en ejecución y escuchando los puertos correctos.
    docker compose -f ~/signoz/signoz/deploy/docker-compose.yaml logs signoz-otel-collector
  • Configuración de la aplicación: Verifique que su aplicación esté configurada correctamente para enviar datos al OTel Collector de SigNoz (normalmente http://localhost:4318 o http://localhost:4317 desde otros contenedores en la misma red de Docker Compose).
    curl -v -X POST http://localhost:4318/v1/traces -d '{"resourceSpans":[]}'
    Esta es una prueba simple de la disponibilidad del endpoint OTLP.
  • Disponibilidad de red: Si la aplicación se encuentra en otro host, asegúrese de que su red pueda acceder a los puertos del OTel Collector en su VPS.
  • Errores en los logs de la aplicación: Verifique los logs de la aplicación que debería enviar telemetría en busca de errores de exportación de OTel.

Cómo solucionar: Corrija la configuración de la aplicación o del OTel Collector. Verifique la conectividad de red entre los componentes.

3. SigNoz funciona lento o consume muchos recursos.

Qué verificar:

  • Recursos del servidor: Verifique la carga de CPU, el uso de RAM y la velocidad del disco en su VPS.
    htop
    df -h
    iostat -x 1 10
  • ClickHouse: ClickHouse es el principal consumidor de recursos. Verifique sus logs en busca de errores o advertencias.
    docker compose -f ~/signoz/signoz/deploy/docker-compose.yaml logs signoz-clickhouse
  • Volumen de datos: Evalúe el volumen de datos entrantes. Es posible que su VPS simplemente no pueda manejar la carga actual.

Cómo solucionar: Aumente los recursos del VPS (CPU, RAM, NVMe SSD). Optimice las aplicaciones para reducir el volumen de telemetría enviada (por ejemplo, muestreo de trazas). Configure la política de retención de datos en SigNoz para la eliminación automática de datos antiguos.

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

Para fines de prueba o proyectos muy pequeños (1-2 aplicaciones, bajo volumen de datos), se puede empezar con 2 CPU, 4 GB de RAM y 100 GB de NVMe SSD. Sin embargo, para cualquier operación seria, incluso para equipos pequeños, se recomienda un mínimo de 4 CPU, 8-16 GB de RAM y 200 GB de NVMe SSD para un funcionamiento estable y la capacidad de almacenar datos durante varias semanas.

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

La elección entre un VPS y un servidor dedicado depende de la escala y los requisitos de rendimiento. Un VPS es adecuado para la mayoría de los proyectos medianos (hasta 10-20 servicios, varios cientos de GB de datos al mes) debido a su flexibilidad y costo. Un servidor dedicado es necesario para instalaciones grandes, donde se procesan terabytes de datos, se requiere el máximo rendimiento de ClickHouse, almacenamiento a largo plazo o requisitos estrictos de aislamiento de recursos. Si tiene dudas, comience con un VPS y escale a un servidor dedicado a medida que crezcan sus necesidades.

6. ¿Cómo actualizar SigNoz a una nueva versión?

Para actualizar SigNoz, ejecute los siguientes comandos en el directorio ~/signoz/signoz/deploy/:


git pull                       # Obtener los últimos cambios del repositorio de SigNoz
docker compose -f docker-compose.yaml pull # Descargar nuevas versiones de imágenes Docker
docker compose -f docker-compose.yaml up -d # Recrear contenedores con las nuevas imágenes
docker image prune -f          # Limpiar imágenes Docker antiguas no utilizadas

Siempre consulte la documentación oficial de SigNoz para obtener instrucciones de actualización específicas para una versión concreta, ya que a veces pueden ser necesarios pasos adicionales.

Conclusiones y próximos pasos

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

¡Felicidades! Ha desplegado SigNoz con éxito en su VPS, ha configurado el acceso seguro a través de HTTPS y está listo para empezar a recopilar telemetría de sus aplicaciones. Ahora tiene una potente herramienta de monitorización integral que proporciona una profunda comprensión del rendimiento y el comportamiento de sus sistemas, ayudando a reaccionar rápidamente a los problemas y a tomar decisiones informadas.

Los siguientes pasos para maximizar el beneficio de SigNoz incluyen:

  • Integración de todas las aplicaciones: Integre gradualmente todos sus microservicios y monolitos con el SDK de OpenTelemetry para enviar registros (logs), métricas y trazas a SigNoz.
  • Configuración de alertas: Cree reglas de alerta basadas en métricas clave (por ejemplo, alta utilización de CPU, poco espacio libre en disco, aumento de errores en los registros) o anomalías en las trazas para reaccionar de forma proactiva ante posibles problemas.
  • Paneles de control avanzados: Utilice las capacidades de SigNoz para crear paneles de control personalizados que visualicen los indicadores más importantes para usted y le ayuden a supervisar el estado del sistema de un vistazo.
  • Optimización del almacenamiento de datos: Revise regularmente la política de retención de datos en ClickHouse para equilibrar la necesidad de información histórica con los recursos de disco disponibles.

¿Te fue útil esta guía?

Despliegue de SigNoz en VPS: monitoreo integral de aplicaciones (logs, mét
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.