يتيح مُصدِّر الصندوق الأسود فحص الصندوق الأسود لنقاط النهاية عبر 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: /مقاييس الاستخراج، و/probe للاختبار، وواجهة مستخدم الويب.
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 بتنفيذ نمط المُصدِّر متعدد الأهداف، لذا ننصحك بقراءة دليل فهم واستخدام نمط المُصدِّر متعدد الأهداف للحصول على فكرة عامة حول التكوين.
يحتاج مُصدِّر الصندوق الأسود إلى تمرير الهدف كمعلمة، ويمكن القيام بذلك من خلال إعادة التسمية.
مثال التكوين:
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