Dozzle en un VPS es una forma eficiente de ver de forma centralizada los logs de los contenedores Docker en tiempo real a través de una cómoda interfaz web, lo que permite diagnosticar rápidamente los problemas y monitorear el funcionamiento de sus servicios en un servidor virtual.
En el mundo moderno, donde los microservicios y la contenerización se han convertido en un estándar, la gestión de los logs de múltiples contenedores Docker puede ser un verdadero desafío. La visualización tradicional de logs a través de la línea de comandos (docker logs) no siempre es cómoda, especialmente cuando se trata de decenas o cientos de contenedores que se ejecutan en varios servidores. Aquí es donde Dozzle acude al rescate: una herramienta ligera pero potente para monitorear logs en tiempo real directamente desde su navegador. Valebyte.com, como proveedor de VPS y servidores dedicados de alto rendimiento, comprende la importancia de las herramientas eficientes para desarrolladores y administradores de sistemas. En este artículo, veremos en detalle cómo realizar la instalación de Dozzle en su VPS, configurarlo para un funcionamiento seguro y garantizar su mantenimiento continuo.
¿Qué es Dozzle y por qué es indispensable para el monitoreo de logs en un VPS?
Dozzle es una interfaz web sencilla pero funcional, diseñada para ver los logs de los contenedores Docker. Proporciona un panel de control intuitivo que permite rastrear en tiempo real la salida de todos sus contenedores que se ejecutan en uno o varios hosts Docker. La idea principal de Dozzle es proporcionar un acceso centralizado, cómodo y rápido a los logs sin necesidad de iniciar sesión en cada servidor por SSH y ejecutar comandos docker logs.
¿Qué es Dozzle? Características principales y ventajas.
Dozzle se destaca entre herramientas similares por su ligereza y facilidad de implementación. Se ejecuta en un contenedor Docker y se comunica con el Docker Engine a través de un socket. Aquí están las características clave y ventajas que hacen de Dozzle en un VPS una herramienta indispensable:
- Monitoreo de logs en tiempo real: Dozzle actualiza automáticamente los logs a medida que aparecen, proporcionando información actualizada sobre el funcionamiento de sus aplicaciones.
- Interfaz web cómoda: Acceso a los logs a través de cualquier navegador moderno, sin necesidad de instalar software adicional en la máquina local.
- Búsqueda y filtrado: Potentes funciones de búsqueda permiten encontrar rápidamente la información necesaria por palabras clave, expresiones regulares o por contenedores específicos. Puede filtrar los logs por nombre de contenedor, estado, rango de tiempo.
- Soporte para múltiples hosts: Dozzle puede conectarse a varios hosts Docker, lo que permite gestionar los logs de forma centralizada desde diferentes VPS o servidores.
- Ligereza: Dozzle consume un mínimo de recursos, lo que lo hace ideal para su implementación en un VPS con recursos limitados.
- Facilidad de instalación: La implementación de Dozzle lleva solo unos minutos gracias a su naturaleza de contenedor (dozzle docker).
- Detección automática de contenedores: Dozzle detecta automáticamente todos los contenedores en ejecución y los muestra en una lista.
- Dark Mode: Para aquellos que prefieren temas oscuros, Dozzle ofrece un cómodo modo "nocturno".
¿Por qué usar Dozzle en un VPS para contenedores Docker?
El uso de Dozzle en un servidor virtual de Valebyte.com ofrece una serie de ventajas, especialmente para desarrolladores y administradores de sistemas que gestionan aplicaciones contenerizadas:
- Gestión centralizada de logs: En lugar de conectarse a cada VPS por SSH y revisar manualmente los logs, obtiene un único punto de acceso para todos sus contenedores. Esto es especialmente relevante si utiliza varios VPS para diferentes servicios, por ejemplo, para Coder en un VPS o Woodpecker CI en un VPS.
- Diagnóstico rápido de problemas: El acceso instantáneo a los logs permite identificar rápidamente errores, rastrear fallos y comprender el comportamiento de las aplicaciones en tiempo real, lo que reduce el tiempo de inactividad.
- Mayor observabilidad: Dozzle aumenta la transparencia del funcionamiento de sus servicios, permitiendo rastrear fácilmente eventos, advertencias y mensajes informativos.
- Ahorro de tiempo: La automatización y centralización de la visualización de logs reducen significativamente el tiempo dedicado a las operaciones manuales.
- Disponibilidad: La interfaz web es accesible desde cualquier dispositivo con acceso a Internet, lo que permite monitorear los servidores desde cualquier parte del mundo.
- Seguridad: Con la configuración adecuada (con HTTPS y autenticación, como explicaremos más adelante), el acceso a los logs puede protegerse, evitando la visualización no autorizada.
En resumen, Dozzle self-hosted en su VPS de Valebyte.com se convierte en una potente herramienta para la gestión y el monitoreo eficientes de su infraestructura Docker.
Requisitos del sistema de Dozzle y qué VPS elegir?
Antes de proceder con la instalación de Dozzle, es importante asegurarse de que su VPS cumple con los requisitos mínimos del sistema. Dozzle está diseñado para ser lo más ligero posible, por lo que no requiere recursos significativos, lo que lo convierte en un candidato ideal para su implementación en planes VPS estándar.
Requisitos mínimos para la instalación de Dozzle.
Para el funcionamiento básico de Dozzle con un pequeño número de contenedores (hasta 10-20) y un volumen moderado de logs, se requieren los siguientes recursos:
- Sistema operativo: Cualquier distribución de Linux que soporte Docker (por ejemplo, Ubuntu 20.04+, Debian 10+, CentOS 7+). Se recomienda utilizar versiones recientes de Ubuntu o Debian para una mejor compatibilidad y disponibilidad de paquetes.
- Docker Engine: Versión 1.12.0 o superior.
- Docker Compose: Versión 1.20.0 o superior (o Docker Compose V2, que ahora está integrado en Docker CLI).
- Memoria RAM: Mínimo 512 MB. Dozzle por sí mismo consume alrededor de 20-50 MB de RAM. El consumo principal dependerá de la cantidad y actividad de sus contenedores Docker.
- Procesador (CPU): 1 vCPU (núcleo virtual). Dozzle no es una aplicación que consuma muchos recursos.
- Espacio en disco: Mínimo 10 GB NVMe SSD. Para Dozzle en sí, solo se necesitan unas pocas decenas de megabytes, pero las imágenes de Docker y los logs de otros contenedores pueden llenar rápidamente el disco. Un NVMe SSD acelerará significativamente las operaciones de Docker.
- Conexión de red: Conexión a Internet estable para descargar imágenes de Docker y acceder a la interfaz web.
Es importante recordar que estos requisitos se refieren a Dozzle en sí. Si su VPS ya tiene otras aplicaciones que consumen muchos recursos (por ejemplo, servidores web, bases de datos, sistemas CI/CD como code-server en un VPS o Meilisearch en un VPS), entonces el volumen total de recursos necesarios será significativamente mayor.
Configuraciones de VPS recomendadas para diferentes cargas con Dozzle.
La elección de la configuración óptima del VPS para Dozzle en el servidor depende de la cantidad de contenedores, la intensidad de la generación de logs y el número total de aplicaciones que se ejecutan en su servidor. Valebyte.com ofrece varios planes de tarifas que se adaptarán a cualquier tarea.
| Escenario de uso | vCPU | RAM | Disco (NVMe SSD) | Costo aproximado/mes (Valebyte.com) | Comentario |
|---|---|---|---|---|---|
| Mínimo (pruebas, 1-5 contenedores) | 1 núcleo | 1 GB | 20 GB | desde $5 | Para proyectos ligeros, uso personal. Dozzle y algunos contenedores simples. |
| Pequeño (hasta 20 contenedores, logs moderados) | 2 núcleos | 2 GB | 40 GB | desde $10 | Opción estándar para la mayoría de proyectos pequeños y medianos, donde ya hay un servidor web, base de datos. |
| Medio (hasta 50 contenedores, logs activos) | 4 núcleos | 4 GB | 80 GB | desde $20 | Para servidores de producción con varias decenas de contenedores que requieren monitoreo regular. |
| Grande (más de 50 contenedores, servicios de alta carga) | 6+ núcleos | 8+ GB | 160+ GB | desde $40 | Para arquitecturas de microservicios complejas, donde Dozzle monitoreará muchos servicios activos. |
Nota importante: Si planea usar Dozzle para monitorear los logs de una gran cantidad de contenedores que generan muchos datos de salida (por ejemplo, pipelines CI/CD o APIs de alta carga), asegúrese de que su VPS tenga suficiente RAM y un NVMe SSD rápido para procesar y almacenar estos datos. Un disco rápido es crítico para el rendimiento de Docker en general. Valebyte.com ofrece VPS con NVMe SSD por defecto, lo cual es una gran ventaja.
¿Busca un servidor fiable para sus proyectos?
VPS desde $10/mes y servidores dedicados desde $9/mes con NVMe, protección DDoS y soporte 24/7.
Ver ofertas →Instalación paso a paso de Dozzle en un VPS con Docker y Docker Compose
El proceso de instalación de Dozzle se simplifica al máximo gracias al uso de Docker. Veremos los pasos para preparar su VPS, instalar los componentes necesarios e implementar Dozzle.
Preparación del VPS para la instalación de Dozzle: actualización del sistema e instalación de Docker.
Antes de instalar Dozzle, debe preparar su VPS. Se asume que tiene un VPS nuevo con Ubuntu 20.04/22.04 o Debian 11/12. Conéctese a su servidor por SSH:
ssh user@your_vps_ip
1. Actualización del sistema:
Siempre comience actualizando la base de paquetes y los paquetes instalados para garantizar la estabilidad y seguridad del sistema.
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
2. Instalación de Docker Engine:
Dozzle funciona como un contenedor Docker, por lo que necesitará tener Docker Engine instalado. Siga las instrucciones oficiales para instalar Docker. Para Ubuntu/Debian, esto se ve así:
Instale los paquetes necesarios para instalar Docker a través de HTTPS:
sudo apt install -y ca-certificates curl gnupg lsb-release
Agregue la clave GPG oficial de Docker:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Agregue el repositorio de Docker:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Actualice la base de paquetes una vez más e instale Docker Engine, Docker CLI y containerd:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Verifique que Docker esté en ejecución:
sudo systemctl status docker
Agregue su usuario al grupo docker para no usar sudo en cada comando de Docker:
sudo usermod -aG docker $USER
newgrp docker
Ahora puede verificar la versión de Docker sin sudo:
docker --version
docker compose version
Si docker compose version no funciona, es posible que tenga una versión antigua de Docker Compose (v1). En este caso, instálela por separado:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Para Docker Compose v1
# sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# sudo chmod +x /usr/local/bin/docker-compose
O, si ya tiene Docker Compose V2 (docker-compose-plugin), el comando docker compose (sin guion) funcionará.
Implementación de Dozzle usando Docker Compose.
Ahora que Docker está instalado, podemos implementar Dozzle usando Docker Compose. Esta es la forma recomendada para dozzle docker, ya que simplifica la gestión de contenedores.
1. Cree un directorio para Dozzle:
Cree un nuevo directorio donde se almacenarán los archivos de configuración de Dozzle.
mkdir -p ~/dozzle
cd ~/dozzle
2. Cree el archivo docker-compose.yml:
Cree un archivo llamado docker-compose.yml y agregue la siguiente configuración. Este archivo describe cómo debe ejecutarse Dozzle.
nano docker-compose.yml
Pegue el siguiente contenido:
version: '3.8'
services:
dozzle:
image: amir20/dozzle:latest
container_name: dozzle
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
ports:
- "8080:8080"
environment:
# DOZZLE_USERNAME: "your_username" # Opcional: para autenticación básica
# DOZZLE_PASSWORD: "your_password" # Opcional: para autenticación básica
DOZZLE_NO_ANALYTICS: "true" # Deshabilitar el envío de estadísticas anónimas
DOZZLE_GLOBAL_FILTERS: "dozzle" # Excluir el propio dozzle de la lista, si es necesario
DOZZLE_FILTER: "name!=dozzle" # Forma alternativa de excluir dozzle
restart: unless-stopped
labels:
- "dozzle.exclude=true" # Dozzle no se mostrará a sí mismo en la lista de logs
Explicaciones de la configuración:
image: amir20/dozzle:latest: Indica el uso de la última versión estable de la imagen de Dozzle.container_name: dozzle: Asigna un nombre conveniente al contenedor.volumes: - /var/run/docker.sock:/var/run/docker.sock:ro: Esta es una línea críticamente importante. Monta el socket de Docker Engine del host en el contenedor Dozzle en modo de solo lectura (ro). Esto permite a Dozzle interactuar con Docker Engine y obtener información sobre los contenedores y sus logs.ports: - "8080:8080": Mapea el puerto 8080 del contenedor Dozzle al puerto 8080 de su VPS. Podrá acceder a Dozzle enhttp://your_vps_ip:8080.environment:: Sección para variables de entorno.DOZZLE_USERNAME/DOZZLE_PASSWORD: Opcional. Si desea agregar autenticación HTTP básica para acceder a Dozzle. Recomendado si no utiliza un proxy inverso con su propia autenticación.DOZZLE_NO_ANALYTICS: "true": Deshabilita el envío de estadísticas de uso anónimas a los desarrolladores de Dozzle.DOZZLE_FILTER: "name!=dozzle": Filtra el propio contenedor Dozzle de la lista de logs para que no monitoree sus propios logs.
restart: unless-stopped: El contenedor Dozzle se reiniciará automáticamente en caso de fallos o reinicios del VPS, a menos que se haya detenido manualmente.labels: - "dozzle.exclude=true": Esta es una etiqueta que el propio Dozzle utiliza para filtrar y no mostrar sus logs.
3. Inicie Dozzle:
Guarde el archivo docker-compose.yml e inicie Dozzle:
docker compose up -d
Si utiliza una versión antigua de Docker Compose (v1), el comando será docker-compose up -d.
4. Verifique el estado del contenedor:
Asegúrese de que el contenedor Dozzle esté en ejecución y funcionando:
docker ps -a
Debería ver un contenedor con el nombre dozzle y el estado Up.
5. Acceso a Dozzle:
Ahora puede acceder a la interfaz web de Dozzle abriendo en su navegador la dirección http://your_vps_ip:8080. Reemplace your_vps_ip con la dirección IP real de su VPS. Verá una lista de todos sus contenedores Docker y podrá ver sus logs en tiempo real.
En este punto, la instalación de Dozzle en el VPS está completa y tiene acceso básico. Sin embargo, para un entorno de producción, se recomienda encarecidamente configurar un acceso seguro a través de un nombre de dominio, HTTPS y un proxy inverso, lo que explicaremos en la siguiente sección.
¿Buscas un servidor que simplemente funcione?
Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.
Configuración de acceso seguro a Dozzle: Reverse Proxy (Nginx/Caddy) y HTTPS
El acceso directo a Dozzle por dirección IP y puerto 8080 no es una solución segura ni profesional. Para un entorno de producción, es necesario configurar un Reverse Proxy y asegurar el cifrado del tráfico con HTTPS. Esto le permitirá acceder a Dozzle por un nombre de dominio (por ejemplo, logs.yourdomain.com) y proteger la conexión con un certificado SSL de Let's Encrypt. Revisaremos dos populares reverse proxies: Nginx y Caddy.
Antes de comenzar, asegúrese de tener un nombre de dominio que apunte a la dirección IP de su VPS (registro A en DNS).
Configuración de Nginx como Reverse Proxy para Dozzle.
Nginx es un potente y ampliamente utilizado servidor web y reverse proxy. Si ya tiene Nginx instalado en su VPS (por ejemplo, para otras aplicaciones web, como Typesense en un VPS), esta es una excelente opción.
1. Instalación de Nginx (si no está instalado):
sudo apt install -y nginx
2. Creación del archivo de configuración de Nginx para Dozzle:
Cree un nuevo archivo de configuración para su dominio (por ejemplo, logs.yourdomain.com.conf) en el directorio /etc/nginx/sites-available/.
sudo nano /etc/nginx/sites-available/logs.yourdomain.com.conf
Pegue la siguiente configuración, reemplazando logs.yourdomain.com por su dominio real:
server {
listen 80;
server_name logs.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8080; # O http://localhost:8080
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
3. Activación de la configuración:
Cree un enlace simbólico al archivo de configuración en sites-enabled y verifique la sintaxis de Nginx:
sudo ln -s /etc/nginx/sites-available/logs.yourdomain.com.conf /etc/nginx/sites-enabled/
sudo nginx -t
Si la sintaxis es correcta, reinicie Nginx:
sudo systemctl restart nginx
Ahora puede acceder a Dozzle a través de http://logs.yourdomain.com. Pero necesitamos HTTPS.
Configuración de Caddy como Reverse Proxy para Dozzle.
Caddy es un servidor web moderno que simplifica la configuración de HTTPS, obteniendo y renovando automáticamente los certificados SSL de Let's Encrypt. Si prefiere la simplicidad, Caddy es una excelente opción.
1. Instalación de Caddy (si no está instalado):
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 -y caddy
2. Creación del archivo Caddyfile para Dozzle:
Abra o cree el archivo /etc/caddy/Caddyfile:
sudo nano /etc/caddy/Caddyfile
Pegue la siguiente configuración, reemplazando logs.yourdomain.com por su dominio:
logs.yourdomain.com {
reverse_proxy 127.0.0.1:8080
}
¡Eso es todo! Caddy obtendrá automáticamente un certificado SSL y configurará HTTPS.
3. Aplicación de la configuración de Caddy:
sudo systemctl reload caddy
Ahora Dozzle está disponible en https://logs.yourdomain.com.
Obtención y renovación automática de certificados SSL con Let's Encrypt.
Si utilizó Caddy, este se encargará automáticamente del SSL. Si eligió Nginx, necesitará Certbot para obtener y renovar automáticamente los certificados de Let's Encrypt.
1. Instalación de Certbot (para Nginx):
sudo apt install -y certbot python3-certbot-nginx
2. Obtención del certificado SSL:
Ejecute el comando Certbot, especificando su dominio:
sudo certbot --nginx -d logs.yourdomain.com
Certbot le hará algunas preguntas (correo electrónico, aceptación de los términos) y modificará automáticamente la configuración de Nginx para usar HTTPS.
3. Verificación de la renovación automática:
Certbot crea automáticamente una tarea cron o un temporizador systemd para verificar y renovar los certificados regularmente. Puede verificar si el mecanismo de renovación funciona:
sudo certbot renew --dry-run
Si el comando se ejecuta sin errores, sus certificados se renovarán automáticamente.
Ahora su Dozzle self-hosted es accesible a través de una conexión HTTPS segura a través de su nombre de dominio, lo cual es un paso críticamente importante para cualquier aplicación de producción.
Mantenimiento de Dozzle en el servidor: copias de seguridad, actualizaciones y monitoreo
Después de una instalación exitosa de Dozzle, es importante asegurar su funcionamiento estable a largo plazo. Esto incluye actualizaciones regulares, creación de copias de seguridad y monitoreo de recursos. Un mantenimiento adecuado garantiza que su herramienta de monitoreo de logs siempre esté actualizada y sea confiable.
Cómo actualizar Dozzle a la última versión.
Actualizar Dozzle es muy sencillo gracias al uso de Docker Compose. Los desarrolladores de Dozzle lanzan regularmente nuevas versiones con correcciones de errores, mejoras de rendimiento y nuevas funciones. Se recomienda actualizar a las últimas versiones para aprovechar todas las ventajas.
1. Vaya al directorio de Dozzle:
cd ~/dozzle
2. Detenga y elimine el contenedor Dozzle actual:
Esto eliminará la versión antigua del contenedor, pero conservará sus datos (si estaban montados en volúmenes persistentes, lo cual no es tan crítico en el caso de Dozzle, ya que no almacena muchos datos).
docker compose down
3. Descargue la última versión de la imagen de Dozzle:
Este comando descargará la nueva imagen amir20/dozzle:latest de Docker Hub.
docker compose pull dozzle
4. Inicie Dozzle con la nueva versión de la imagen:
Este comando creará e iniciará un nuevo contenedor Dozzle utilizando la imagen recién descargada.
docker compose up -d
Después de estos pasos, su Dozzle se actualizará a la última versión. Verifique la interfaz web para asegurarse de su funcionamiento.
Estrategias de copia de seguridad de la configuración de Dozzle.
Dozzle por sí mismo no almacena datos críticamente importantes que requieran una copia de seguridad compleja. Toda su configuración se encuentra en el archivo docker-compose.yml. Sin embargo, se recomienda hacer copias de seguridad de este archivo, así como de las configuraciones del reverse proxy (Nginx/Caddy).
Qué respaldar:
docker-compose.yml: El archivo que creó en el directorio~/dozzle.- Configuración de Nginx: El archivo
/etc/nginx/sites-available/logs.yourdomain.com.conf. - Configuración de Caddy: El archivo
/etc/caddy/Caddyfile. - Certificados SSL de Let's Encrypt: El directorio
/etc/letsencrypt/. Aunque Certbot puede restaurarlos, tener una copia de seguridad puede acelerar el proceso.
Métodos de copia de seguridad:
- Copia manual: La forma más sencilla es copiar manualmente estos archivos a una máquina local o a un almacenamiento en la nube.
- Uso de Git: Almacene los archivos de configuración en un repositorio Git privado. Esto permite rastrear los cambios y restaurar fácilmente versiones anteriores.
- Scripts automatizados: Cree un script bash simple que archive los archivos necesarios y los envíe a un almacenamiento en la nube (por ejemplo, S3, Google Drive) o a un servidor remoto a través de SCP/SFTP.
Ejemplo de un script simple para copia de seguridad (backup_dozzle.sh):
#!/bin/bash
BACKUP_DIR="/var/backups/dozzle_config"
TIMESTAMP=$(date +%Y%m%d%H%M%S)
BACKUP_FILE="$BACKUP_DIR/dozzle_config_$TIMESTAMP.tar.gz"
mkdir -p $BACKUP_DIR
# Archivamos docker-compose.yml
tar -czvf $BACKUP_FILE -C ~/dozzle docker-compose.yml
# Agregamos la configuración de Nginx
if [ -f "/etc/nginx/sites-available/logs.yourdomain.com.conf" ]; then
tar -rvf $BACKUP_FILE -C /etc/nginx/sites-available logs.yourdomain.com.conf
fi
# Agregamos la configuración de Caddy
if [ -f "/etc/caddy/Caddyfile" ]; then
tar -rvf $BACKUP_FILE -C /etc/caddy Caddyfile
fi
# Agregamos los certificados de Let's Encrypt (opcional, se puede no respaldar, Certbot los restaurará)
# tar -rvf $BACKUP_FILE -C /etc letsencrypt
echo "Backup created: $BACKUP_FILE"
# Eliminación de copias de seguridad antiguas (por ejemplo, más de 7 días)
find $BACKUP_DIR -type f -name "*.tar.gz" -mtime +7 -delete
echo "Old backups cleaned."
Haga que el script sea ejecutable (chmod +x backup_dozzle.sh) y agréguelo a cron para su ejecución regular.
Monitoreo de recursos del VPS y logs de Dozzle.
Aunque Dozzle es en sí mismo una herramienta de monitoreo de logs, también es importante vigilar su propio estado y los recursos del VPS para garantizar un funcionamiento ininterrumpido. Dozzle, como cualquier otra aplicación, puede encontrar problemas o comenzar a consumir más recursos de lo esperado.
1. Monitoreo de recursos del VPS:
htopotop: Estas utilidades de línea de comandos permiten monitorear en tiempo real el consumo de CPU, RAM y la actividad de los procesos.docker stats: Muestra el consumo de recursos (CPU, RAM, red, I/O) de todos los contenedores Docker en ejecución, incluido Dozzle.df -h: Verifique el espacio libre en disco. Los logs pueden llenar rápidamente el disco, incluso si Dozzle no los almacena, otros contenedores sí pueden hacerlo.- Métricas del sistema: Utilice sistemas de monitoreo como Prometheus + Grafana, Netdata o Zabbix para la recopilación y análisis a largo plazo de las métricas de su VPS.
2. Monitoreo de los logs del propio Dozzle:
Si tiene problemas con Dozzle, puede ver sus propios logs a través de Docker:
docker logs dozzle
Esto ayudará a identificar errores o advertencias relacionadas con el funcionamiento de Dozzle. En la mayoría de los casos, Dozzle funciona de manera estable, pero si, por ejemplo, tiene problemas para acceder a /var/run/docker.sock, esto se reflejará en sus logs.
La ejecución regular de estos procedimientos le permitirá mantener Dozzle en el servidor en un estado óptimo y reaccionar rápidamente a cualquier problema potencial.
Optimización y seguridad de Dozzle self-hosted
La implementación de Dozzle self-hosted en su VPS le otorga control total, pero también le impone la responsabilidad de su optimización y seguridad. Estos aspectos son críticos para un funcionamiento estable y protegido en un entorno de producción.
Mejores prácticas de seguridad para Dozzle.
Dado que Dozzle proporciona acceso a datos sensibles (los logs de sus aplicaciones), su seguridad debe ser una prioridad.
- Utilice HTTPS: Como ya hemos configurado, HTTPS (SSL/TLS) cifra todo el tráfico entre su navegador y Dozzle, evitando la interceptación de datos. Nunca utilice Dozzle por HTTP en producción.
- Reverse proxy con autenticación:
- Si utiliza Nginx, considere agregar autenticación HTTP básica (
auth_basic) o integrarlo con un sistema de autenticación más complejo (por ejemplo, OAuth2 Proxy). - Caddy también admite varios métodos de autenticación.
- Alternativamente, si ya tiene una conexión VPN a su VPS, puede hacer que Dozzle sea accesible solo a través de la VPN.
- Si utiliza Nginx, considere agregar autenticación HTTP básica (
- Autenticación básica de Dozzle: Si no utiliza un reverse proxy con su propia autenticación, habilite la autenticación básica integrada de Dozzle, agregando las variables de entorno en
docker-compose.yml:environment: DOZZLE_USERNAME: "your_secure_username" DOZZLE_PASSWORD: "your_strong_password"Utilice una contraseña compleja, no use la misma que para otros servicios o SSH.
- Restrinja el acceso al socket de Docker: Dozzle requiere acceso a
/var/run/docker.sock. Sin embargo, asegúrese de que solo los usuarios de confianza tengan acceso al grupodockeren su host, ya que esto es equivalente al acceso root. - Configure un firewall (UFW/firewalld):
- Permita el tráfico entrante solo en los puertos 80 (HTTP) y 443 (HTTPS) para Nginx/Caddy.
- Cierre el puerto 8080 (o cualquier otro puerto que Dozzle abra directamente) para que el acceso directo desde el exterior sea imposible.
Ejemplo para UFW:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw deny 8080/tcp # Si no quiere que Dozzle sea accesible directamente sudo ufw enable - Actualizaciones regulares: Como se mencionó anteriormente, actualice regularmente Dozzle y Docker Engine para obtener correcciones de seguridad.
- Privilegios mínimos: Dozzle se ejecuta con los privilegios mínimos necesarios. No le agregue derechos adicionales si no es necesario.
Optimización del rendimiento de Dozzle.
Aunque Dozzle es ligero, con un gran número de contenedores o un flujo muy intenso de logs, pueden ser necesarias algunas optimizaciones.
- Filtrado de logs:
- Utilice la variable de entorno
DOZZLE_FILTERpara excluir contenedores cuyos logs no necesite. Por ejemplo,DOZZLE_FILTER: "name!=monitoring_agent". - También puede usar
DOZZLE_GLOBAL_FILTERSpara aplicar un filtro predeterminado a todos los logs. - Utilice etiquetas de Docker (
labels) para filtrar contenedores, como se muestra en el ejemplodocker-compose.ymlpara el propio Dozzle (dozzle.exclude=true).
- Utilice la variable de entorno
- Limitación de recursos del contenedor Dozzle:
Si Dozzle comienza a consumir demasiados recursos (lo cual es poco probable), puede limitar su CPU y RAM en
docker-compose.yml:services: dozzle: # ... deploy: resources: limits: cpus: '0.5' # Limitar al 50% de un núcleo memory: 256M # Limitar a 256 MB de RAM reservations: cpus: '0.25' memory: 128MEsto evitará que Dozzle consuma recursos excesivamente si algo sale mal.
- Optimización de logs de aplicaciones:
Asegúrese de que sus aplicaciones no generen logs redundantes o demasiado "verbosos". Configure los niveles de logging en sus aplicaciones (por ejemplo, INFO, WARNING, ERROR) para reducir el volumen de datos transmitidos a Dozzle.
- Log Rotation para Docker:
Aunque Dozzle no almacena logs, Docker Engine guarda los logs de los contenedores por defecto. Si no configura la rotación de logs, pueden llenar el disco. Agregue la configuración de rotación de logs en
docker-compose.ymlpara sus contenedores (no para Dozzle, ya que Dozzle no genera logs voluminosos que necesiten rotación):services: my_app: # ... logging: driver: "json-file" options: max-size: "10m" max-file: "3"Esto limitará el tamaño del archivo de logs a 10 MB y solo almacenará los 3 archivos más recientes.
Al aplicar estas mejores prácticas, se asegurará de que su Dozzle en un VPS no solo sea funcional, sino también una herramienta segura y eficiente para el monitoreo de logs en su infraestructura.
¿Buscas un servidor que simplemente funcione?
Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.
Conclusiones
Dozzle en un VPS representa una solución potente e intuitiva para el monitoreo centralizado de logs de contenedores Docker en tiempo real. Su ligereza, la facilidad de instalación de Dozzle a través de Docker Compose y la posibilidad de una configuración segura mediante un reverse proxy y HTTPS lo convierten en una herramienta ideal para desarrolladores y administradores de sistemas que gestionan aplicaciones contenerizadas en servidores virtuales.
Para garantizar el máximo rendimiento, estabilidad y seguridad de su Dozzle self-hosted, se recomienda elegir VPS de alto rendimiento con NVMe SSD, que ofrece Valebyte.com. Dichos servidores asegurarán un procesamiento rápido de logs y un funcionamiento confiable de su infraestructura Docker.
¿Listo para elegir un servidor?
VPS y servidores dedicados en más de 72 países con activación instantánea y acceso root completo.
Empezar ahora →