在prometheus监控系统,prometheus的职责是采集,查询和存储和推送报警到alertmanager。本文主要介绍下prometheus的配置文件。
全局配置文件简介
按 Ctrl+C 复制代码
按 Ctrl+C 复制代码
- global: 此片段指定的是prometheus的全局配置, 比如采集间隔,抓取超时时间等。
- rule_files: 此片段指定报警规则文件, prometheus根据这些规则信息,会推送报警信息到alertmanager中。
- scrape_configs: 此片段指定抓取配置,prometheus的数据采集通过此片段配置。
- alerting: 此片段指定报警配置, 这里主要是指定prometheus将报警规则推送到指定的alertmanager实例地址。
- remote_write: 指定后端的存储的写入api地址。
- remote_read: 指定后端的存储的读取api地址。
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> ... ]
scrapy_config片段主要参数
一个scrape_config 片段指定一组目标和参数, 目标就是实例,指定采集的端点, 参数描述如何采集这些实例, 主要参数如下
- scrape_interval: 抓取间隔,默认继承global值。
- scrape_timeout: 抓取超时时间,默认继承global值。
- metric_path: 抓取路径, 默认是/metrics
- scheme: 指定采集使用的协议,http或者https。
- params: 指定url参数。
- basic_auth: 指定认证信息。
- *_sd_configs: 指定服务发现配置
- static_configs: 静态指定服务job。
- relabel_config: relabel设置。
static_configs样例
scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['localhost:9090'] - job_name: "node" static_configs: - targets: - "192.168.100.10:20001" - "192.168.100.11:20001 - "192.168.100.12:20001"
file_sd_configs样例
scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['localhost:9090'] - job_name: "node" file_sd_configs: - refresh_interval: 1m files: - "/usr/local/prometheus/prometheus/conf/node*.yml"
# 独立文件配置如下 cat conf/node-dis.conf - targets: - "192.168.100.10:20001" - "192.168.100.11:20001" - "192.168.100.12:20001" 或者可以这样配置 [root@node00 conf]# cat node-dis.yml - targets: - "192.168.100.10:20001" labels: hostname: node00 - targets: - "192.168.100.11:20001" labels: hostname: node01 - targets: - "192.168.100.12:20001" labels: hostname: node02
通过file_fd_files 配置后我们可以在不重启prometheus的前提下, 修改对应的采集文件(node_dis.yml), 在特定的时间内(refresh_interval),prometheus会完成配置信息的载入工作。
consul_sd_file样例
由于consul的配置需要有consul的服务提供, 这里简单部署下consul的服务。
上面我们可以看到有2个service , 其中prometheus-node是我们定义的service。
和prometheus集成样例:
- job_name: 'node_exporter' consul_sd_configs: - server: 'consul_ip:8500' services: ['node_exporter']
# 匹配service关键字 - job_name: 'service' consul_sd_configs: - server: 'consul_ip:8500' services: [] relabel_configs: - source_labels: [__meta_consul_tags] regex: .*service.* action: keep
在prometheus的target界面上我们看到服务注册发现的结果。
在consul和prometheus中查看
可以发现通过向consul中特定服务加入节点, 就可以在prometheus动态变动采集的实例地址。
来源:博客园
作者:漠漠颜
链接:https://www.cnblogs.com/momoyan/p/11783519.html