ผู้ส่งออก blackbox อนุญาตให้ตรวจสอบ blackbox ของจุดสิ้นสุดผ่าน HTTP, HTTPS, DNS, TCP, ICMP และ gRPC
ดาวน์โหลดไบนารีที่เหมาะสมที่สุดจากแท็บเผยแพร่
แล้ว:
./blackbox_exporter
หมายเหตุ: คุณอาจต้องการเปิดใช้งาน 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 จะแสดงเมตริกสำหรับโพรบ HTTP เทียบกับ google.com เมทริก probe_success
บ่งชี้ว่าการสอบสวนสำเร็จหรือไม่ การเพิ่มพารามิเตอร์ debug=true
จะส่งคืนข้อมูลการดีบักสำหรับโพรบนั้น
ตัวชี้วัดที่เกี่ยวข้องกับการดำเนินการของผู้ส่งออกนั้นมีอยู่ที่จุดสิ้นสุด http://localhost:9115/metrics
Blackbox Exporter รองรับ TLS และการตรวจสอบสิทธิ์ขั้นพื้นฐาน ซึ่งช่วยให้สามารถควบคุมจุดสิ้นสุด HTTP ต่างๆ ได้ดียิ่งขึ้น
หากต้องการใช้ TLS และ/หรือการตรวจสอบสิทธิ์ขั้นพื้นฐาน คุณจะต้องส่งไฟล์การกำหนดค่าโดยใช้พารามิเตอร์ --web.config.file
รูปแบบของไฟล์อธิบายไว้ในที่เก็บเครื่องมือผู้ส่งออก
โปรดทราบว่าการตั้งค่า TLS และการตรวจสอบสิทธิ์ขั้นพื้นฐานส่งผลต่อตำแหน่งข้อมูล HTTP ทั้งหมด: /metrics for scraping, /probe for probing และ web UI
make
หลังจากสร้างท้องถิ่นสำเร็จแล้ว:
docker build -t blackbox_exporter .
ผู้ส่งออก Blackbox ได้รับการกำหนดค่าผ่านไฟล์การกำหนดค่าและแฟล็กบรรทัดคำสั่ง (เช่น ไฟล์การกำหนดค่าที่จะโหลด พอร์ตใดที่จะรับฟัง และรูปแบบและระดับการบันทึก)
ผู้ส่งออก Blackbox สามารถโหลดไฟล์การกำหนดค่าใหม่ได้ในขณะรันไทม์ หากการกำหนดค่าใหม่มีรูปแบบไม่ถูกต้อง การเปลี่ยนแปลงจะไม่ถูกนำมาใช้ การโหลดการกำหนดค่าใหม่จะถูกทริกเกอร์โดยการส่ง SIGHUP
ไปยังกระบวนการผู้ส่งออก Blackbox หรือโดยการส่งคำขอ HTTP POST ไปยังจุดสิ้นสุด /-/reload
หากต้องการดูแฟล็กบรรทัดคำสั่งที่มีอยู่ทั้งหมด ให้รัน ./blackbox_exporter -h
หากต้องการระบุไฟล์การกำหนดค่าที่จะโหลด ให้ใช้แฟล็ก --config.file
นอกจากนี้ยังมีการกำหนดค่าตัวอย่างอีกด้วย
ปัจจุบันรองรับ HTTP, HTTPS (ผ่าน http
prober), DNS, ซ็อกเก็ต TCP, ICMP และ gRPC (ดูหัวข้อการอนุญาต) สามารถกำหนดโมดูลเพิ่มเติมให้ตรงตามความต้องการของคุณได้
การหมดเวลาของแต่ละโพรบจะถูกกำหนดโดยอัตโนมัติจาก scrape_timeout
ในการกำหนดค่า Prometheus ซึ่งลดลงเล็กน้อยเพื่อรองรับความล่าช้าของเครือข่าย ซึ่งอาจจำกัดเพิ่มเติมได้ด้วย timeout
ในไฟล์กำหนดค่าผู้ส่งออก Blackbox หากไม่ได้ระบุ จะมีค่าเริ่มต้นอยู่ที่ 120 วินาที
ผู้ส่งออก Blackbox ใช้รูปแบบผู้ส่งออกแบบหลายเป้าหมาย ดังนั้นเราจึงแนะนำให้อ่านคำแนะนำ ทำความเข้าใจและการใช้รูปแบบผู้ส่งออกแบบหลายเป้าหมาย เพื่อรับแนวคิดทั่วไปเกี่ยวกับการกำหนดค่า
ผู้ส่งออก 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
หรือผู้ใช้รูทnet.ipv4.ping_group_range
ตามค่าเริ่มต้นใน /etc/sysctl.conf
หรือที่คล้ายกัน หากไม่ใช่คุณสามารถตั้งค่า net.ipv4.ping_group_range = 0 2147483647
เพื่อให้ผู้ใช้สามารถใช้ ping ได้setcap cap_net_raw+ep blackbox_exporter