Hoy veremos cómo instalar Healthchecks en Synology. Healthchecks es una aplicación de código abierto que monitoriza tareas programadas (cron jobs) mediante pings enviados a través de peticiones HTTP o a cuentas de correo electrónico.

Healthchecks dispone de un plan gratuito y varias opciones de pago en su web oficial (https://healthchecks.io/). Al ser software de código abierto, lo desplegaremos en nuestro Synology mediante un contenedor Docker; aunque también es perfectamente instalable en cualquier distribución Linux.

Tabla de contenidos
Cómo funciona Healthchecks
Por cada dispositivo o tarea programa que deseemos monitorizar se crea un «check», este esta compuesto por:
- Dirección URI única: https://hc-ping.com/7666df5a-9c3c-468c-82df-0ae71cd5b0f3 (Opción recomendada)
- Dirección correo electrónico exclusivo: 7666df5a-9c3c-468c-82df-0ae71cd5b0f3@hc-ping.com
A cada check se le indica una fecha-hora específicas o un intervalo de repetición personalizado de cuando deben recibir el ping o correo:
- Si llega dentro del plazo previsto, el check permanece en estado en verde.
- Si el check no se recibe en el tiempo esperado, se dispara una alerta inmediata y su estado cambia a rojo.
Basta con que se envíe uno de los dos métodos para mantener su monitorización en verde.
Las alertas pueden enviarse a: correo electrónico, Microsoft Teams, Slack y mucho más…
Los checks se agrupan en proyectos. Un proyecto puede representar a un cliente —incluyendo todos sus dispositivos y la monitorización de sus copias—, o bien una agrupación de NAS, o incluso dedicarse exclusivamente a las copias realizadas con Hyper Backup. Vosotros decidís cómo configurarlo según vuestras necesidades.

A diferencia de herramientas más sofisticadas como Zabbix, Centreon o Nagios, Healthchecks apuesta por un modelo ligero y muy fácil de desplegar. Su funcionamiento se basa en el mecanismo de “dead man’s switch”: si recibe las notificaciones con normalidad, todo va bien; pero en cuanto deja de recibirlas en el tiempo esperado, se generan las alertas correspondientes.
Qué podemos monitorizar con Healthchecks
Con Healthchecks puedes monitorizar cualquier equipo o servicio capaz de hacer un ping HTTP o enviar un correo. Por ejemplo:
- Estaciones de trabajo y servidores: Windows, Linux o macOS, físicos o virtuales.
- NAS: QNAP, Synology, etc.
- Copias de seguridad: HyperBackup, Active Backup for Microsoft 365, Veeam Backup, y otros.
- Y mucho más..
Dispositivos
Para dispositivos basta con programar una tarea que envie el ping HTTP usando wget.
wget URI-UNICA -T 10 -t 5 -O /dev/null
Copias de seguridad
En el caso de las copias de seguridad, es necesario un script que valide el resultado del backup y, según el estado, envíe el ping o no, o que lo envie con los fallos como se muestra en la imagen.
Al usar el protocolo HTTP, es posible enviar datos adicionales. Por ejemplo: qué copias se han realizado, cuáles han fallado o la hora exacta de ejecución.

Depúes de toda esta teoria pero creo que necesario pasamos a instalar healthchecks en un contenedor docker.
Requisitos previos para instalar Healthchecks en Synology
Necesitamos cumplir varios requisitos antes de continuar al siguiente punto:
- Abrir puerto 443 TCP del Router (para recibir los ping HTTP)
- Tener un DDNS de Synology y un certificado Wilcard para este, mira este post si aún no lo tienes. Esto es necesario porque usaremos el subdominio del DDNS, en mi caso: healthchecks.labsmac-n1.synology.me y tiene que estar protegido por el certificado.
- Si tienes activo el cortafuegos de Synology, crea una regla para los contenedores docker.
- Portainer, al desplegar este docker usando portainer, necesitarás instalarlo. Aquí un post de cómo hacerlo
- Cuenta de correo Gmail y contraseña de aplicación. Necesario para enviar los correos cuando algo falla. Aunque si tienes tu propio servidor de correo, puedes usar los datos que tengas.
- Saber el UID y GID del usuario administrador del NAS. Para la mayoría el valor de UID es 1026 y para GID 100, para asegurarte compruebalo con el comando id conectado desde SSH.

Desplegar Healthchecks en Synology usando Portainer
Crear regla Proxy Inverso para Healthchecks
Para crear la regla de Proxy Inverso vamos a Panel de Control > Portal de inicio de sesión > Avanzado > Proxy Inverso y Crear.
Establecemos lo siguiente y clicamos en Guardar.

Ahora clicamos en Encabezado personalizado > Crear > WebSocket.
Automáticamente se crearán dos lineas, luego clicamos en Guardar.

Crear carpeta para el docker Healthchecks
Dentro de la carpeta de docker de Synolgy, creamos la carpeta healthchecks y dos subcarpetas, data y db.

Crear docker Healthchecks con Portainer
Finalmente crearemos el docker dentro Portainer, clicamos en Stacks y luego en Add stack. Establecemos un nombre para nuestro docker y pegamos el siguiente codigo en la que tienes que personalizar con tus datos:
- user: 1026:100
- SITE_NAME: Nombre para el sitio
- SITE_ROOT: https://healthchecks.ddns.synology.me
- DEFAULT_FROM_EMAIL: tuCorreo@correo.com
- EMAIL_HOST: smtp.gmail.com (si usas gmail usa este valor, sino usa tu servidor smtp)
- EMAIL_HOST_USER: tuCorreo@correo.com
- EMAIL_HOST_PASSWORD: Contraseña de aplicación o contraseña de correo
services:
db:
image: postgres:16
container_name: Healthchecks-DB
hostname: healthchecks-db
mem_limit: 512m
cpu_shares: 768
security_opt:
- no-new-privileges:true
healthcheck:
test: ["CMD", "pg_isready", "-q", "-d", "healthchecks", "-U", "hcuser"]
timeout: 45s
interval: 10s
retries: 10
volumes:
- /volume1/docker/healthchecks/db:/var/lib/postgresql/data:rw
environment:
POSTGRES_DB: healthchecks
POSTGRES_USER: hcuser
POSTGRES_PASSWORD: hcpass
restart: on-failure:5
healthchecks:
image: healthchecks/healthchecks:latest
command: bash -c 'while !</dev/tcp/healthchecks-db/5432; do sleep 1; done; uwsgi /opt/healthchecks/docker/uwsgi.ini'
container_name: Healthchecks
hostname: healthchecks
mem_limit: 4g
cpu_shares: 768
security_opt:
- no-new-privileges:true
read_only: true
user: 1026:100
ports:
- 8357:8000
volumes:
- /volume1/docker/healthchecks/data:/data:rw
environment:
DB: postgres
DB_HOST: healthchecks-db
DB_PORT: 5432
DB_NAME: healthchecks
DB_USER: hcuser
DB_PASSWORD: hcpass
DEBUG: 'False'
REGISTRATION_OPEN: 'True'
SITE_NAME: NombreDelSitio
SITE_ROOT: https://healthchecks.ddns.synology.me
SECRET_KEY: 76JNTas6KDh5H85UyrcJ%9@x3&y%:$oNj35xm>AS
DEFAULT_FROM_EMAIL: tuCorreo@correo.com
EMAIL_HOST: smtp.gmail.com
EMAIL_HOST_USER: tuCorreo@correo.com
EMAIL_HOST_PASSWORD: aaaa bbbb cccc dddd
EMAIL_PORT: 587
EMAIL_USE_TLS: 'True'
EMAIL_USE_SSL: 'False'
EMAIL_USE_VERIFICATION: 'True'
restart: on-failure:5
depends_on:
db:
condition: service_healthy
Una vez que hayas revisado bien, le damos a Deploy y esperamos a que finalice.

Si hemos hecho todo bien (sé que son muchas cosas xD), los dos contenedores: healthchecks y healthchecks-db tienen que estar en verde.

Ingresar a Healthchecks y creación de la cuenta
Ahora si ingresamos a nuestra web con el subdominio personalizado, debe cargar desde la LAN e Internet. En mi caso:
https://healthchecks.labsmac-n1.synology.me/

Para crear la cuenta clicamos en Sign Up, escribimos nuestro correo y luego a Email Me a Link. Nos llegará un correo para su creación.

Los correos de creación, restablecimiento y todo lo demás se enviarán desde el correo que configuramos en el Docker.

Al clicar en Log In. Se mostrará automáticamente un Proyecto generado y un ping llamado «My First Check»

Deshabilitar registro de cuentas
Si no deshabilitamos el registro de cuentas cualquiera podrá crearse una, por lo que debemos cerrar esto una vez hayamos creado todas las cuentas.
¿Cómo lo hacemos? Volvemos al stack de Portainer y clicamos en el Editor, cambiamos la linea de:
REGISTRATION_OPEN: 'True'
a
REGISTRATION_OPEN: 'False'
Luego clicamos en Update the stack para actualizar el docker. Una vez que los dos contenedores vuelven a verde, regresamos a la página y nos encontramos con una diferencia: ya no se permite la creación de cuentas.

Y esto es todo por hoy. Ha sido un día intenso preparando este tutorial, y espero que el proceso de instalar Healthchecks en Synology usando Portainer les haya resultado claro y útil.
Healthchecks es una herramienta extremadamente potente: en los próximos posts abordaremos la configuración inicial, la creación de proyectos, la activación de MFA y, más adelante, la programación de tareas para monitorizar vuestros NAS Synology y sus copias de seguridad.
Si te ha gustado el post me ayudarías mucho con una contribución para continuar con este proyecto 😀
Dona aquí: https://ko-fi.com/labsmac