prometheus relabel 配置(四)

relabel_config

從新標記是一個功能強大的工具,能夠在目標的標籤集被抓取以前重寫它,每一個採集配置能夠配置多個重寫標籤設置,並按照配置的順序來應用於每一個目標的標籤集。node

目標從新標籤以後,以__開頭的標籤將從標籤集中刪除的。linux

若是使用只須要臨時的存儲臨時標籤值的,可使用_tmp做爲前綴標識。服務器

relabel的action類型

  • replace: 對標籤和標籤值進行替換。
  • keep: 知足特定條件的實例進行採集,其餘的不採集。
  • drop: 知足特定條件的實例不採集,其餘的採集。
  • hashmod: 這個我也沒看懂啥意思,囧。
  • labelmap: 這個我也沒看懂啥意思,囧。
  • labeldrop: 對抓取的實例特定標籤進行刪除。
  • labelkeep: 對抓取的實例特定標籤進行保留,其餘標籤刪除。

經常使用action的測試

在測試前,同步下配置文件以下。ide

global:
  scrape_interval:     15s
  evaluation_interval: 15s

alerting:
  alertmanagers:
  - static_configs:
    - targets:

rule_files:

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'node_export'
    static_configs:
      - targets:
        - deliver-database:9100
        - basic-database:9100
        - ETL:9100
        - APP3:9100
        - APP5:9100
        - APP4:9100
        - QCD1:9100
        - QCD2:9100
        - QCA1:9100

以上的機器,我已經在 hosts 作好解析了。工具

此時若是查看target信息,以下圖。測試

image-20200524201723718

這些都是默認的 label ,由於系統生成的 label 都是以__開頭的,目標從新標籤以後,以__開頭的標籤將從標籤集中刪除的。lua

replace

好比將全部 labels 中的 instance 的 9100 端口去掉code

global:
  scrape_interval:     15s
  evaluation_interval: 15s

alerting:
  alertmanagers:
  - static_configs:
    - targets:

rule_files:

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'node_export'
    static_configs:
      - targets:
        - deliver-database:9100
        - basic-database:9100
        - ETL:9100
        - APP3:9100
        - APP5:9100
        - APP4:9100
        - QCD1:9100
        - QCD2:9100
        - QCA1:9100
    relabel_configs:
    - source_labels:
      - "__address__"
      regex: "(.*):9100"
      target_label: "instance"
      action: replace
      replacement: "$1"

重啓服務查看 target 信息以下圖:blog

image-20200524202121908

說下上面的配置:get

  • source_labels 指定咱們咱們須要處理的源標籤, 咱們這裏處理__address__
  • target_labels 指定了咱們要 replace 後的標籤名字, 咱們這裏選擇instance
  • action 指定 relabel 動做,這裏使用 replace 替換動做。
  • regex 去匹配源標籤__address__的值,"(.*):9100"表明匹配這個表情9100前部分
  • replacement 指定的替換後的標籤(target_label)對應的數值,採用正則引用方式獲取的。

keep

好比只採集所匹配名稱爲 APP* 的機器。

修改配置文件以下

global:
  scrape_interval:     15s
  evaluation_interval: 15s

alerting:
  alertmanagers:
  - static_configs:
    - targets:

rule_files:

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'node_export'
    static_configs:
      - targets:
        - deliver-database:9100
        - basic-database:9100
        - ETL:9100
        - APP3:9100
        - APP5:9100
        - APP4:9100
        - QCD1:9100
        - QCD2:9100
        - QCA1:9100
    relabel_configs:
    - source_labels:
      - "__address__"
      regex: "APP.*"
      action: keep

重啓以後查看 target 以下圖,能夠看到只採集 APP 開頭的服務器。

image-20200524203142788

drop

在上面的基礎上,修改 action 爲 drop。

重啓以後,target 以下圖

image-20200524203259914

action 爲 drop,其實和 keep 是類似的, 不過是相反的, 只要 source_labels 的值匹配APP.*的實例不會被採集。 其餘的實例會被採集。

給 target 手動增長 label

配置文件修改成以下

global:
  scrape_interval:     15s
  evaluation_interval: 15s

alerting:
  alertmanagers:
  - static_configs:
    - targets:

rule_files:

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']
  - job_name: 'node_export'
    static_configs:
      - targets:
        - deliver-database:9100
        - basic-database:9100
        - ETL:9100
        - APP3:9100
        - APP5:9100
        - APP4:9100
        - QCD1:9100
        - QCD2:9100
        - QCA1:9100
        labels:
          os: "linux"
    relabel_configs:
    - source_labels:
      - "__address__"
      regex: "(.*):9100"
      target_label: "instance"
      action: replace
      replacement: "$1"

image-20200524204614693

歡迎你們掃碼關注,獲取更多信息

prometheus relabel 配置(四)

相關文章
相關標籤/搜索