Pengekspor blackbox memungkinkan pemeriksaan blackbox pada titik akhir melalui HTTP, HTTPS, DNS, TCP, ICMP, dan gRPC.
Unduh biner yang paling sesuai dari tab rilis
Kemudian:
./blackbox_exporter
Catatan: Anda mungkin ingin mengaktifkan ipv6 di konfigurasi buruh pelabuhan Anda
docker run --rm
-p 9115/tcp
--name blackbox_exporter
-v $(pwd):/config
quay.io/prometheus/blackbox-exporter:latest --config.file=/config/blackbox.yml
Mengunjungi http://localhost:9115/probe?target=google.com&module=http_2xx akan mengembalikan metrik untuk penyelidikan HTTP terhadap google.com. Metrik probe_success
menunjukkan apakah penyelidikan berhasil. Menambahkan parameter debug=true
akan mengembalikan informasi debug untuk pemeriksaan tersebut.
Metrik mengenai pengoperasian eksportir itu sendiri tersedia di titik akhir http://localhost:9115/metrics.
Pengekspor Blackbox mendukung TLS dan otentikasi dasar. Hal ini memungkinkan kontrol yang lebih baik terhadap berbagai titik akhir HTTP.
Untuk menggunakan TLS dan/atau autentikasi dasar, Anda perlu meneruskan file konfigurasi menggunakan parameter --web.config.file
. Format file dijelaskan dalam repositori toolkit eksportir.
Perhatikan bahwa pengaturan TLS dan autentikasi dasar memengaruhi semua titik akhir HTTP: /metrics untuk scraping, /probe untuk probing, dan UI web.
make
Setelah pembangunan lokal berhasil:
docker build -t blackbox_exporter .
Pengekspor Blackbox dikonfigurasi melalui file konfigurasi dan tanda baris perintah (seperti file konfigurasi apa yang akan dimuat, port apa yang akan didengarkan, serta format dan level logging).
Pengekspor Blackbox dapat memuat ulang file konfigurasinya saat runtime. Jika konfigurasi baru tidak terbentuk dengan baik, perubahan tidak akan diterapkan. Pemuatan ulang konfigurasi dipicu dengan mengirimkan SIGHUP
ke proses eksportir Blackbox atau dengan mengirimkan permintaan HTTP POST ke titik akhir /-/reload
.
Untuk melihat semua tanda baris perintah yang tersedia, jalankan ./blackbox_exporter -h
.
Untuk menentukan file konfigurasi mana yang akan dimuat, gunakan flag --config.file
.
Selain itu, contoh konfigurasi juga tersedia.
HTTP, HTTPS (melalui http
prober), DNS, soket TCP, ICMP dan gRPC (lihat bagian izin) saat ini didukung. Modul tambahan dapat ditentukan untuk memenuhi kebutuhan Anda.
Batas waktu setiap probe secara otomatis ditentukan dari scrape_timeout
di konfigurasi Prometheus, sedikit dikurangi untuk memungkinkan penundaan jaringan. Hal ini selanjutnya dapat dibatasi oleh timeout
pada file konfigurasi eksportir Blackbox. Jika tidak ada yang ditentukan, defaultnya adalah 120 detik.
Pengekspor Blackbox menerapkan pola eksportir multi-target, jadi kami menyarankan Anda membaca panduan Memahami dan menggunakan pola eksportir multi-target untuk mendapatkan gambaran umum tentang konfigurasinya.
Eksportir blackbox perlu melewati target sebagai parameter, hal ini dapat dilakukan dengan pelabelan ulang.
Contoh konfigurasi:
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']
Probe HTTP dapat menerima parameter hostname
tambahan yang akan mengatur header Host
dan TLS SNI. Ini bisa sangat berguna dengan dns_sd_config
:
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
Probe ICMP memerlukan hak istimewa yang lebih tinggi agar dapat berfungsi:
net.ipv4.ping_group_range
, kemampuan CAP_NET_RAW
atau pengguna root.net.ipv4.ping_group_range
secara default di /etc/sysctl.conf
atau serupa. Jika tidak, Anda dapat mengatur net.ipv4.ping_group_range = 0 2147483647
untuk mengizinkan pengguna mana pun menggunakan kemampuan ping.setcap cap_net_raw+ep blackbox_exporter