中间件

Prometheus监控

admin · 1月4日 · 2022年

一、配置文件prometheus.yml解析

#全局配置(如果有内部单独设定,会覆盖这个参数)
global:
  #默认15s 全局每次数据收集的间隔
  scrape_interval:     15s

  # 规则扫描时间间隔是15秒,默认不填写是 1分钟
  evaluation_interval: 15s

  #默认10s 超时时间
  scrape_timeout:      10s

#告警规则。 按照设定参数进行扫描加载,用于自定义报警规则,其报警媒介和route路由由alertmanager插件实现
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# 告警插件,这里会设定alertmanager这个报警插件
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      #alertmanager组件的ip
      # - alertmanager:9093

#采集配置。配置数据源,包含分组job_name以及具体target。又分为静态配置和服务发现
scrape_configs:
  - job_name: 'prometheus'
    #这里会覆盖global设定的值
    scrape_interval: 10s
    #默认为/metrics
    metrics_path: /metrics
    #静态规则
    static_configs:
    #文件发现
    file_sd_configs:
      - files:
        - /software/prometheus/cx-node.yml

       #target格式,labels下可定义多个标签,yml文件同理
       - targets: [ '10.0.0.229:8081' ]
           labels:
             instance: 10.0.0.229
             service: nginx
             service_name: 网页服务
             service_type: 1
             service_port: 8081

    relabel_configs:
          #将源标签为__address__的 【标签】 替换为 __param_target标签,value不变
        - source_labels: [__address__]
          target_label:  __param_target
          #将目的标签为__address__的 【值】 替换为 10.0.0.230:9115,key不变
        - target_label: __address__
          replacement: 10.0.0.230:9115


--------------------------------------------------------------------------------
source_labels指定需要处理的源标签
target_labels指定要replace后的标签名字
action指定relabel动作,这里使用replace替换动作
regex去匹配源标签(__hostname__)的值,"(.*)"代表__hostname__这个标签是什么值都匹配的
replacement指定的替换后的标签(target_label)对应的数值

系统使用的标签
	__address__:		   当前Target实例的访问地址[host]:[port]
	__scheme__:		   采集目标服务访问地址的HTTP Scheme,HTTP或者HTTPS
	__metrics_path__: 采集目标服务访问地址的访问路径
	__param_:			   采集任务目标服务的中包含的请求参数
	__name__: 			   此标签是标识指标名称的预留标签
  __param_<name>     标签的值,是传给URL的查询参数<name>的值;


action:
	replace:   对标签和标签值进行替换。
	keep: 	   满足特定条件的实例进行采集,其他的不采集。
	drop: 	   满足特定条件的实例不采集,其他的采集。
	hashmod:  将 target_label 设置为关联的 source_label 的哈希模块。
	labelmap: 根据 regex 去匹配 Target 实例所有标签的名称(注意是名称),并且将捕获到的内容作为为新的标签名称,regex 匹配到标签的的值作为新标签的值。
	labeldrop:对抓取的实例特定标签进行删除。
	labelkeep:对抓取的实例特定标签进行保留,其他标签删除。
--------------------------------------------------------------------------------


# Settings related to the remote write feature.
remote_write:
  [ - <remote_write> ... ]

# Settings related to the remote read feature.
remote_read:
  [ - <remote_read> ... ]