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.