一、遠端探測介紹
監控應用程序的兩種主要方法:探測和內省(例:node_exporter)。
探測監視應用程序的外部,可以查詢應用程序的外部特征:是否響應開放端口上的輪詢並返回正確的數據或響應代碼?eg:執行ICMP ping或echo檢查並確認是否收到了響應。這種類型的探測也稱為黑盒探測,將內部應用程序視為黑盒。
Prometheus探測工作是通過blackbox_exporter 來探測遠程目標,並公開在本地端點上收集的任何時間序列。然后,Prometheus從端點中提取指標。
探測有三個限制:
-
能到到達探測的資源池
-
探測的位置能夠訪問到應用程序資源的正確路徑。
-
探測exporter的位置能夠被prometheus-server scape。
二、遠端探測配置blackbox_exporter
1、概述
blackbox_exporter是一個二進制Go應用程序,默認監聽端口9115。exporter允許通過HTTP、HTTPS、DNS、TCP和ICMP探測端點。在exporter中,我們定義一系列執行特定檢查的模塊,例:檢查正在運行的web服務器,或者DNS解析記錄。當exporter運行時,它會在URL上公開這些模塊和API。
2、安裝配置
安裝配置blackbox_exporter
[root@master soft]# wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.16.0/blackbox_exporter-0.16.0.linux-amd64.tar.gz [root@master soft]# tar xf blackbox_exporter-0.16.0.linux-amd64.tar.gz [root@master soft]# mv blackbox_exporter-0.16.0.linux-amd64 /opt/prometheus/blackbox_exporter [root@master blackbox_exporter]# vim blackbox.yml #只添加簡單檢測,更多配置參考官方文檔 modules: http_2xx: prober: http timeout: 5s http: valid_status_codes: [] method: GET icmp_check: prober: icmp timeout: 5s icmp: preferred_ip_protocol: "ipv4" dns_examplecom_check: prober: dns dns: preferred_ip_protocol: "ipv4" query_name: "baidu.com" [root@master blackbox_exporter]# nohup ./blackbox_exporter --config.file="prober.yml" &
瀏覽器訪問:
http://192.168.42.128:9115/ 可以看到指標
prometheus配置添加一個job
[root@node1 prometheus]# vim prometheus.yml ...... - job_name: black_exporter metrics_path: /probe params: modules: [http_2xx_check] static_configs: - targets: - 192.168.42.128:9115 relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 192.168.42.128:9115 [root@node1 prometheus]# docker restart prometheus-server
訪問prometheus web頁面,可以看到已經檢測了。

查看metric:

訪問blackbox_exporter的web頁面,也可以看到Recent Probes。
