]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/monitoring/objects_monitoring-1.nix
Add monitoring for quatresaisons
[perso/Immae/Config/Nix.git] / modules / private / monitoring / objects_monitoring-1.nix
index 1aebd262e37e8b7a68b70dbf0243d43dbc527be8..0e7d9dfd1205e491d3d17d09ac5e02be8a679564 100644 (file)
@@ -1,5 +1,6 @@
 { config, pkgs, nodes, hostFQDN, emailCheck, lib, ... }:
 let
+  to_resource = func: cfg: lib.flatten (lib.optionals cfg.enable (lib.mapAttrsToList func cfg.profiles));
   to_backup_age_dependency = name: profile: map (remote:
     {
       dependent_host_name = "eldiron.immae.eu";
@@ -21,6 +22,7 @@ let
     }) profile.remotes;
 in
 {
+  activatedPlugins = [ "dns" "ftp" "git" "http" "imap" "ovh" "tcp" ];
   host = {
     # Dummy host for testing
     # "dummy-host" = {
@@ -112,17 +114,17 @@ in
     }
 
     # Backup services
-    {
-      service_description = "eriomem backup is up and not full";
-      host_name = "eldiron.immae.eu";
-      use = "external-service";
-      check_command = "check_backup_eriomem";
+    {
+      service_description = "eriomem backup is up and not full";
+      host_name = "eldiron.immae.eu";
+      use = "external-service";
+      check_command = "check_backup_eriomem";
 
-      check_interval = "120";
-      notification_interval = "1440";
+      check_interval = "120";
+      notification_interval = "1440";
 
-      servicegroups = "webstatus-backup";
-    }
+      servicegroups = "webstatus-backup";
+    }
     {
       service_description = "ovh backup is up and not full";
       host_name = "eldiron.immae.eu";
@@ -369,6 +371,17 @@ in
       _webstatus_url = "https://cloud.immae.eu";
     }
 
+    {
+      service_description = "nextcloud website is running on nextcloud.4c.salle-s.org";
+      host_name = "quatresaisons.immae.eu";
+      use = "external-web-service";
+      check_command = ["check_https" "nextcloud.4c.salle-s.org" "/" "a safe home for all your data"];
+
+      servicegroups = "webstatus-webapps";
+      _webstatus_name = "Nextcloud";
+      _webstatus_url = "https://nextcloud.4c.salle-s.org";
+    }
+
     {
       service_description = "davical website is running on dav.immae.eu";
       host_name = "eldiron.immae.eu";
@@ -494,7 +507,7 @@ in
       service_description = "gitweb website is running on git.immae.eu";
       host_name = "eldiron.immae.eu";
       use = "external-web-service";
-      check_command = ["check_https" "git.immae.eu" "/" "git web interface"];
+      check_command = ["check_https" "git.immae.eu" "/cgit" "<title>Immae’s git"];
 
       servicegroups = "webstatus-webapps";
       _webstatus_name = "Git";
@@ -686,7 +699,26 @@ in
       _webstatus_name = "LDAP";
       _webstatus_url = "ldap.immae.eu";
     }
-  ] ++ lib.flatten (lib.mapAttrsToList to_backup_age nodes.eldiron.config.services.duplyBackup.profiles);
+
+    # Tiboqorl
+    {
+      service_description = "Cyllene support page is running";
+      host_name = "tiboqorl.fr";
+      use = "external-web-service";
+      contact_groups = "tiboqorl";
+      check_command = [ "check_https" "sc.groupe-cyllene.com" "/" "<title>Support Client Cyllene" ];
+      _webstatus_namespace = "tiboqorl";
+    }
+
+    {
+      service_description = "Origny page is running";
+      host_name = "tiboqorl.fr";
+      use = "external-web-service";
+      contact_groups = "tiboqorl";
+      check_command = [ "check_https" "origny.tiboqorl.fr" "/" "<title>Home Assistant" ];
+      _webstatus_namespace = "tiboqorl";
+    }
+  ] ++ to_resource to_backup_age nodes.eldiron.config.services.duplyBackup;
   contact = {
     telio-tortay = config.myEnv.monitoring.contacts.telio-tortay // {
       use = "generic-contact";
@@ -701,5 +733,5 @@ in
     telio-tortay = { alias = "Telio Tortay"; members = "immae"; };
     tiboqorl = { alias = "Tiboqorl"; members = "immae"; };
   };
-  servicedependency = lib.flatten (lib.mapAttrsToList to_backup_age_dependency nodes.eldiron.config.services.duplyBackup.profiles);
+  servicedependency = to_resource to_backup_age_dependency nodes.eldiron.config.services.duplyBackup;
 }