]> git.immae.eu Git - perso/Immae/Config/Nix.git/commitdiff
Add e-mail relay monitoring for backup-2 and monitoring-1
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Fri, 17 Jan 2020 16:57:49 +0000 (17:57 +0100)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Fri, 17 Jan 2020 16:57:49 +0000 (17:57 +0100)
modules/private/environment.nix
modules/private/mail/postfix.nix
modules/private/monitoring/objects_backup-2.nix
modules/private/monitoring/objects_monitoring-1.nix
modules/private/monitoring/plugins/check_emails

index ffb61c50f4fac490608f0ff11927564539b81b2c..c4c32c8e34a32d6392ac920eb8e80f10baa0fb1d 100644 (file)
@@ -493,8 +493,8 @@ in
                 port = mkOption { type = nullOr str; default = null; description = "Port to connect to ssh"; };
                 login = mkOption { type = nullOr str; default = null; description = "Login to connect to ssh"; };
                 targets = mkOption { type = listOf str; description = "Hosts to send E-mails to"; };
-                mail_address = mkOption { type = str; description = "E-mail recipient part to send e-mail to"; };
-                mail_domain = mkOption { type = str; description = "E-mail domain part to send e-mail to"; };
+                mail_address = mkOption { type = nullOr str; default = null; description = "E-mail recipient part to send e-mail to"; };
+                mail_domain = mkOption { type = nullOr str; default = null; description = "E-mail domain part to send e-mail to"; };
               };
             });
           };
index 51f4de746b10ddf62b3327e9922cbdf347b22018..2af184907ee918c27585c0192a074179b59a9cf2 100644 (file)
           );
         };
         sasl_access = {
-          host_sender_login = pkgs.writeText "host-sender-login"
-            (builtins.concatStringsSep "\n" (lib.flatten (lib.attrsets.mapAttrsToList
-            (n: v: (map (e: "${e}  ${n}@immae.eu") v.emails)) config.myEnv.servers)));
+          host_sender_login = with lib.attrsets; let
+            addresses = zipAttrs (lib.flatten (mapAttrsToList
+              (n: v: (map (e: { "${e}" = "${n}@immae.eu"; }) v.emails)) config.myEnv.servers));
+            joined = builtins.concatStringsSep ",";
+          in pkgs.writeText "host-sender-login"
+            (builtins.concatStringsSep "\n" (mapAttrsToList (n: v: "${n} ${joined v}") addresses));
           host_dummy_mailboxes = pkgs.writeText "host-virtual-mailbox"
             (builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (n: v: "${n}@immae.eu  dummy") nodes));
         };
index 52289ddcbc4acc7780f4c39f93bb8729149d4a88..927cc25141cf36896d93ae57c219a21807d09ab3 100644 (file)
@@ -1,4 +1,4 @@
-{ config, pkgs, lib, hostFQDN, ... }:
+{ config, pkgs, lib, hostFQDN, emailCheck, ... }:
 let
   defaultPassiveInfo = {
     filter = lib.attrsets.filterAttrs
@@ -12,6 +12,9 @@ let
 in
 {
   service = [
+    (emailCheck "backup-2" hostFQDN // {
+      passiveInfo = defaultPassiveInfo // { servicegroups = "webstatus-email"; freshness_threshold = "1350"; };
+    })
     {
       passiveInfo = defaultPassiveInfo;
       service_description = "Size on /backup2 partition";
index f69d3ffb37268c8039b17e155d3859e13eb74009..3200d5c3f9fa61153100be4591b5b9d07cacbdfa 100644 (file)
@@ -1,4 +1,4 @@
-{ config, pkgs, ... }:
+{ config, pkgs, hostFQDN, emailCheck, ... }:
 {
   host = {
     # Dummy host for testing
@@ -22,6 +22,8 @@
     #   check_command = "check_critical";
     # }
 
+    (emailCheck "monitoring-1" hostFQDN)
+
     {
       service_description = "ftp has access to database for authentication";
       host_name = "eldiron.immae.eu";
index 0ee3e4e698052a3e7c7ed31f95098299ee82a33a..5a8453e70f7aa82b182e54c4c77a2724728ca15d 100755 (executable)
@@ -37,7 +37,7 @@ my @emails_to_expect = split(/,/, $opts{'f'});
 
 my $cmd_result;
 if ($local_directory ne '') {
-  if (! -d $local_directory) {
+  if (@emails_to_expect and ! -d $local_directory) {
     print "Emails $host UNKNOWN - Could not find local directory";
     exit($STATE_UNKNOWN);
   }