Heartbeats
Monitoriza la ejecución de tus cronjobs, backups y scripts programados. Alertas automáticas por Telegram, Discord o Email si algo falla.
¿Qué es un heartbeat?
Un heartbeat es una señal HTTP que tu script envía a SecuryBlack cuando termina. Si esa señal no llega en el intervalo configurado, recibes una alerta inmediata.
Es ideal para monitorizar:
- Backups programados
- Cronjobs críticos
- Scripts de mantenimiento
- Trabajos batch
- Tareas asincrónicas
¿Cómo funciona?
- 1
Creas un heartbeat en SecuryBlack
Define el nombre, intervalo (cron expression) y acciones en caso de fallo
- 2
Recibes una URL única
Algo como:
https://api.securyblack.com/heartbeats/ping/TU_PING_KEY - 3
Tu script la llama al terminar
Añade una línea de curl al final de tu script:
curl https://api.securyblack.com/heartbeats/ping/TU_PING_KEY - 4
SecuryBlack verifica que el ping llega a tiempo
Si no llega dentro del intervalo configurado, envía una alerta
Crear un heartbeat
- 1
Ve a la sección de Heartbeats
En tu dashboard, busca "Heartbeats"
- 2
Haz clic en "Nuevo Heartbeat"
Introduce un nombre descriptivo
- 3
Configura el intervalo
Usando cron expressions o presets (cada hora, cada día, etc.)
- 4
Configura alertas
Email, Discord, Telegram, Slack, etc.
- 5
Copia la URL
Úsala en tu script
Cron Expressions
Configura cuándo esperas que tu script se ejecute usando expresiones cron estándar (UTC):
0 2 * * *- Cada día a las 2:00 AM UTC
0 */6 * * *- Cada 6 horas
0 0 * * 0- Cada domingo a las 00:00 UTC
Usa crontab.guru para generar tus expresiones cron.
Ejemplos de uso
Backup diario
Script bash que ejecuta un backup y notifica a SecuryBlack:
#!/bin/bash
# Backup script
# Tu lógica de backup aquí
mysqldump -u root -p mydb > /backups/mydb.sql
# Notificar a SecuryBlack que el backup completó
curl -s https://api.securyblack.com/heartbeats/ping/TU_PING_KEY
echo "Backup completado"
Script Python con manejo de errores
import subprocess
import requests
try:
# Tu lógica aquí
result = subprocess.run(['python', 'sync_data.py'], check=True)
# Solo notificar si todo fue bien
requests.get('https://api.securyblack.com/heartbeats/ping/TU_PING_KEY')
except Exception as e:
print(f"Error: {e}")
# No enviar ping si hay error
# SecuryBlack detectará que no llegó el heartbeat
Opciones avanzadas
- Grace period
- Tiempo adicional después del intervalo esperado antes de enviar una alerta. Útil para scripts que ocasionalmente se retrasan.
- Historial de 90 días
- Visualiza todos los heartbeats recibidos en los últimos 90 días para detectar patrones de fallos.
- Rotar ping_key
- Regenera la URL del heartbeat si crees que ha sido comprometida.
Mejores prácticas
- Usa heartbeats para cronjobs críticos (backups, sincronizaciones, etc.)
- Coloca el curl al FINAL del script, solo si todo salió bien
- Usa cron expressions precisas que reflejen cuándo realmente esperas que se ejecute
- Revisa el historial regularmente para detectar anomalías
- No uses heartbeats para servicios 24/7 — usa uptime monitoring para eso