X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fprivate%2Fmonitoring%2Fobjects_monitoring-1.nix;h=0e7d9dfd1205e491d3d17d09ac5e02be8a679564;hb=e64a496820b90607cba3762db3ce77847aaac22d;hp=741860afee21640d499b87f182d095455dbedff1;hpb=e62c44e2bbcbea99e2946d209f1abd6aaf41931d;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 741860a..0e7d9df 100644 --- a/modules/private/monitoring/objects_monitoring-1.nix +++ b/modules/private/monitoring/objects_monitoring-1.nix @@ -1,5 +1,28 @@ -{ config, pkgs, hostFQDN, emailCheck, ... }: +{ 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"; + 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 { + activatedPlugins = [ "dns" "ftp" "git" "http" "imap" "ovh" "tcp" ]; host = { # Dummy host for testing # "dummy-host" = { @@ -87,18 +110,29 @@ check_command = "check_ovh_sms"; check_interval = "120"; - notification_interval = "120"; + notification_interval = "1440"; } # Backup services + # { + # 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 = "Eriomem backup is up and not full"; + 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 = "120"; + notification_interval = "1440"; servicegroups = "webstatus-backup"; } @@ -337,6 +371,17 @@ _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"; @@ -418,7 +463,7 @@ service_description = "roundcube website is running on mail.immae.eu"; host_name = "eldiron.immae.eu"; use = "external-web-service"; - check_command = ["check_https_code" "mail.immae.eu" "/roundcube/" "401" "Roundcube"]; + check_command = ["check_https" "mail.immae.eu" "/roundcube/" "<title>Roundcube"]; servicegroups = "webstatus-webapps,webstatus-email"; _webstatus_name = "Roundcube"; @@ -462,7 +507,7 @@ 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"; @@ -643,24 +688,6 @@ _webstatus_url = "https://www.sandetludo.com/"; } - { - service_description = "Maison bbc accepts add requests on http"; - host_name = "eldiron.immae.eu"; - use = "external-web-service"; - check_command = [ "check_http" "maison.bbc.bouya.org" "/add.php" "^$"]; - } - - { - service_description = "Maison bbc has up to date data"; - host_name = "eldiron.immae.eu"; - use = "generic-service"; - contact_groups = "maison-bbc"; - notification_interval = "1440"; - check_command = "check_maison_bbc"; - flap_detection_enabled = "0"; - max_check_attempts = "1"; - } - # SSL { service_description = "ldap SSL is up to date"; @@ -672,20 +699,39 @@ _webstatus_name = "LDAP"; _webstatus_url = "ldap.immae.eu"; } - ]; + + # 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"; contactgroups = "telio-tortay"; }; - papa = config.myEnv.monitoring.contacts.papa // { + thibault = config.myEnv.monitoring.contacts.thibault // { use = "generic-contact"; - contactgroups = "maison-bbc"; - service_notification_commands = "notify-maison-bbc-by-email"; + contactgroups = "tiboqorl"; }; }; contactgroup = { - maison-bbc = { alias = "Maison BBC"; }; telio-tortay = { alias = "Telio Tortay"; members = "immae"; }; + tiboqorl = { alias = "Tiboqorl"; members = "immae"; }; }; + servicedependency = to_resource to_backup_age_dependency nodes.eldiron.config.services.duplyBackup; }