黑盒導出器允許透過 HTTP、HTTPS、DNS、TCP、ICMP 和 gRPC 對端點進行黑盒探測。
從發布選項卡下載最合適的二進位文件
然後:
./blackbox_exporter <flags>
注意:您可能想要在 docker 設定中啟用 ipv6
docker run --rm
-p 9115/tcp
--name blackbox_exporter
-v $(pwd):/config
quay.io/prometheus/blackbox-exporter:latest --config.file=/config/blackbox.yml
造訪 http://localhost:9115/probe?target=google.com&module=http_2xx 將傳回針對 google.com 的 HTTP 探測的指標。 probe_success
指標指示探測是否成功。新增debug=true
參數將傳回該探測器的偵錯資訊。
有關導出器本身操作的指標可在端點 http://localhost:9115/metrics 上取得。
Blackbox Exporter 支援 TLS 和基本驗證。這可以更好地控制各種 HTTP 端點。
若要使用 TLS 和/或基本驗證,您需要使用--web.config.file
參數傳遞設定檔。文件的格式在匯出工具包儲存庫中進行了描述。
請注意,TLS 和基本驗證設定會影響所有 HTTP 端點:用於抓取的 /metrics、用於探測的 /probe 以及 Web UI。
make
本地建置成功後:
docker build -t blackbox_exporter .
Blackbox 匯出器透過設定檔和命令列標誌進行設定(例如要載入的設定檔、要偵聽的連接埠以及日誌記錄格式和等級)。
Blackbox 匯出器可以在執行時重新載入其設定檔。如果新配置的格式不正確,則不會套用變更。透過向 Blackbox 導出器程序發送SIGHUP
或向/-/reload
端點發送 HTTP POST 請求來觸發組態重新載入。
要查看所有可用的命令列標誌,請執行./blackbox_exporter -h
。
若要指定要載入的設定文件,請使用--config.file
標誌。
此外,還提供了範例配置。
目前支援 HTTP、HTTPS(透過http
偵測器)、DNS、TCP 套接字、ICMP 和 gRPC(請參閱權限部分)。可以定義其他模組來滿足您的需求。
每個探測器的超時會自動根據 Prometheus 配置中的scrape_timeout
確定,並稍微減少以考慮到網路延遲。這可以透過 Blackbox 匯出器設定檔中的timeout
進一步限制。如果兩者均未指定,則預設為 120 秒。
Blackbox 導出器實現了多目標導出器模式,因此我們建議閱讀指南以了解並使用多目標導出器模式以了解有關配置的一般概念。
黑盒導出器需要將目標作為參數傳遞,這可以透過重新標記來完成。
設定範例:
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 偵測器可以接受額外的hostname
參數,該參數將設定Host
標頭和 TLS SNI。這對於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
ICMP 探測需要提升權限才能運作:
net.ipv4.ping_group_range
內的群組、 CAP_NET_RAW
功能的使用者或 root 使用者。/etc/sysctl.conf
或類似檔案中預設配置net.ipv4.ping_group_range
。如果沒有,您可以設定net.ipv4.ping_group_range = 0 2147483647
以允許任何使用者使用 ping。setcap cap_net_raw+ep blackbox_exporter
來設定功能