Add ICMP probes

These probes check if we can reach several targets via ICMP, which is
not proxied, so they can be used to see if ICMP forwarding is working in
the login node.

In particular, we test if we can reach the Google (8.8.8.8) and
Cloudflare (1.1.1.1) DNS servers, the BSC gateway which responds to ping
only from the intranet and the login node (ssfhead).

Reviewed-By: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
This commit is contained in:
Rodrigo Arias 2023-10-24 11:49:42 +02:00
parent 736eacaac5
commit 9871517be2
2 changed files with 32 additions and 3 deletions

View File

@ -121,12 +121,11 @@ modules:
- expect: "PING :([^ ]+)" - expect: "PING :([^ ]+)"
send: "PONG ${1}" send: "PONG ${1}"
- expect: "^:[^ ]+ 001" - expect: "^:[^ ]+ 001"
icmp_example: icmp:
prober: icmp prober: icmp
timeout: 5s timeout: 5s
icmp: icmp:
preferred_ip_protocol: "ip4" preferred_ip_protocol: "ip4"
source_ip_address: "127.0.0.1"
dns_udp_example: dns_udp_example:
prober: dns prober: dns
timeout: 5s timeout: 5s

View File

@ -100,7 +100,7 @@
}]; }];
} }
{ {
job_name = "blackbox"; job_name = "blackbox-http";
metrics_path = "/probe"; metrics_path = "/probe";
params = { module = [ "http_2xx" ]; }; params = { module = [ "http_2xx" ]; };
static_configs = [{ static_configs = [{
@ -128,6 +128,36 @@
} }
]; ];
} }
{
job_name = "blackbox-icmp";
metrics_path = "/probe";
params = { module = [ "icmp" ]; };
static_configs = [{
targets = [
"1.1.1.1"
"8.8.8.8"
"ssfhead"
"gw.bsc.es"
];
}];
relabel_configs = [
{
# Takes the address and sets it in the "target=<xyz>" URL parameter
source_labels = [ "__address__" ];
target_label = "__param_target";
}
{
# Sets the "instance" label with the remote host we are querying
source_labels = [ "__param_target" ];
target_label = "instance";
}
{
# Shows the host target address instead of the blackbox address
target_label = "__address__";
replacement = "127.0.0.1:${toString config.services.prometheus.exporters.blackbox.port}";
}
];
}
{ {
# Scrape the IPMI info of the hosts remotely via LAN # Scrape the IPMI info of the hosts remotely via LAN
job_name = "ipmi-lan"; job_name = "ipmi-lan";