61 lines
2.0 KiB
Nix
61 lines
2.0 KiB
Nix
{ config, pkgs, ... }:
|
|
|
|
let
|
|
smartd_notifier = pkgs.writeScript "smartd-notify.sh" ''
|
|
#!${pkgs.bash}/bin/bash
|
|
|
|
# 1. Send Technical Email to Admin
|
|
ADMIN_EMAIL="${config.numbus-server.mail.adminAddress}"
|
|
SUBJECT="Numbus Server Alert: $SMARTD_FAILTYPE on $SMARTD_DEVICE"
|
|
|
|
TECH_BODY="
|
|
SMARTD Alert Details:
|
|
Server owner: $OWNER_NAME
|
|
Device: $SMARTD_DEVICE
|
|
Type: $SMARTD_DEVICETYPE
|
|
Failure Type: $SMARTD_FAILTYPE
|
|
Message: $SMARTD_MESSAGE
|
|
|
|
Full Message:
|
|
$SMARTD_FULLMESSAGE
|
|
"
|
|
printf "Subject: [ADMIN] $SUBJECT\n\n$TECH_BODY" | /run/wrappers/bin/sendmail -t "$ADMIN_EMAIL"
|
|
|
|
# 2. Send Friendly Email to Owner
|
|
USER_EMAIL="${config.numbus-server.mail.userAddress}"
|
|
OWNER_NAME="${config.numbus-server.owner}"
|
|
|
|
FRIENDLY_BODY="Cher/Chère $OWNER_NAME,
|
|
|
|
Votre serveur a automatiquement détecté une panne matérielle de disque dur.
|
|
Ce genre de panne est tout à fait normal selon l'âge de votre matériel et n'entraîne
|
|
dans la grande majorité des cas aucune perte de données grâce au système de
|
|
stockage redondant préventif.
|
|
|
|
Votre administrateur a été notifié de cette panne. Il vous recontactera dans de très
|
|
brefs délais afin de procéder au remplacement, si nécessaire, du disque dur défaillant.
|
|
|
|
Merci de votre confiance,
|
|
L'équipe de support,
|
|
Numbus-Server."
|
|
|
|
printf "Subject: [Alerte] Défaillance matérielle sur votre serveur Numbus\n\n$FRIENDLY_BODY" | /run/wrappers/bin/sendmail -t "$USER_EMAIL"
|
|
'';
|
|
in
|
|
|
|
{
|
|
services.smartd = {
|
|
enable = true;
|
|
defaults.autodetected = "-a -o on -S on -s (S/../.././00|L/../../6/01) -n standby,q -M exec ${smartd_notifier}";
|
|
notifications = {
|
|
wall = {
|
|
enable = true;
|
|
};
|
|
mail = {
|
|
enable = true;
|
|
sender = config.numbus-server.mail.fromAddress;
|
|
recipient = "${config.numbus-server.mail.userAddress},${config.numbus-server.mail.adminAddress}";
|
|
};
|
|
};
|
|
};
|
|
} |