{D2} - Prometheus配置详解之global,alerting,rule_files,scrape_configs,remote_read,remote_write

今天这里就不做过多解释了,直接上配置,可以先对prometheus的配置参数有个了解。

  1global:
  2  # 抓取指标的间隔,默认1m
  3  scrape_interval: 10s
  4  # 抓取指标的超时时间,默认10s
  5  scrape_timeout: 15s
  6  # 指定Prometheus评估规则的频率[记录规则(record)和告警规则(alert)],默认1m.
  7  # 可以理解为执行规则的时间间隔
  8  evaluation_interval: 15s
  9  # PromQL查询日志的相关记录文件,有点类似mysql slowlog
 10  query_log_file: prometheus_query_log
 11  # 用于区分不同的prometheus
 12  external_labels:
 13    datacenter: 'hangzhou-1'
 14    region: 'huadong'
 15
 16
 17# Alertmanager configuration
 18alerting:
 19  alertmanagers:
 20    - static_configs:
 21      - targets:
 22        - 192.168.56.11:9093
 23  alert_relabel_configs:
 24    - source_labels: [dc]
 25      regex: (.+)\d+
 26      target_label: dc
 27    - source_labels: "host"
 28      target_label: "instance"
 29      regex: "(.+)"
 30
 31
 32# Load rules once and periodically evaluate them
 33# according to the global 'evaluation_interval'.
 34rule_files:
 35  - "rules/node_alerts.yml"
 36  - "rules/node_rules.yml"
 37
 38
 39# 发现和抓取target配置相关
 40scrape_configs:
 41  # The job name is added as a label `job=<job_name>`
 42  # to any timeseries scraped from this config.
 43  - job_name: "prometheus"
 44    # metrics_path defaults to '/metrics'
 45    # scheme defaults to 'http'.
 46    static_configs:
 47      - targets: ["192.168.56.11:9090"]
 48        labels:
 49          instance: "prometheus"
 50
 51  - job_name: "pushgateway"
 52    honor_labels: true
 53    static_configs:
 54      - targets: ['192.168.56.11:9091']
 55        labels:
 56          instance: "push-gateway"
 57
 58  - job_name: "node-exporter"
 59    metrics_path: /metrics
 60    scrape_interval: 15s
 61    static_configs:
 62      - targets: ['192.168.56.11:9100']
 63
 64  - job_name: "victoriametrics-exporter"
 65    metrics_path: /metrics
 66    static_configs:
 67      - targets: ['192.168.56.11:8428']
 68        labels:
 69          instance: "victoriametrics"
 70
 71  - job_name: "app_http_list"
 72    http_sd_configs:
 73      - url: http://192.168.56.11:8010/jobs.json
 74        refresh_interval: 5s
 75#        basic_auth:
 76#          username: prometheus
 77#          password: changeme
 78#        authorization:
 79#          type: "Token"
 80#          credentials: "0123456789abcdef0123456789abcdef01234567"
 81    relabel_configs:
 82      - source_labels:     # 对replace有效
 83        - __meta_datacenter
 84        #regex: "(http|https)(.*)"
 85        #separator: ""
 86        target_label: "datacenter"
 87        replacement: "${1}"
 88        action: replace
 89#      - source_labels: [__address__]
 90#        target_label: __param_target
 91#        target_label: __address__
 92#        replacement: 127.0.0.1:9115
 93
 94#  - job_name: 'scrape-then-use-relabel-to-rename-selected-metrics'
 95#    static_configs:
 96#      - targets: ['10.10.10.1:19126']
 97#    metric_relabel_configs:
 98#      - source_labels: [ __name__ ]
 99#        target_label: __name__
100#        regex: '(^(?:go|http|process)_.*$)'
101#        action: replace
102#        replacement: telegraf_${1}
103
104#  - job_name: 'scrape-then-use-relabel-to-remove-a-label'
105#    static_configs:
106#      - targets: ['10.10.10.2:19126']
107#    metric_relabel_configs:
108#      - source_labels: [ host ]
109#        target_label: host
110#        action: replace
111#        replacement: ''
112
113#  - job_name: 'scrape-then-use-relabel-add-an-arbitrary-label'
114#    static_configs:
115#      - targets: ['10.10.10.3:19126']
116#    metric_relabel_configs:
117#     - source_labels: [ instance ]
118#       target_label: instance
119#       action: replace
120#       replacement: log-downloader
121
122
123remote_write:
124  # 指定写入数据的url
125  - url: http://192.168.56.11:8428/api/v1/write
126    remote_timeout: 30s
127    # 远程写配置的名称,如果指定,则在远程写配置中必须是唯一的。
128    # 该名称将用于度量标准和日志记录中,代替生成的值,以帮助用户区分远程写入配置。
129    name: drop_expensive
130    # 远程写重新打标签配置
131    write_relabel_configs:
132    - source_labels: [__name__]
133      regex: expensive.*
134      action: drop
135    queue_config:
136      batch_send_deadline: 5s
137      max_shards: 30
138      min_shards: 4
139      max_samples_per_send: 500
140      capacity: 20000
141
142
143# !!!提示!!!
144# 后续我们使用victoria-metrics作为远端存储
145# `remote_read`将直接读取vm的查询接口数据
146remote_read:
147  # 指定读取数据的url
148  - url: http://remote1/read
149    # 表示近期数据也要从远程存储读取,
150    # 因为Prometheus近期数据无论如何都是要读本地存储的。
151    # 设置为true时,Prometheus会把本地和远程的数据进行Merge。
152    # 默认是false,即从本地缓存查询近期数据.
153    read_recent: true
154    name: default
155  # 指定读取数据的第二个url
156  - url: http://remote3/read
157    # 从本地缓存查询近期数据
158    read_recent: false
159    name: read_special
160    # 可选的匹配器列表,必须存在于选择器中以查询远程读取端点。
161    required_matchers:
162      job: special
163    tls_config:
164      cert_file: valid_cert_file
165      key_file: valid_key_file