X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FConfig%2FNix.git;a=blobdiff_plain;f=modules%2Fprivate%2Fmonitoring%2Fobjects_common.nix;fp=modules%2Fprivate%2Fmonitoring%2Fobjects_common.nix;h=0000000000000000000000000000000000000000;hp=7c9f6420e13fa1edfebff3239e08fd28678c0b02;hb=1a64deeb894dc95e2645a75771732c6cc53a79ad;hpb=fa25ffd4583cc362075cd5e1b4130f33306103f0 diff --git a/modules/private/monitoring/objects_common.nix b/modules/private/monitoring/objects_common.nix deleted file mode 100644 index 7c9f642..0000000 --- a/modules/private/monitoring/objects_common.nix +++ /dev/null @@ -1,253 +0,0 @@ -{ hostFQDN -, hostName -, interface ? "eth0" -, processWarn ? "250" -, processAlert ? "400" -, loadWarn ? "0.9" -, load5Warn ? loadWarn -, load15Warn ? load5Warn -, loadAlert ? "1.0" -, load5Alert ? loadAlert -, load15Alert ? load5Alert -, mdadm -, master -, lib -, mypluginsConfig -, ... -}: -let - defaultPassiveInfo = { - filter = lib.attrsets.filterAttrs - (k: v: builtins.elem k ["service_description"] || builtins.substring 0 1 k == "_"); - use = "external-passive-service"; - freshness_threshold = "450"; - retry_interval = "1"; - servicegroups = "webstatus-resources"; - host_name = hostFQDN; - }; -in -{ - host = { - "${hostFQDN}" = { - alias = hostFQDN; - address = hostFQDN; - use = "linux-server"; - hostgroups = "webstatus-hosts"; - _webstatus_name = hostName; - _webstatus_vhost = "status.immae.eu"; - }; - }; - service = [ - { - passiveInfo = defaultPassiveInfo; - service_description = "Size on root partition"; - use = "local-service"; - check_command = ["check_local_disk" "20%" "10%" "/"]; - } - { - passiveInfo = defaultPassiveInfo; - service_description = "Total number of process"; - use = "local-service"; - check_command = [ - "check_local_procs" - processWarn - processAlert - "RSZDT" - ]; - } - { - passiveInfo = defaultPassiveInfo; - service_description = "Network bandwidth"; - use = "local-service"; - check_interval = "2"; - max_check_attempts = "20"; - retry_interval = "2"; - check_command = [ - "check_local_bandwidth" - interface - "20480" # kb/s - "51200" # kb/s - ]; - } - { - passiveInfo = defaultPassiveInfo; - service_description = "Average load"; - use = "local-service"; - check_command = [ - "check_local_load" - "${loadWarn},${load5Warn},${load15Warn}" - "${loadAlert},${load5Alert},${load15Alert}" - ]; - } - { - passiveInfo = defaultPassiveInfo; - service_description = "Swap usage"; - use = "local-service"; - check_command = ["check_local_swap" "20" "10"]; - } - { - passiveInfo = defaultPassiveInfo; - service_description = "Memory usage"; - use = "local-service"; - check_command = ["check_memory" "80" "90"]; - } - { - passiveInfo = defaultPassiveInfo; - service_description = "NTP is activated and working"; - use = "local-service"; - check_command = ["check_ntp"]; - } - { - passiveInfo = defaultPassiveInfo; - service_description = "No mdadm array is degraded"; - use = "local-service"; - check_command = [ - "check_command_output" - "${mdadm}/bin/mdadm --monitor --scan -1" - "^$" - "-s 0 -r root" - ]; - } - ]; - command = lib.foldr (v: o: o // (v.commands or {})) {} (builtins.attrValues mypluginsConfig) // { - check_local_disk = "$USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$"; - check_local_procs = "$USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$"; - check_local_load = "$USER1$/check_load -r -w $ARG1$ -c $ARG2$"; - check_local_swap = "$USER1$/check_swap -n ok -w $ARG1$ -c $ARG2$"; - check_ntp = "$USER1$/check_ntp_time -t 30 -q -H 0.arch.pool.ntp.org"; - check_mailq = "$USER1$/check_mailq -s -w 1 -c 2"; - check_smtp = "$USER1$/check_smtp -H $HOSTADDRESS$ -p 25 -S -D 21,15"; - - check_host_alive = "$USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5"; - check_ok = "$USER1$/check_dummy 0 \"Dummy OK\""; - check_critical = "$USER1$/check_dummy 2 \"Dummy CRITICAL\""; - }; - timeperiod = { - "24x7" = { - alias = "24 Hours A Day, 7 Days A Week"; - monday = "00:00-24:00"; - tuesday = "00:00-24:00"; - wednesday = "00:00-24:00"; - thursday = "00:00-24:00"; - friday = "00:00-24:00"; - saturday = "00:00-24:00"; - sunday = "00:00-24:00"; - }; - }; - servicegroup = { - webstatus-webapps = { alias = "Web applications"; }; - webstatus-websites = { alias = "Personal websites"; }; - webstatus-ssl = { alias = "SSL certificates"; }; - webstatus-dns = { alias = "DNS resolution"; }; - webstatus-remote-services = { alias = "Other remote services"; }; - webstatus-local-services = { alias = "Other local services"; }; - webstatus-email = { alias = "E-mail services"; }; - webstatus-resources = { alias = "Local resources"; }; - webstatus-databases = { alias = "Databases resources"; }; - webstatus-backup = { alias = "Backup resources"; }; - }; - hostgroup = { - webstatus-hosts = { alias = "Hosts"; }; - }; - contactgroup = { - admins = { alias = "Naemon Administrators"; }; - }; - templates = { - service = { - generic-service = { - active_checks_enabled = "1"; - check_freshness = "0"; - check_interval = "10"; - check_period = "24x7"; - contact_groups = "admins"; - event_handler_enabled = "1"; - flap_detection_enabled = "1"; - is_volatile = "0"; - max_check_attempts = "3"; - notification_interval = "60"; - notification_options = "w,u,c,r,f,s"; - notification_period = "24x7"; - notifications_enabled = if master then "1" else "0"; - obsess_over_service = "1"; - passive_checks_enabled = "1"; - process_perf_data = "1"; - retain_nonstatus_information = "1"; - retain_status_information = "1"; - retry_interval = "2"; - _webstatus_namespace = "immae"; - }; - local-service = { - use = "generic-service"; - host_name = hostFQDN; - check_interval = "5"; - max_check_attempts = "4"; - retry_interval = "1"; - servicegroups = "webstatus-resources"; - }; - external-service = { - use = "generic-service"; - check_interval = "5"; - max_check_attempts = "4"; - retry_interval = "1"; - }; - web-service = { - use = "generic-service"; - check_interval = "20"; - max_check_attempts = "2"; - retry_interval = "1"; - }; - external-web-service = { - use = "generic-service"; - check_interval = "20"; - max_check_attempts = "2"; - retry_interval = "1"; - }; - mail-service = { - use = "generic-service"; - check_interval = "15"; - max_check_attempts = "1"; - retry_interval = "1"; - }; - dns-service = { - use = "generic-service"; - check_interval = "120"; - notification_interval = "120"; - max_check_attempts = "5"; - retry_interval = "5"; - }; - }; - # No contact, we go through master - contact = { - generic-contact = { - host_notification_commands = "notify-host-by-email"; - host_notification_options = "d,u,r,f,s"; - host_notification_period = "24x7"; - service_notification_commands = "notify-service-by-email"; - service_notification_options = "w,u,c,r,f,s"; - service_notification_period = "24x7"; - }; - }; - host = { - generic-host = { - event_handler_enabled = "1"; - flap_detection_enabled = "1"; - notification_period = "24x7"; - notifications_enabled = "1"; - process_perf_data = "1"; - retain_nonstatus_information = "1"; - retain_status_information = "1"; - }; - linux-server = { - check_command = "check_host_alive"; - check_interval = "5"; - check_period = "24x7"; - contact_groups = "admins"; - max_check_attempts = "10"; - notification_interval = "120"; - notification_options = "d,u,r,f"; - retry_interval = "1"; - _webstatus_namespace = "immae"; - }; - }; - }; -}