← Tous les guides

Guide · NAS

Surveiller TrueNAS (SCALE / CORE) avec un dead man's switch

TrueNAS vous alerte quand un pool se dégrade ou qu'une tâche part en erreur. Il reste silencieux quand une tâche Cron, de réplication ou Cloud Sync cesse simplement de se déclencher, est désactivée ou supprimée, ou que la machine elle-même s'éteint. Un check-in à chaque exécution comble ce trou.

1. Créez un check

Créez un check dans Mortemain correspondant au planning de votre tâche plus une fenêtre de grâce, puis copiez son URL de ping.

2. Ajoutez une tâche Cron qui pingue à chaque exécution

Sur SCALE : System Settings → Advanced → Cron Jobs. Sur CORE : Tasks → Cron Jobs. Ajoutez une tâche avec le même planning que celle à surveiller, avec une commande qui pingue à la fin :

 Champ Command
curl -fsS -m 10 --retry 3 https://ping.mortemain.com/votre-uuid-de-check

Cochez Hide Standard Output et Hide Standard Error pour que TrueNAS ne vous e-maile pas à chaque succès silencieux. Cela prouve que la machine et cron sont vivants, pas encore que la sauvegarde elle-même a réussi.

3. Conditionnez au vrai résultat de la tâche (recommandé)

Pour une tâche de réplication ou Cloud Sync, déclenchez-la depuis la tâche cron avec midclt et attendez le résultat réel plutôt que de faire confiance à son propre planning. Basculez le planning intégré de la tâche en manuel pour qu'elle ne tourne plus que depuis ce script :

 /mnt/tank/scripts/truenas-ping.sh
#!/bin/sh
# Déclenche une tâche de réplication, attend, puis fait le check-in.
URL="https://ping.mortemain.com/votre-uuid-de-check"
TASK_ID=1   # Data Protection → Replication Tasks, id affiché sur la ligne de la tâche

curl -fsS -m 10 "$URL/start"

if midclt call -job replication.run "$TASK_ID" >/tmp/repl-last.log 2>&1; then
    curl -fsS -m 10 "$URL"
else
    curl -fsS -m 10 "$URL/fail"
fi

Enregistrez le script sur un dataset d'un pool de données, pas sous /root sur SCALE, pour qu'il survive aux mises à jour d'environnements de démarrage. Dirigez la commande de la tâche cron vers sh /mnt/tank/scripts/truenas-ping.sh. Remplacez replication.run par cloudsync.sync pour conditionner une tâche Cloud Sync de la même façon.

Vous préférez garder la tâche sur son propre planning ? Les tâches Cloud Sync exposent des champs Pre-Script et Post-Script sous Advanced Options : dirigez Pre-Script vers un appel à $URL/start et Post-Script vers $URL.

4. Testez

Lancez la tâche cron une fois, le check passe actif. Désactivez la tâche (ou débranchez la machine) et confirmez que l'alerte arrive une fois la fenêtre de grâce passée : exactement le mode de panne que l'alerting propre de TrueNAS ne peut pas voir.