Cómo instalar Healthchecks en Docker - Monitoreo de Cron Jobs en Docker

Healthchecks | Monitoring | Self-Hosted | Docker

Healthchecks en Docker: Monitoreo inteligente de tareas programadas

Asegúrate de que tus cron jobs y tareas automatizadas se ejecuten correctamente. Recibe alertas instantáneas cuando un proceso falle o no se inicie a tiempo.

¿Qué es Healthchecks?


Healthchecks es un servicio de monitoreo de tareas programadas (cron jobs)
. A diferencia de los monitores tradicionales que verifican si un servidor está "vivo", Health checks espera recibir un "ping" (una solicitud HTTP o un correo) de tu tarea. Si el ping no llega en el tiempo esperado, el sistema dispara una alerta.

En Docker: Healthchecks se despliega fácilmente mediante Docker Compose, integrando la aplicación con una base de datos PostgreSQL. Es la solución ideal para evitar el "silencio" de los scripts que fallan sin avisar.

Ventaja principal: Monitoreo pasivo. No necesitas que Healthchecks acceda a tu servidor; es tu servidor el que avisa que ha terminado su tarea. Esto es mucho más seguro y eficiente para infraestructuras distribuidas.

Características principales

Monitoreo de Cron Jobs

Sabe exactamente cuándo una tarea programada no se ejecutó.

Sencillo sistema de Pings

Solo añade una línea de curl al final de tu script para avisar que terminó.

Alertas Multi-canal

Notificaciones vía Email, Slack, Discord, Telegram y más.

Propiedad de Datos

Tus registros de ejecución permanecen en tu propio servidor.

Sin Costes por Uso

Sin límites de checks ni cargos mensuales por usuario.

Interfaz Intuitiva

Panel visual para ver el estado de todos tus procesos de un vistazo.

Soporte PostgreSQL

Almacenamiento robusto y escalable para tus registros de salud.

Configuración Flexible

Ajusta los periodos de gracia y los tiempos de espera por cada check.

Privacidad Total

Cumple con normativas estrictas al no compartir datos con terceros.

Despliegue Rápido

Listo para funcionar en minutos usando Docker Compose.

Open Source

Código abierto, auditable y extensible por la comunidad.

Fácil Integración

Compatible con cualquier lenguaje que pueda hacer una solicitud HTTP.

Requisitos del sistema

  • Docker y Docker Compose instalados
  • 1 GB de RAM (recomendado)
  • 2 GB de disco para la base de datos y logs
  • Puerto 8000 disponible (configurable)
  • Acceso a internet (solo para configurar notificaciones externas)

Instalación rápida con Docker Compose

Paso 1: Crear el archivo docker-compose.yml

services: healthchecks: image: healthchecks/healthchecks:latest environment: DB: postgres DB_HOST: healthchecks-db DB_NAME: hc DB_PASSWORD: tu_password_seguro DB_USER: postgres SECRET_KEY: genera_una_clave_larga_y_aleatoria SITE_ROOT: http://localhost:8000 ports: - "8000:8000" restart: always depends_on: - healthchecks-db healthchecks-db: image: postgres:12 environment: POSTGRES_DB: hc POSTGRES_USER: postgres POSTGRES_PASSWORD: tu_password_seguro volumes: - hc-db-data:/var/lib/postgresql/data volumes: hc-db-data: {}

Paso 2: Desplegar el servicio

docker compose up -d

Paso 3: Acceder al panel

Abre en tu navegador: http://localhost:8000

Crea tu cuenta de administrador y comienza a configurar tus primeros checks.

Tip: Asegúrate de que la SECRET_KEY sea robusta y única para garantizar la seguridad de tus tokens de ping.

Configuración avanzada

Configuración de HTTPS con Caddy

healthchecks.tudominio.com { reverse_proxy localhost:8000 }

Ajuste de variables de entorno

| Variable | Descripción | |-------------------|----------------------------------------------------| | SITE_ROOT | URL pública de tu instancia (ej. https://hc.com) | | DB_PASSWORD | Contraseña de la base de datos Postgres | | SECRET_KEY | Clave para firmar sesiones y tokens | | DEBUG | Activar modo debug para resolución de problemas |

Mantenimiento de la Base de Datos

Para realizar un backup de tus checks y configuraciones:

docker compose exec healthchecks-db pg_dump -U postgres hc > backup_hc.sql

Primeros pasos: Tu primer check

1. Crear el Check en la Web

  1. Crea un nuevo check llamado "Backup Diario"
  2. Define la periodicidad (ej. cada 24 horas)
  3. Configura el "periodo de gracia" (tiempo extra antes de alertar)
  4. Copia la URL única (ping URL) que te proporciona el sistema

2. Configurar la tarea en tu servidor

Añade el ping al final de tu script o en tu crontab:

# Ejemplo en un script bash /usr/bin/my_backup_script.sh && curl -fsS -m 10 --retry 5 https://hc.tudominio.com/ping/tu_id_unico

3. Probar la notificación

  1. Crea un canal de notificación (ej. Telegram o Discord)
  2. Asocia el canal a tu check
  3. Espera a que el tiempo expire o fuerza un fallo para recibir la alerta

Casos de uso comunes

  • Backups de Base de Datos: Recibe un aviso si el backup nocturno falló o no se ejecutó.
  • Sincronización de Archivos: Monitorea que la tarea de rsync entre servidores haya terminado correctamente.
  • Limpieza de Temporales: Asegúrate de que los scripts de limpieza de logs se estén ejecutando.
  • Validación de APIs: Ejecuta un script que valide la respuesta de una API externa y envíe un ping si todo está OK.
  • Tareas de ETL: Verifica que los procesos de carga de datos en el Data Warehouse se completen a tiempo.
  • Renovación de Certificados: Monitorea que la renovación de Let's Encrypt se haya procesado.

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.