panacea/modules/monitoring.nix

64 lines
1.3 KiB
Nix

{
config,
lib,
pkgs,
...
}:
with pkgs;
let
sender = "akasroua@disroot.org";
recipient = "akasroua+smart@disroot.org";
in
{
# Notify when a disk starts going haywire
services.smartd = {
enable = true;
defaults.monitored = "-H -f -t -C 197 -U 198 -d nvme";
autodetect = false;
devices = [ { device = "/dev/nvme0"; } ];
notifications.mail = {
enable = true;
sender = sender;
recipient = recipient;
mailer = "${msmtp}/bin/msmtp -t --read-envelope-from";
};
};
# Notify about zpool problems
services.zfs.zed = {
enableMail = false;
settings = {
ZED_EMAIL_ADDR = [ "root" ];
ZED_EMAIL_PROG = "${msmtp}/bin/msmtp";
ZED_EMAIL_OPTS = "-s '@SUBJECT@' @ADDRESS@";
};
};
# HACK Use an alias to use msmtp instead of the ZED mailer
environment.etc.aliases.text = ''
root: ${recipient}
'';
# Set up msmtp as notifier
programs.msmtp = {
enable = true;
defaults = {
auth = true;
aliases = "/etc/aliases";
port = 587;
tls = true;
};
accounts = {
default = {
host = "disroot.org";
user = "akasroua@disroot.org";
passwordeval = "${coreutils}/bin/cat ${config.age.secrets.msmtp.path}";
};
};
};
}