블랙박스 내보내기를 사용하면 HTTP, HTTPS, DNS, TCP, ICMP 및 gRPC를 통해 엔드포인트에 대한 블랙박스 검색이 가능합니다.
릴리스 탭에서 가장 적합한 바이너리를 다운로드하세요.
그 다음에:
./blackbox_exporter
참고: 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 내보내기는 TLS 및 기본 인증을 지원합니다. 이를 통해 다양한 HTTP 엔드포인트를 더 효과적으로 제어할 수 있습니다.
TLS 및/또는 기본 인증을 사용하려면 --web.config.file
매개변수를 사용하여 구성 파일을 전달해야 합니다. 파일 형식은 내보내기 툴킷 저장소에 설명되어 있습니다.
TLS 및 기본 인증 설정은 모든 HTTP 엔드포인트(스크래핑의 경우 /metrics, 프로브의 경우 /probe 및 웹 UI)에 영향을 미칩니다.
make
성공적인 로컬 빌드 후:
docker build -t blackbox_exporter .
블랙박스 내보내기는 구성 파일과 명령줄 플래그(예: 로드할 구성 파일, 수신할 포트, 로깅 형식 및 수준)를 통해 구성됩니다.
Blackbox 내보내기는 런타임에 구성 파일을 다시 로드할 수 있습니다. 새 구성이 제대로 구성되지 않은 경우 변경 사항이 적용되지 않습니다. 구성 다시 로드는 SIGHUP
을 Blackbox 내보내기 프로세스로 보내거나 HTTP POST 요청을 /-/reload
엔드포인트로 보내 트리거됩니다.
사용 가능한 모든 명령줄 플래그를 보려면 ./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 프로브는 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
기능 또는 루트 사용자가 필요합니다./etc/sysctl.conf
또는 이와 유사한 net.ipv4.ping_group_range
구성할 수 있습니다. 그렇지 않은 경우 net.ipv4.ping_group_range = 0 2147483647
설정하여 모든 사용자가 ping을 사용할 수 있도록 허용할 수 있습니다.setcap cap_net_raw+ep blackbox_exporter
실행하여 기능을 설정할 수 있습니다.