feat(ups): monitoring de l'onduleur #97

Merged
thubrecht merged 6 commits from lbailly/infrastructure:ups into main 2024-04-21 23:20:24 +02:00
Showing only changes of commit b8d3b34122 - Show all commits

View file

@ -1,4 +1,4 @@
# { pkgs, ... }: { pkgs, ... }:
{ {
power.ups = { power.ups = {
enable = true; enable = true;
@ -7,17 +7,61 @@
port = "auto"; port = "auto";
}; };
upsmon.enable = false; upsmon.enable = false;
# users."eatonMon" = { users."eatonMon" = {
# passwordFile = (pkgs.writeTextFile { passwordFile =
# name = "pass"; (pkgs.writeTextFile {
# text = "YFEAee2%9PuPcEKf$7vW$3a&wdvNJME%UkP2Z~RVkk4ZaQHYW^"; name = "pass";
# }).outPath; text = "YFEAee2%9PuPcEKf$7vW$3a&wdvNJME%UkP2Z~RVkk4ZaQHYW^";
# upsmon = "primary"; }).outPath;
# }; upsmon = "primary";
# upsmon.monitor."eaton" = { };
# user = "eatonMon"; upsmon.monitor."eaton" = {
# }; user = "eatonMon";
};
schedulerRules =
let
cmdScript = pkgs.writeShellApplication {
name = "upssched-cmd.sh";
runtimeInputs = with pkgs; [ systemd ];
text = ''
case $1 in
shutdown) shutdown now
# TODO : warn
# TODO : warn & log on unknown cmd
esac
'';
};
rules = ''
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)
'';
in
(pkgs.writeTextFile {
name = "upssched.conf";
text = rules;
}).outPath;
}; };
systemd.tmpfiles.settings."10-upsmon" =
let
root = {
user = "root";
group = "root";
mode = "0600";
};
in
{
"/var/state/ups/upssched".d = root // {
mode = "0700";
};
"/var/state/ups/upssched/upssched.pipe".p = root;
};
services.prometheus.exporters.nut = { services.prometheus.exporters.nut = {
enable = true; enable = true;
listenAddress = "100.80.255.180"; listenAddress = "100.80.255.180";