feat(upsmon): Send mails to isp team

This commit is contained in:
catvayor 2024-04-20 15:06:49 +02:00 committed by thubrecht
parent ee81052766
commit 4d16839a10

View file

@ -18,12 +18,30 @@
let
cmdScript = pkgs.writeShellApplication {
name = "upssched-cmd.sh";
runtimeInputs = with pkgs; [ systemd ];
runtimeInputs = with pkgs; [
systemd
msmtp
];
text = ''
case $1 in
shutdown) shutdown now
# TODO : warn
# TODO : warn & log on unknown cmd
shutdown-low) MEANING="Battery is low, shutting down.";;
shutdown-batt) MEANING="On battery for 15min, shutting down.";;
warn-batt) MEANING="Power line faillure, going on battery.";;
warn-comm) MEANING="Communication with the UPS was broken.";;
warn-bypass) MEANING="The UPS is not protecting the server, power line failure would kill $HOSTNAME instantly.";;
*) MEANING="Signal unknown, check configuration.";;
esac
sendmail -i -t <<ERRMAIL
To: fai@dgnum.eu
Subject: [$HOSTNAME] Battery signal: $1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=UTF-8
$MEANING
ERRMAIL
case $1 in
shutdown-*) shutdown 20s # let 20s to send the email
esac
'';
};
@ -31,10 +49,13 @@
CMDSCRIPT ${cmdScript}/bin/upssched-cmd.sh
PIPEFN /var/state/ups/upssched/upssched.pipe
LOCKFN /var/state/ups/upssched/upssched.lock
AT LOWBATT * EXECUTE shutdown
AT ONBATT * START-TIMER shutdown 900
AT ONLINE * CANCEL-TIMER shutdown
# TODO : warn admins at COMMBAD NOCOMM BYPASS (and maybe at ONBATT)
AT LOWBATT * EXECUTE shutdown-low
AT ONBATT * EXECUTE warn-batt
AT ONBATT * START-TIMER shutdown-batt 900
AT ONLINE * CANCEL-TIMER shutdown-batt
AT COMMBAD * EXECUTE warn-comm
AT NOCOMM * EXECUTE warn-comm
AT BYPASS * EXECUTE warn-bypass
'';
in
(pkgs.writeTextFile {