summaryrefslogtreecommitdiff
path: root/playbooks/roles/mon/templates/volumes/gatus/config/config.yml
blob: be118739e332645ab99f2e7e1b1c5ccd7aa55a15 (plain)
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
metrics: true

endpoints:
  - name: "HealthCheck"
    url: "{{ healthchecks_io_ping }}"
    interval: 60s
    conditions:
      - "[STATUS] == 200"
      - "[BODY] == pat(*OK*)"

  - name: "Expiration For {{ domain }}"
    url: "https://{{ domain }}"
    interval: 30m
    conditions:
      - "[CERTIFICATE_EXPIRATION] > 240h"

  - name: "LDAPS"
    url: "tls://{{ idm_domain }}:3636"
    interval: 5m
    client:
      timeout: 5s
    conditions:
      - "[CONNECTED] == true"
      - "[CERTIFICATE_EXPIRATION] > 48h"

{% for port in [465,993] %}
  - name: "mail on port {{ port }}"
    group: "mail"
    url: "tls://{{ mail_domain }}:{{ port }}"
    interval: 5m
    client:
      timeout: 5s
    conditions:
      - "[CONNECTED] == true"
      - "[CERTIFICATE_EXPIRATION] > 48h"
{% endfor %}

{% for user, m in mesh.items() %}
{% for healthcheck in m.public_healthchecks %}
  - name: "healthcheck {{ user }} pub {{ healthcheck }} 200"
    group: "{{ user }}_pub"
    url: "{{ healthcheck }}"
    interval: 1m
    conditions:
      - "[STATUS] == 200"
{% endfor %}
{% for healthcheck in m.private_healthchecks %}
  - name: "{{ healthcheck }} priv healthcheck {{ user }}"
    url: "{{ healthcheck }}"
    group: "{{ user }}_priv"
    interval: 1m
    conditions:
      - "[STATUS] == 200"
  - name: "{{ healthcheck }} pub healthcheck {{ user }} 403"
    group: "{{ user }}_priv"
    url: "{{ healthcheck }}"
    client:
      dns-resolver: "tcp://1.1.1.1:53"
    interval: 1m
    conditions:
      - "[STATUS] == 403"
{% endfor %}
{% for record in m.private_records %}
  - name: "DNS Check [{{ record.name }}_{{ record.type }}]"
    group: "{{ user }}_dns_private"
    url: "{{ m.gateway }}"
    interval: 5m
    dns:
      query-name: "{{ record.name }}"
      query-type: "{{ record.type }}"
    conditions:
      - "[BODY] == {{ record.ip }}"
      - "[DNS_RCODE] == NOERROR"

  - name: "PING {{ record.name }}"
    group: "{{ user }}_dns_private"
    url: "icmp://{{ record.name }}"
    conditions:
      - "[CONNECTED] == true"
{% endfor %}
{% endfor %}