aboutsummaryrefslogtreecommitdiff
path: root/modules/private/monitoring/objects_tiboqorl-fr.nix
blob: b49a1d8e31651155706d25c9ae9a138ac898008a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
{ 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";
    _webstatus_namespace = "tiboqorl";
    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";
      _webstatus_namespace = "tiboqorl";
    };
  };
  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"
        "0.75,0.75,0.75" # warn
        "1.0,1.0,1.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 = "$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 = "$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";
      };
    };
  };
}