prometheus配置文件说明 ,官网地址: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config
全局整体分为六个部分,具体配置如下:
global:
# How frequently to scrape targets by default.
[ scrape_interval: <duration> | default = 1m ]
# How long until a scrape request times out.
[ scrape_timeout: <duration> | default = 10s ]
# How frequently to evaluate rules.
[ evaluation_interval: <duration> | default = 1m ]
# The labels to add to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
[ <labelname>: <labelvalue> ... ]
# Rule files specifies a list of globs. Rules and alerts are read from
# all matching files.
rule_files:
[ - <filepath_glob> ... ]
# A list of scrape configurations.
scrape_configs:
[ - <scrape_config> ... ]
# Alerting specifies settings related to the Alertmanager.
alerting:
alert_relabel_configs:
[ - <relabel_config> ... ]
alertmanagers:
[ - <alertmanager_config> ... ]
# Settings related to the remote write feature.
remote_write:
[ - <remote_write> ... ]
# Settings related to the remote read feature.
remote_read:
[ - <remote_read> ... ]
1、global, 全局配置
scrape_interval
: 从targets获取数据的间隔,这里配置的是默认值。scrape_timeout
: 获取数据的超时时间evaluation_interval
: alert告警规则以及record规则的计算周期, 计算是否到达阈值。external_labels
: 发送给外部系统,添加的标签。比如: 发送给alertmanager的报警信息中包含,alertmanager发出来的报警也就包含这个标签。
2、rule_files, 指定报警规则的文件
rule_files:
- "rules/test.yml"
3、scrape_configs, 指定监控目标targets的配置。
scrape_configs:
[ - <scrape_config> ... ]
3.1 static_configs
job_name:名称
targets:目标,可以填写多个,隔开
- job_name: 'mariadb-01'
static_configs:
- targets: ['172.100.102.100:9104']
labels:
alias: mariadb-01
- job_name: 'mariadb-02'
static_configs:
- targets: ['172.100.102.102:9104']
labels:
alias: mariadb-02
3.2 eureka_sd_configs
从eureka等服务注册服务读取地址:
eureka_sd_configs:
- server: http://10.126.126.77:19136/eureka
refresh_interval: 30s
3.3 file_sd_configs
从file动态读取地址:
file_sd_configs:
- files:
- /opt/soft/prometheus/prometheus-2.12.0.linux-amd64/sd/huntermanualcheck.json
refresh_interval: 1m
3.4 relabel_configs
重写label,可以根据规则进行动态的修改label的各个属性。
target_label:修改的目的label
source_labels:源label
regex:正则表达式
replacement:替换结果
action:动作为replace,默认为replace
separator:多个source_labels之间的分隔符
3.4.1.修改端口
relabel_configs:
- source_labels: [ __address__ ]
target_label: __address__
regex: (.*):10250
replacement: $1:9101
action: replace
__address__:为target的host:port的部分
$1为regex中正则匹配到的部分
3.4.2.修改地址以及添加标签
relabel_configs:
- source_labels: [__address__]
target_label: __address__
regex: (.*)
replacement: 127.0.0.1:9090
action: replace
- source_labels: [__address__, __metrics_path__]
target_label: test
separator: '-'
regex: (.*)
replacement: $1
action: replace
3.4.3.只保留符合的target
relabel_configs:
- source_labels: [__meta_kubernetes_pod_container_name,__meta_kubernetes_pod_container_port_number]
separator: ;
regex: coredns;9153
action: keep
3.4.4.删除target
relabel_configs:
- regex: ^.*(annotation|label|uid|job).*$
action: labeldrop
4、alerting
Alertmanager相关配置
5、remote_write
指定url,写入远程服务器。
6、remote_read
指定url, 从远程服务器读。