• Prometheus relabel 配置


    relabel_config

    重新标记是一个功能强大的工具,可以在目标的标签集被抓取之前重写它,每个采集配置可以配置多个重写标签设置,并按照配置的顺序来应用于每个目标的标签集。

    目标重新标签之后,以__开头的标签将从标签集中删除的。

    如果使用只需要临时的存储临时标签值的,可以使用_tmp作为前缀标识。

    relabel的action类型

    • replace: 对标签和标签值进行替换。
    • keep: 满足特定条件的实例进行采集,其他的不采集。
    • drop: 满足特定条件的实例不采集,其他的采集。
    • hashmod: 这个我也没看懂啥意思,囧。
    • labelmap: 这个我也没看懂啥意思,囧。
    • labeldrop: 对抓取的实例特定标签进行删除。
    • labelkeep: 对抓取的实例特定标签进行保留,其他标签删除。

    常用action的测试

    在测试前,同步下配置文件如下。

    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 都是以__开头的,目标重新标签之后,以__开头的标签将从标签集中删除的。

    replace

    比如将所有 labels 中的 instance 的 9100 端口去掉

    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 信息如下图:

    image-20200524202121908

    说下上面的配置:

    • 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

  • 相关阅读:
    Python+selenium怎么自定义函数进行翻页操作定位第二页元素
    序列
    元组
    读书笔记-活出意义来
    多线程源代码学习笔记
    MacOS环境下Redis安装
    django修改静态文件(css,js)之后,浏览器效果没改变
    JavaScript变量、值类型介绍和启发-day01
    99乘法法则(使用bootstrap做表格效果)
    do-while循环的与for循环,while循环的区别是什么——(摘抄)
  • 原文地址:https://www.cnblogs.com/A121/p/14969451.html
Copyright © 2020-2023  润新知