DNS Probing

The next probe we shall be exploring is the DNS probe.

Again, we'll be using our previous setup only this time we'll be amending the Blackbox exporter's configuration file to include a module for DNS.

Append the following to your blackbox.yml file:

  dns_test:
    prober: dns
    timeout: 5s
    dns:
      query_name: google.com
      preferred_ip_protocol: ip4

Let's demo the DNS probe by going to:

http://localhost:9115/probe?target=8.8.8.8:53&module=dns_test

This will issue a DNS probe to Google's DNS service!

The response should look like:

As we can see, the probe returned successful with a number of metrics about the probe itself and the response we got.

Open up a second terminal and navigate to the directory containing your Prometheus configuration file (prometheus.yml) and run the following:

cat <<'EOF' > prometheus.yml
global:
  scrape_interval: 10s
scrape_configs:
  - job_name: 'blackbox'
    metrics_path: /probe
    params:
      module: [dns_test]
    static_configs:
      - targets:
        - 8.8.8.8:53   # Targets to probe
    relabel_configs:
      # Ensure port is 22, pass as URL parameter
      - source_labels: [__address__]
        regex: (.*)(:.*)?
        replacement: ${1}:22
        target_label: __param_target
      # Make instance label the target
      - source_labels: [__param_target]
        target_label: instance
      # Actually talk to the blackbox exporter though
      - target_label: __address__
        replacement: 127.0.0.1:9115
EOF
./prometheus

This will configure Prometheus to hook it into our running Blackbox exporter and scrape the results of the DNS probe we just ran.

Complete and Continue