{ lib, ... }: let hostFQDN = "tiboqorl.fr"; defaultPassiveInfo = { filter = lib.attrsets.filterAttrs (k: v: builtins.elem k ["service_description"] || builtins.substring 0 1 k == "_"); use = "external-passive-service"; contact_groups = "tiboqorl"; freshness_threshold = "450"; notification_interval = "240"; retry_interval = "1"; servicegroups = "webstatus-resources"; host_name = hostFQDN; }; in { host = { "tiboqorl.fr" = { alias = "tiboqorl.fr"; address = "tiboqorl.fr"; use = "linux-server"; contact_groups = "tiboqorl"; hostgroups = "webstatus-hosts"; _webstatus_name = "tiboqorl"; _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" "250" "400" "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" "eth0" "20480" # kb/s "51200" # kb/s ]; } { passiveInfo = defaultPassiveInfo; service_description = "Average load"; use = "local-service"; check_command = [ "check_local_load" "3.0,3.0,3.0" # warn "4.0,4.0,4.0" # alert ]; } { 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"]; } ]; command = { check_local_disk = "$USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$"; check_local_procs = "/usr/bin/sudo $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$"; check_local_load = "$USER1$/check_load -w $ARG1$ -c $ARG2$"; check_local_swap = "$USER1$/check_swap -n ok -w $ARG1$ -c $ARG2$"; check_local_bandwidth = "/usr/bin/sudo $USER2$/check_bandwidth -i=$ARG1$ -w $ARG2$ -c $ARG3$"; check_memory = "$USER2$/check_mem.sh -w $ARG1$ -c $ARG2$"; check_ntp = "$USER1$/check_ntp_time -t 30 -q -H 0.arch.pool.ntp.org"; check_host_alive = "$USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5"; notify-master = "$USER2$/send_nrdp.sh -u \"$USER200$\" -t \"$USER201$\" -H \"$HOSTADDRESS$\" -s \"$SERVICEDESC$\" -S \"$SERVICESTATEID$\" -o \"$SERVICEOUTPUT$ | $SERVICEPERFDATA$\""; }; 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-resources = { alias = "Local resources"; }; }; hostgroup = { webstatus-hosts = { alias = "Hosts"; }; }; contactgroup = { tiboqorl = { alias = "Naemon Administrators"; }; }; templates = { service = { generic-service = { active_checks_enabled = "1"; check_freshness = "0"; check_interval = "10"; check_period = "24x7"; contact_groups = "tiboqorl"; 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 = "0"; obsess_over_service = "1"; passive_checks_enabled = "1"; process_perf_data = "1"; retain_nonstatus_information = "1"; retain_status_information = "1"; retry_interval = "2"; }; local-service = { use = "generic-service"; host_name = hostFQDN; check_interval = "5"; max_check_attempts = "4"; retry_interval = "1"; servicegroups = "webstatus-resources"; }; }; 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 = "tiboqorl"; max_check_attempts = "10"; notification_interval = "120"; notification_options = "d,u,r,f"; retry_interval = "1"; }; }; }; }