{ pkgs, ... }: { services.prometheus.exporters.blackbox = { enable = true; openFirewall = true; configFile = pkgs.writeText "blackbox.yml" '' modules: icmp6: prober: icmp icmp: preferred_ip_protocol: ip6 ip_protocol_fallback: false icmp4: prober: icmp icmp: preferred_ip_protocol: ip4 ip_protocol_fallback: false synapse: prober: http http: valid_status_codes: - 200 method: GET fail_if_not_ssl: true fail_if_body_not_matches_regexp: - "Synapse is running" headers: User-Agent: "monitoring.clerie.de, blackbox exporter" http4: prober: http http: preferred_ip_protocol: ip4 ip_protocol_fallback: false fail_if_ssl: true follow_redirects: false valid_status_codes: [ 200, 204, 301, 302, 303, 307, 308 ] headers: User-Agent: "monitoring.clerie.de, blackbox exporter" http6: prober: http http: preferred_ip_protocol: ip6 ip_protocol_fallback: false fail_if_ssl: true follow_redirects: false valid_status_codes: [ 200, 204, 301, 302, 303, 307, 308 ] headers: User-Agent: "monitoring.clerie.de, blackbox exporter" https4: prober: http http: preferred_ip_protocol: ip4 ip_protocol_fallback: false fail_if_not_ssl: true follow_redirects: false valid_status_codes: [ 200, 204, 301, 302, 303, 307, 308 ] headers: User-Agent: "monitoring.clerie.de, blackbox exporter" https6: prober: http http: preferred_ip_protocol: ip6 ip_protocol_fallback: false fail_if_not_ssl: true follow_redirects: false valid_status_codes: [ 200, 204, 301, 302, 303, 307, 308 ] headers: User-Agent: "monitoring.clerie.de, blackbox exporter" ''; }; }