diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2020-07-16 01:10:17 +0200 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2020-07-16 01:10:17 +0200 |
commit | 5a61f6ad5164a735be26e016c59e72252ffb49b7 (patch) | |
tree | 6acc3c8199d7f25c039c6c6686005436d1fb49d7 /modules/private/monitoring/objects_monitoring-1.nix | |
parent | ca367c14902ab1bf869976dc5dca52d07e308c15 (diff) | |
download | Nix-5a61f6ad5164a735be26e016c59e72252ffb49b7.tar.gz Nix-5a61f6ad5164a735be26e016c59e72252ffb49b7.tar.zst Nix-5a61f6ad5164a735be26e016c59e72252ffb49b7.zip |
Add alternate cloud storage for daily backups
Diffstat (limited to 'modules/private/monitoring/objects_monitoring-1.nix')
-rw-r--r-- | modules/private/monitoring/objects_monitoring-1.nix | 57 |
1 files changed, 35 insertions, 22 deletions
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 @@ | |||
1 | { config, pkgs, nodes, hostFQDN, emailCheck, ... }: | 1 | { config, pkgs, nodes, hostFQDN, emailCheck, lib, ... }: |
2 | let | 2 | let |
3 | to_eriomem_age_dependency = name: { | 3 | to_backup_age_dependency = name: profile: map (remote: |
4 | dependent_host_name = "eldiron.immae.eu"; | 4 | { |
5 | host_name = "eldiron.immae.eu"; | 5 | dependent_host_name = "eldiron.immae.eu"; |
6 | dependent_service_description = "Eriomem backup for ${name} is not too old"; | 6 | host_name = "eldiron.immae.eu"; |
7 | service_description = "Eriomem backup is up and not full"; | 7 | dependent_service_description = "${remote} backup for ${name} is not too old"; |
8 | execution_failure_criteria = "u"; | 8 | service_description = "${remote} backup is up and not full"; |
9 | notification_failure_criteria = "u"; | 9 | execution_failure_criteria = "u"; |
10 | }; | 10 | notification_failure_criteria = "u"; |
11 | to_eriomem_age = name: { | 11 | }) profile.remotes; |
12 | service_description = "Eriomem backup for ${name} is not too old"; | 12 | to_backup_age = name: profile: map (remote: |
13 | host_name = "eldiron.immae.eu"; | 13 | { |
14 | use = "external-service"; | 14 | service_description = "${remote} backup for ${name} is not too old"; |
15 | check_command = ["check_eriomem_age" name]; | 15 | host_name = "eldiron.immae.eu"; |
16 | 16 | use = "external-service"; | |
17 | check_interval = "120"; | 17 | check_command = ["check_backup_${remote}_age" name]; |
18 | notification_interval = "1440"; | 18 | |
19 | }; | 19 | check_interval = "120"; |
20 | notification_interval = "1440"; | ||
21 | }) profile.remotes; | ||
20 | in | 22 | in |
21 | { | 23 | { |
22 | host = { | 24 | host = { |
@@ -111,10 +113,21 @@ in | |||
111 | 113 | ||
112 | # Backup services | 114 | # Backup services |
113 | { | 115 | { |
114 | service_description = "Eriomem backup is up and not full"; | 116 | service_description = "eriomem backup is up and not full"; |
117 | host_name = "eldiron.immae.eu"; | ||
118 | use = "external-service"; | ||
119 | check_command = "check_backup_eriomem"; | ||
120 | |||
121 | check_interval = "120"; | ||
122 | notification_interval = "1440"; | ||
123 | |||
124 | servicegroups = "webstatus-backup"; | ||
125 | } | ||
126 | { | ||
127 | service_description = "ovh backup is up and not full"; | ||
115 | host_name = "eldiron.immae.eu"; | 128 | host_name = "eldiron.immae.eu"; |
116 | use = "external-service"; | 129 | use = "external-service"; |
117 | check_command = "check_eriomem"; | 130 | check_command = "check_ok"; |
118 | 131 | ||
119 | check_interval = "120"; | 132 | check_interval = "120"; |
120 | notification_interval = "1440"; | 133 | notification_interval = "1440"; |
@@ -673,7 +686,7 @@ in | |||
673 | _webstatus_name = "LDAP"; | 686 | _webstatus_name = "LDAP"; |
674 | _webstatus_url = "ldap.immae.eu"; | 687 | _webstatus_url = "ldap.immae.eu"; |
675 | } | 688 | } |
676 | ] ++ map to_eriomem_age (builtins.attrNames nodes.eldiron.config.services.duplyBackup.profiles); | 689 | ] ++ lib.flatten (lib.mapAttrsToList to_backup_age nodes.eldiron.config.services.duplyBackup.profiles); |
677 | contact = { | 690 | contact = { |
678 | telio-tortay = config.myEnv.monitoring.contacts.telio-tortay // { | 691 | telio-tortay = config.myEnv.monitoring.contacts.telio-tortay // { |
679 | use = "generic-contact"; | 692 | use = "generic-contact"; |
@@ -688,5 +701,5 @@ in | |||
688 | telio-tortay = { alias = "Telio Tortay"; members = "immae"; }; | 701 | telio-tortay = { alias = "Telio Tortay"; members = "immae"; }; |
689 | tiboqorl = { alias = "Tiboqorl"; members = "immae"; }; | 702 | tiboqorl = { alias = "Tiboqorl"; members = "immae"; }; |
690 | }; | 703 | }; |
691 | servicedependency = map to_eriomem_age_dependency (builtins.attrNames nodes.eldiron.config.services.duplyBackup.profiles); | 704 | servicedependency = lib.flatten (lib.mapAttrsToList to_backup_age_dependency nodes.eldiron.config.services.duplyBackup.profiles); |
692 | } | 705 | } |