天天看點

prometheus專題—(十三) proemetheus多執行個體采集

exporter 分類

prometheus專題—(十三) proemetheus多執行個體采集

proemetheus exporter 多執行個體采集說明

為什麼有多執行個體采集

·要麼無法在目标伺服器上運作程式,例如說網絡裝置的SNMP

·要麼我們對距離(例如網站從網絡外部特定點到站點的延遲和可通路性)特别感興趣,這是常見的黑盒導出器的·用例。

·或者說部署agent代價比較大

多執行個體采集模式特點

exporter将通過網絡協定擷取目标的名額。

exporter不必在擷取度量标準的計算機上運作。

Prometheus GET請求的參數作為 exporter擷取目标和查詢配置字元串

然後,exporter在收到Prometheus的GET請求之後開始抓取

exporter可以采集多個目标

blackbox_exporter 需要傳入target 和 module 參數,采用下列方式加入的采集池中

- job_name: 'blackbox-http'
    # metrics的path 注意不都是/metrics
    metrics_path: /probe
    # 傳入的參數
    params:
      module: [http_2xx]  # Look for a HTTP 200 response.
      target: [prometheus.io,www.baidu.com,172.20.70.205:3000]
    static_configs:
      - targets:
        - 172.20.70.205:9115       
- 此方案的缺點
  - 實際采集目标位于參數配置中,這非常不尋常,以後很難了解。
  - 該instance标簽顯示的是`blackbox_exporter`的位址,從技術上講是真實的,但不是我們感興趣的内容。
  - 我們看不到我們探查了哪個URL。這是不切實際的,并且如果我們探查多個URL,也會将不同的名額混合到一個名額中。

- 解決方案說明:relabeling
  - 所有以__開頭的标簽在采集完成後都會被drop調。大多數内部标簽以開頭__
  - 可以設定一個内部标簽形如`__param_<name>` ,代表設定URL參數 name=value 
  - 有一個内部标簽__address__,在static_configs時由targets設定,其值是抓取請求的主機名。預設情況下,它被指派給instance 标簽,代表采集來源。      

blackbox_exporter relabel 配置

将參數作為采集的target傳入

- job_name: 'blackbox-http'
    # metrics的path 注意不都是/metrics
    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://www.baidu.com   # Target to probe with https.
        - http://172.20.70.205:3000 # Target to probe with http on port 3000.
    relabel_configs:
      # 第一步:我們從标簽中擷取值__address__(來自targets),然後将它們寫入新标簽__param_target
      # 然後blackbox_exporter 會接收到 target參數
      - source_labels: [__address__]
        target_label: __param_target

      # 第二步:我們從标簽_param_target中擷取值,并使用這些值建立instance标簽。
      - source_labels: [__param_target]
        target_label: instance

      # 第三步: 将采集源由原來的targe替換為 真實的blackbox_exporter位址
      - target_label: __address__
        replacement: 127.0.0.1:9115  # The blackbox exporter's real hostname:port.

      

prometheus特殊tag說明

- __address__
- __name__
- instance
- job
- __metrics_path__       
prometheus專題—(十三) proemetheus多執行個體采集

繼續閱讀