Der Blackbox-Exporter ermöglicht die Blackbox-Prüfung von Endpunkten über HTTP, HTTPS, DNS, TCP, ICMP und gRPC.
Laden Sie die am besten geeignete Binärdatei von der Registerkarte „Releases“ herunter
Dann:
./blackbox_exporter
Hinweis: Möglicherweise möchten Sie IPv6 in Ihrer Docker-Konfiguration aktivieren
docker run --rm
-p 9115/tcp
--name blackbox_exporter
-v $(pwd):/config
quay.io/prometheus/blackbox-exporter:latest --config.file=/config/blackbox.yml
Wenn Sie http://localhost:9115/probe?target=google.com&module=http_2xx besuchen, werden Metriken für eine HTTP-Prüfung gegen google.com zurückgegeben. Die probe_success
Metrik gibt an, ob die Probe erfolgreich war. Durch das Hinzufügen eines debug=true
-Parameters werden Debug-Informationen für dieses Probe zurückgegeben.
Metriken zum Betrieb des Exporters selbst sind am Endpunkt http://localhost:9115/metrics verfügbar.
Der Blackbox Exporter unterstützt TLS und Basisauthentifizierung. Dies ermöglicht eine bessere Kontrolle der verschiedenen HTTP-Endpunkte.
Um TLS und/oder Basisauthentifizierung zu verwenden, müssen Sie eine Konfigurationsdatei mit dem Parameter --web.config.file
übergeben. Das Format der Datei ist im Exporter-Toolkit-Repository beschrieben.
Beachten Sie, dass sich die TLS- und Basisauthentifizierungseinstellungen auf alle HTTP-Endpunkte auswirken: /metrics für Scraping, /probe für Sondierungen und die Web-Benutzeroberfläche.
make
Nach einem erfolgreichen lokalen Build:
docker build -t blackbox_exporter .
Der Blackbox-Exporter wird über eine Konfigurationsdatei und Befehlszeilen-Flags konfiguriert (z. B. welche Konfigurationsdatei geladen werden soll, welcher Port überwacht werden soll sowie Protokollierungsformat und -stufe).
Der Blackbox-Exporter kann seine Konfigurationsdatei zur Laufzeit neu laden. Wenn die neue Konfiguration nicht wohlgeformt ist, werden die Änderungen nicht angewendet. Ein Neuladen der Konfiguration wird durch Senden eines SIGHUP
an den Blackbox-Exportprozess oder durch Senden einer HTTP-POST-Anfrage an den /-/reload
Endpunkt ausgelöst.
Um alle verfügbaren Befehlszeilenflags anzuzeigen, führen Sie ./blackbox_exporter -h
aus.
Um anzugeben, welche Konfigurationsdatei geladen werden soll, verwenden Sie das Flag --config.file
.
Darüber hinaus ist auch eine Beispielkonfiguration verfügbar.
Derzeit werden HTTP, HTTPS (über den http
Prober), DNS, TCP-Socket, ICMP und gRPC (siehe Abschnitt „Berechtigungen“) unterstützt. Je nach Bedarf können weitere Module definiert werden.
Der Timeout jedes Probe wird automatisch aus scrape_timeout
in der Prometheus-Konfiguration ermittelt und leicht reduziert, um Netzwerkverzögerungen zu berücksichtigen. Dies kann durch die timeout
in der Blackbox-Exporter-Konfigurationsdatei weiter eingeschränkt werden. Wenn keines von beiden angegeben ist, beträgt der Standardwert 120 Sekunden.
Der Blackbox-Exporter implementiert das Multi-Target-Exporter-Muster. Wir empfehlen daher, die Anleitung „Verstehen und Verwenden des Multi-Target-Exporter-Musters“ zu lesen, um einen allgemeinen Überblick über die Konfiguration zu erhalten.
Dem Blackbox-Exporter muss das Ziel als Parameter übergeben werden, dies kann durch Umbenennen erfolgen.
Beispielkonfiguration:
scrape_configs :
- job_name : ' blackbox '
metrics_path : /probe
params :
module : [http_2xx] # Look for a HTTP 200 response.
static_configs :
- targets :
- http://prometheus.io # Target to probe with http.
- https://prometheus.io # Target to probe with https.
- http://example.com:8080 # Target to probe with http on port 8080.
relabel_configs :
- source_labels : [__address__]
target_label : __param_target
- source_labels : [__param_target]
target_label : instance
- target_label : __address__
replacement : 127.0.0.1:9115 # The blackbox exporter's real hostname:port.
- job_name : ' blackbox_exporter ' # collect blackbox exporter's operational metrics.
static_configs :
- targets : ['127.0.0.1:9115']
HTTP-Probes können einen zusätzlichen hostname
Parameter akzeptieren, der Host
Header und den TLS-SNI festlegt. Dies kann besonders bei dns_sd_config
nützlich sein:
scrape_configs :
- job_name : blackbox_all
metrics_path : /probe
params :
module : [ http_2xx ] # Look for a HTTP 200 response.
dns_sd_configs :
- names :
- example.com
- prometheus.io
type : A
port : 443
relabel_configs :
- source_labels : [__address__]
target_label : __param_target
replacement : https://$1/ # Make probe URL be like https://1.2.3.4:443/
- source_labels : [__param_target]
target_label : instance
- target_label : __address__
replacement : 127.0.0.1:9115 # The blackbox exporter's real hostname:port.
- source_labels : [__meta_dns_name]
target_label : __param_hostname # Make domain name become 'Host' header for probe requests
- source_labels : [__meta_dns_name]
target_label : vhost # and store it in 'vhost' label
Für die Funktion des ICMP-Probe sind erhöhte Berechtigungen erforderlich:
net.ipv4.ping_group_range
, die CAP_NET_RAW
-Fähigkeit oder der Root-Benutzer erforderlich.net.ipv4.ping_group_range
standardmäßig in /etc/sysctl.conf
oder ähnlichem. Wenn nicht, können Sie net.ipv4.ping_group_range = 0 2147483647
festlegen, um jedem Benutzer die Möglichkeit zu geben, Ping zu verwenden.setcap cap_net_raw+ep blackbox_exporter
festgelegt werden