]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/monitoring/default.nix
Use nix expressions to build monitoring list
[perso/Immae/Config/Nix.git] / modules / private / monitoring / default.nix
index 6062abab2e1689e5c02eb57983ad84f0c49e5273..0259cbfbc7623d1ee6cad9c5b0acaf7553999780 100644 (file)
@@ -17,42 +17,26 @@ let
       pkgs.postgresql
     ]}
     '';
-  defaultObjects =
-    let specific_file = ./conf + "/specific_" + name + ".cfg";
+  toObjects = pkgs.callPackage ./to_objects.nix {};
+  commonConfig = {
+    eldiron = {
+      processWarn = "250"; processAlert = "400";
+      loadWarn = "8.0"; loadAlert = "10.0";
+    };
+    backup-2 = {
+      processWarn = "50"; processAlert = "60";
+      loadWarn = "1.0"; loadAlert = "2.0";
+    };
+  };
+  commonObjects = pkgs.callPackage ./objects_common.nix ({
+    inherit hostFQDN;
+    sudo = "/run/wrappers/bin/sudo";
+  } // builtins.getAttr name commonConfig);
+  hostObjects =
+    let
+      specific_file = ./. + "/objects_" + name + ".nix";
     in
-        builtins.readFile ./conf/local_services.cfg
-      + builtins.readFile ./conf/timeperiods.cfg
-      + builtins.readFile ./conf/services.cfg
-      + builtins.readFile ./conf/contacts.cfg
-      + builtins.readFile ./conf/hosts.cfg
-      + ''
-        define command {
-          command_line       ${myplugins}/send_nrdp.sh -u "$USER200$" -t "$USER201$" -H "$HOSTADDRESS$" -s "$SERVICEDESC$" -S "$SERVICESTATEID$" -o "$SERVICEOUTPUT$"
-          command_name       notify-master
-        }
-        define service {
-          service_description  No mdadm array is degraded
-          use                  local-service
-          check_command        check_command_output!${pkgs.mdadm}/bin/mdadm --monitor --scan -1!^$!-s 0 -r root
-        }
-
-        define service {
-          name                local-service
-          use                 generic-service
-          host_name           ${hostFQDN}
-          check_interval      5
-          max_check_attempts  4
-          register            0
-          retry_interval      1
-        }
-        define host {
-          host_name           ${hostFQDN}
-          alias               ${hostFQDN}
-          address             ${hostFQDN}
-          use                 linux-server
-        }
-        ''
-      + lib.strings.optionalString (builtins.pathExists specific_file) (builtins.readFile specific_file);
+      lib.attrsets.optionalAttrs (builtins.pathExists specific_file) (pkgs.callPackage specific_file {});
 in
 {
   options = {
@@ -122,7 +106,7 @@ in
         $USER200$=${myconfig.env.monitoring.status_url}
         $USER201$=${myconfig.env.monitoring.status_token}
       '';
-      objectDefs = defaultObjects;
+      objectDefs = toObjects commonObjects + toObjects hostObjects;
     };
   };
 }