X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fprivate%2Fmonitoring%2Fobjects_monitoring-1.nix;fp=modules%2Fprivate%2Fmonitoring%2Fobjects_monitoring-1.nix;h=1aebd262e37e8b7a68b70dbf0243d43dbc527be8;hb=5a61f6ad5164a735be26e016c59e72252ffb49b7;hp=2cba58e03179748048be801cc49865c3873f1943;hpb=ca367c14902ab1bf869976dc5dca52d07e308c15;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/private/monitoring/objects_monitoring-1.nix b/modules/private/monitoring/objects_monitoring-1.nix index 2cba58e..1aebd26 100644 --- a/modules/private/monitoring/objects_monitoring-1.nix +++ b/modules/private/monitoring/objects_monitoring-1.nix @@ -1,22 +1,24 @@ -{ config, pkgs, nodes, hostFQDN, emailCheck, ... }: +{ config, pkgs, nodes, hostFQDN, emailCheck, lib, ... }: let - to_eriomem_age_dependency = name: { - dependent_host_name = "eldiron.immae.eu"; - host_name = "eldiron.immae.eu"; - dependent_service_description = "Eriomem backup for ${name} is not too old"; - service_description = "Eriomem backup is up and not full"; - execution_failure_criteria = "u"; - notification_failure_criteria = "u"; - }; - to_eriomem_age = name: { - service_description = "Eriomem backup for ${name} is not too old"; - host_name = "eldiron.immae.eu"; - use = "external-service"; - check_command = ["check_eriomem_age" name]; - - check_interval = "120"; - notification_interval = "1440"; - }; + to_backup_age_dependency = name: profile: map (remote: + { + dependent_host_name = "eldiron.immae.eu"; + host_name = "eldiron.immae.eu"; + dependent_service_description = "${remote} backup for ${name} is not too old"; + service_description = "${remote} backup is up and not full"; + execution_failure_criteria = "u"; + notification_failure_criteria = "u"; + }) profile.remotes; + to_backup_age = name: profile: map (remote: + { + service_description = "${remote} backup for ${name} is not too old"; + host_name = "eldiron.immae.eu"; + use = "external-service"; + check_command = ["check_backup_${remote}_age" name]; + + check_interval = "120"; + notification_interval = "1440"; + }) profile.remotes; in { host = { @@ -111,10 +113,21 @@ in # Backup services { - service_description = "Eriomem backup is up and not full"; + 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"; + + servicegroups = "webstatus-backup"; + } + { + service_description = "ovh backup is up and not full"; host_name = "eldiron.immae.eu"; use = "external-service"; - check_command = "check_eriomem"; + check_command = "check_ok"; check_interval = "120"; notification_interval = "1440"; @@ -673,7 +686,7 @@ in _webstatus_name = "LDAP"; _webstatus_url = "ldap.immae.eu"; } - ] ++ map to_eriomem_age (builtins.attrNames nodes.eldiron.config.services.duplyBackup.profiles); + ] ++ lib.flatten (lib.mapAttrsToList to_backup_age nodes.eldiron.config.services.duplyBackup.profiles); contact = { telio-tortay = config.myEnv.monitoring.contacts.telio-tortay // { use = "generic-contact"; @@ -688,5 +701,5 @@ in telio-tortay = { alias = "Telio Tortay"; members = "immae"; }; tiboqorl = { alias = "Tiboqorl"; members = "immae"; }; }; - servicedependency = map to_eriomem_age_dependency (builtins.attrNames nodes.eldiron.config.services.duplyBackup.profiles); + servicedependency = lib.flatten (lib.mapAttrsToList to_backup_age_dependency nodes.eldiron.config.services.duplyBackup.profiles); }