Una de las formas más potentes de utilizar AlertHub es integrarlo en tus scripts ddel sistema. Ya sea que estés ejecutando copias de seguridad nocturnas, tareas cron o despliegues CI/CD, recibir una notificación cuando algo sale mal (o bien) es crucial.
En este tutorial, configuraremos un entorno de Linux para enviar alertas de manera segura utilizando variables de entorno.
1. Obtén tu Clave de Proyecto
Primero, necesitas las credenciales de tu proyecto:
- Ve a tu panel de AlertHub.
- Crea un nuevo Proyecto (o usa uno existente).
- Copia la Secret Key (generalmente comienza con
sk_...).
2. Configura la Variable de Entorno
Para no escribir tu clave secreta (hardcode) en cada script, es una buena práctica guardarla en una variable de entorno.
Abre tu terminal y ejecuta:
export ALERTHUB_KEY="tu_secret_key_aqui"
Para hacerlo permanente, agrega esa línea a tu archivo ~/.bashrc o ~/.zshrc.
3. Envía una Alerta con cURL
Ahora podemos usar curl para enviar una petición HTTP POST a la API de ingestión de AlertHub. Usaremos la variable $ALERTHUB_KEY que acabamos de definir.
Copia y pega este comando:
curl -X POST https://api.thealerthub.com/sendAlert \
-H "Content-Type: application/json" \
-d '{
"ah_key": "'"$ALERTHUB_KEY"'",
"ah_title": "Backup Completado",
"ah_description": "La copia de seguridad de la base de datos finalizó correctamente.",
"ah_level": "info",
"ah_source": "BackupScripts"
}'
¿Qué está pasando aquí?
-X POST: Indicamos que es una petición de tipo POST.-H "Content-Type:...": Le decimos al servidor que enviamos datos en formato JSON."ah_key": "'"$ALERTHUB_KEY"'": Aquí está el truco de bash. Usamos comillas dobles y simples para insertar el valor de la variable dentro del string JSON.
Bonus: Función Bash Avanzada
Para hacer esto aún más potente, puedes añadir esta función a tu .bashrc o .zshrc. Soporta flags (-t, -d, -l, -s), configuración interactiva y rotación de claves.
alerthub_alert() {
local title=""
local desc=""
local level="info"
local source="BashScript"
local change_key=false
# Parsear argumentos
while [[ "$#" -gt 0 ]]; do
case $1 in
-t) title="$2"; shift ;;
-d) desc="$2"; shift ;;
-l) level="$2"; shift ;;
-s) source="$2"; shift ;;
--change-project-key) change_key=true ;;
*) echo "Parámetro desconocido: $1"; return 1 ;;
esac
shift
done
# Chequear API Key o petición de cambio
if [[ "$change_key" == true ]] || [[ -z "$ALERTHUB_KEY" ]]; then
if [[ -z "$ALERTHUB_KEY" ]]; then
echo "ALERTHUB_KEY no encontrada."
fi
echo -n "Introduce tu Secret Key de AlertHub (Intro para cancelar): "
read -r input_key
if [[ -n "$input_key" ]]; then
export ALERTHUB_KEY="$input_key"
echo "✅ ALERTHUB_KEY guardada para esta sesión."
# Opcional: Preguntar para persistir
echo -n "¿Quieres guardarla en la config de tu shell? (y/n): "
read -r save_persist
if [[ "$save_persist" == "y" ]]; then
echo "export ALERTHUB_KEY=\"$input_key\"" >> ~/$(basename $SHELL)rc
echo "Guardado en ~/$(basename $SHELL)rc"
fi
elif [[ -z "$ALERTHUB_KEY" ]]; then
echo "❌ La clave es necesaria para enviar alertas. Saliendo."
return 1
fi
fi
# Salir si solo queríamos cambiar la clave
if [[ "$change_key" == true && -z "$title" ]]; then return 0; fi
# Validación
if [[ -z "$title" ]]; then
echo "Error: El título es obligatorio. Usa -t \"Mi Título\""
return 1
fi
# Enviar Petición
curl -s -X POST https://api.thealerthub.com/sendAlert \
-H "Content-Type: application/json" \
-d "{
\"ah_key\": \"$ALERTHUB_KEY\",
\"ah_title\": \"$title\",
\"ah_description\": \"$desc\",
\"ah_level\": \"$level\",
\"ah_source\": \"$source\"
}" > /dev/null
if [ $? -eq 0 ]; then
echo "¡Alerta enviada correctamente! 🚀"
else
echo "Fallo al enviar la alerta."
fi
}
Ejemplos de Uso
1. Verificar o Cambiar Clave:
alert --change-project-key
2. Enviar una alerta simple:
alert -t "Despliegue Finalizado"
3. Enviar una alerta crítica completa:
alert -t "Error de Base de Datos" -d "Timeout de conexión en 192.168.1.5" -l "critical"