Prometheus之配置采集目标

1.  自定义采集目标

    使用scrape_configs定义采集目标

    1.  模板       

# 任务名称,自动作为抓取到的指标的一个标签
job_name: <job_name>
 
# 抓取周期
[ scrape_interval: <duration> | default = <global_config.scrape_interval> ]
# 每次抓取的超时
[ scrape_timeout: <duration> | default = <global_config.scrape_timeout> ]
# 从目标抓取指标的URL路径
[ metrics_path: <path> | default = /metrics ]
# 当添加标签发现指标已经有同名标签时,是否保留原有标签不覆盖
[ honor_labels: <boolean> | default = false ]
# 抓取协议
[ scheme: <scheme> | default = http ]
# HTTP请求参数
params:
  [ <string>: [<string>, ...] ]
 
# 身份验证信息
basic_auth:
  [ username: <string> ]
  [ password: <secret> ]
  [ password_file: <string> ]
# Authorization请求头取值
[ bearer_token: <secret> ]
# 从文件读取Authorization请求头
[ bearer_token_file: /path/to/bearer/token/file ]
 
# TLS配置
tls_config:
  [ <tls_config> ]
 
# 代理配置
[ proxy_url: <string> ]
 
# DNS服务发现配置
dns_sd_configs:
  [ - <dns_sd_config> ... ]
# 文件服务发现配置
file_sd_configs:
  [ - <file_sd_config> ... ]
# K8S服务发现配置
kubernetes_sd_configs:
  [ - <kubernetes_sd_config> ... ]
 
# 此Job的静态配置的目标列表
static_configs:
  [ - <static_config> ... ]
 
# 目标重打标签配置
relabel_configs:
  [ - <relabel_config> ... ]
# 指标重打标签配置
metric_relabel_configs:
  [ - <relabel_config> ... ]
 
# 每次抓取允许的最大样本数量,如果在指标重打标签后,样本数量仍然超过限制,则整个抓取认为失败
# 0表示不限制
[ sample_limit: <int> | default = 0

    2.  样例

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']

  - job_name: 'node'
    file_sd_configs:
      - files: ['/usr/local/prometheus/sd_config/node.yml']
        refresh_interval: 5s

  - job_name: 'ping_all'
    scrape_interval: 1m
    metrics_path: /probe
    params:
      module: [icmp]
    static_configs:
      - targets:
        - 10.0.0.1
        labels:
          instance: ZX_防火墙

2.  标签的使用

    1.  默认标签

        __address__:当前Target实例的访问地址 

        __scheme__:采集目标服务访问地址的HTTP Scheme,HTTP或者HTTPS;

        __metrics_path__:采集目标服务访问地址的访问路径

    2.  添加标签

scrape_configs:
- job_name: "ping_all"
static_configs: - targets: ['localhost:9090'] # 添加标签选项 labels: # 标签key:标签value idc: bj 

    3.  重新标签

        1.  模板

relable_configs:
  # 源标签
  [ source_labels: '[' <labelname> [, ...] ']' ]
  
  # 多个源标签时连接的分隔符
  [ separator: <string> | default = ; ]
  
  # 重新标记的标签
  [ target_label: <labelname> ]
  
  # 整则表达式匹配源标签的值
  [ regex: <regex> | default = (.*) ]
  
  # 用的少,占时略
  [ modulus: <uint64> ]
  
  # 替换正则表达式匹配的分组,分组引用 $1,$2,$3,....
  [ replacement: <string> | default = $1 ]
  
  # 基于正则表达式匹配执行的操作
  [ action: <relabel_action> | default = replace ]

        2.  action:重新标签动作

replace:默认,通过regex匹配source_label的值,使用replacement来引用表达式匹配的分组
keep:删除regex与连接不匹配的目标 source_labels
drop:删除regex与连接匹配的目标 source_labels
labeldrop:删除regex匹配的标签
labelkeep:删除regex不匹配的标签
hashmod:设置target_label为modulus连接的哈希值source_labels
labelmap:匹配regex所有标签名称。然后复制匹配标签的值进行分组,replacement分组引用(${1},${2},…)替代

        3.  重命名标签 

scrape_configs:
  # 作业改为bj
  - job_name: 'bj'
    static_configs:
    - targets: ['localhost:9090']
# 添加重命名标签
    relabel_configs:
# 基于正则表达式匹配操作
    - action: replace
  # 指定源标签 
      source_labels: ['job']
  # 写入正则,捕获值
      regex: (.*)
  # 替换正则表达式匹配到的分组,分组引用 $1
      replacement: $1
  # 重新标记标签 为 idc
      target_label: idc 

        4.  删除标签

scrape_configs:
  - job_name: 'bj'
    static_configs:
    - targets: ['localhost:9090']
    relabel_configs:
    # 删除指定标签
    - action: labeldrop
      # 指定 job 标签
      regex: job

        5.  指定标签下的主机停止数据采集

scrape_configs:
  - job_name: 'bj'
    static_configs:
    - targets: ['localhost:9090']
    relabel_configs:
    # 启动drop标签过滤,被指定到的标签停止数据采集
    - action: drop
      # 指定 job 标签
      source_labels: ['job']

        6.  指定标签下的主机保留数据采集

scrape_configs:
  - job_name: 'bj'
    static_configs:
    - targets: ['localhost:9090']
    relabel_configs:
    # 启动keep标签过滤,被指定到的标签保留数据采集
    - action: keep
      # 指定 job 标签
      source_labels: ['job']

 

posted @ 2023-05-12 14:36  奋斗史  阅读(395)  评论(0)    收藏  举报