aboutsummaryrefslogtreecommitdiff
path: root/modules/private/monitoring/objects_monitoring-1.nix
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2020-07-16 01:10:17 +0200
committerIsmaël Bouya <ismael.bouya@normalesup.org>2020-07-16 01:10:17 +0200
commit5a61f6ad5164a735be26e016c59e72252ffb49b7 (patch)
tree6acc3c8199d7f25c039c6c6686005436d1fb49d7 /modules/private/monitoring/objects_monitoring-1.nix
parentca367c14902ab1bf869976dc5dca52d07e308c15 (diff)
downloadNix-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.nix57
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, ... }:
2let 2let
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;
20in 22in
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}