diff --git a/roles/prometheus/defaults/main.yml b/roles/prometheus/defaults/main.yml index e5baf0a3197e57fb5d37ecab70b960b8150ace7c..203b1101cf26e499637f56220221202a1cf422e7 100644 --- a/roles/prometheus/defaults/main.yml +++ b/roles/prometheus/defaults/main.yml @@ -75,6 +75,8 @@ blackbox_targets: smtp_starttls: - mail.archlinux.org:25 - lists.archlinux.org:25 + dns_geomirror_a: "{{ groups['geo_mirrors'] + ['mirror.pkgbuild.com'] }}" + dns_geomirror_aaaa: "{{ groups['geo_mirrors'] + ['mirror.pkgbuild.com'] }}" matrix_metrics_endpoints: - homeserver - appservice diff --git a/roles/prometheus_exporters/files/blackbox.yml b/roles/prometheus_exporters/files/blackbox.yml deleted file mode 100644 index df99062cbd290e43b150e3f1436f0cbe8350ee13..0000000000000000000000000000000000000000 --- a/roles/prometheus_exporters/files/blackbox.yml +++ /dev/null @@ -1,26 +0,0 @@ -modules: - http_prometheus: - prober: http - timeout: 5s - http: - headers: - User-Agent: "blackbox-monitoring" - tls_connect: - prober: tcp - timeout: 5s - tcp: - tls: true - smtp_starttls: - prober: tcp - timeout: 5s - tcp: - query_response: - - expect: "^220 ([^ ]+) ESMTP (.+)$" - - send: "EHLO prober\r" - - expect: "^250-STARTTLS" - - send: "STARTTLS\r" - - expect: "^220" - - starttls: true - - send: "EHLO prober\r" - - expect: "^250" - - send: "QUIT\r" diff --git a/roles/prometheus_exporters/handlers/main.yml b/roles/prometheus_exporters/handlers/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..e099b7807381a9a3ec0d908fc8d567a99fbc16a6 --- /dev/null +++ b/roles/prometheus_exporters/handlers/main.yml @@ -0,0 +1,4 @@ +--- + +- name: reload blackbox exporter + service: name=prometheus-blackbox-exporter state=reloaded diff --git a/roles/prometheus_exporters/tasks/main.yml b/roles/prometheus_exporters/tasks/main.yml index 06cfb95f1f92b070d63f5799d4a3c2be9609625b..db335f6c0ddad6413b412d4041f627ea0e28c7c9 100644 --- a/roles/prometheus_exporters/tasks/main.yml +++ b/roles/prometheus_exporters/tasks/main.yml @@ -124,7 +124,8 @@ systemd: name=prometheus-fail2ban-textcollector.timer enabled=yes daemon_reload=yes state=started - name: install blackbox exporter configuration - copy: src=blackbox.yml dest=/etc/prometheus/blackbox.yml owner=root group=root mode=0644 + template: src=blackbox.yml.j2 dest=/etc/prometheus/blackbox.yml owner=root group=root mode=0644 + notify: reload blackbox exporter when: "'prometheus' in group_names" - name: install rebuilderd textcollector service diff --git a/roles/prometheus_exporters/templates/blackbox.yml.j2 b/roles/prometheus_exporters/templates/blackbox.yml.j2 new file mode 100644 index 0000000000000000000000000000000000000000..9ba1a2a51a5545bd049f3b3bbc045efe1a0c019b --- /dev/null +++ b/roles/prometheus_exporters/templates/blackbox.yml.j2 @@ -0,0 +1,46 @@ +modules: + http_prometheus: + prober: http + timeout: 5s + http: + headers: + User-Agent: "blackbox-monitoring" + tls_connect: + prober: tcp + timeout: 5s + tcp: + tls: true + smtp_starttls: + prober: tcp + timeout: 5s + tcp: + query_response: + - expect: "^220 ([^ ]+) ESMTP (.+)$" + - send: "EHLO prober\r" + - expect: "^250-STARTTLS" + - send: "STARTTLS\r" + - expect: "^220" + - starttls: true + - send: "EHLO prober\r" + - expect: "^250" + - send: "QUIT\r" + dns_geomirror_a: + prober: dns + timeout: 5s + dns: + query_name: geo.mirror.pkgbuild.com + query_type: A + preferred_ip_protocol: ip4 + validate_answer_rrs: + fail_if_not_matches_regexp: + - geo\.mirror\.pkgbuild\.com\.\t.*\tIN\tA\t({{ groups['geo_mirrors'] | map('extract', hostvars, ['ipv4_address']) | join('|') | replace('.', '\.') }}) + dns_geomirror_aaaa: + prober: dns + timeout: 5s + dns: + query_name: geo.mirror.pkgbuild.com + query_type: AAAA + preferred_ip_protocol: ip6 + validate_answer_rrs: + fail_if_not_matches_regexp: + - geo\.mirror\.pkgbuild\.com\.\t.*\tIN\tAAAA\t({{ groups['geo_mirrors'] | map('extract', hostvars, ['ipv6_address']) | join('|') }})