ブラックボックス エクスポーターを使用すると、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
パラメーターを使用して構成ファイルを渡す必要があります。ファイルの形式は、exporter-toolkit リポジトリに記載されています。
TLS と基本認証の設定は、スクレイピング用の /metrics、プローブ用の /probe、Web UI など、すべての HTTP エンドポイントに影響することに注意してください。
make
ローカル ビルドが成功した後:
docker build -t blackbox_exporter .
ブラックボックス エクスポーターは、構成ファイルとコマンドライン フラグ (ロードする構成ファイル、リッスンするポート、ログの形式とレベルなど) を介して構成されます。
Blackbox エクスポータは、実行時に構成ファイルを再ロードできます。新しい構成が適切に構成されていない場合、変更は適用されません。構成のリロードは、Blackbox エクスポータ プロセスにSIGHUP
送信するか、 /-/reload
エンドポイントに HTTP POST リクエストを送信することによってトリガーされます。
使用可能なすべてのコマンドライン フラグを表示するには、 ./blackbox_exporter -h
を実行します。
どの構成ファイルをロードするかを指定するには、 --config.file
フラグを使用します。
さらに、構成例も利用できます。
現在、HTTP、HTTPS ( http
プローバー経由)、DNS、TCP ソケット、ICMP、および gRPC (アクセス許可セクションを参照) がサポートされています。ニーズに合わせて追加のモジュールを定義できます。
各プローブのタイムアウトは、Prometheus 構成のscrape_timeout
から自動的に決定され、ネットワーク遅延を考慮してわずかに短縮されます。これは、Blackbox エクスポータ構成ファイルのtimeout
によってさらに制限される可能性があります。どちらも指定されていない場合、デフォルトは 120 秒になります。
ブラックボックス エクスポータはマルチターゲット エクスポータ パターンを実装しているため、構成に関する一般的なアイデアを得るためにガイド「マルチターゲット エクスポータ パターンの理解と使用」を読むことをお勧めします。
ブラックボックス エクスポータにはパラメータとしてターゲットを渡す必要があります。これはラベルを変更することで実行できます。
設定例:
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 プローブは、 Host
ヘッダーと TLS SNI を設定する追加のhostname
パラメーターを受け入れることができます。これは、 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
を実行して機能を設定することもできます。