Prometheus监控实战系列三:配置介绍

时间:2022-03-20 01:13:26

Prometheus使用名为prometheus.yml的配置文件进行设置,通过在启动时指定相关的文件,对配置内容进行加载。

该配置文件分为四个模块:global(全局配置)、alerting(告警配置)、rule_files(规则配置)、scrape_configs(目标拉取配置),本文将分别对其进行讲解介绍。

1、global

用于定义prometheus的全局配置。

global:
  scrape_interval: 15s 
  evaluation_interval: 15s 
  scrape_timeout: 10s 
  • scrape_interval :用来指定Prometheus从监控端抓取数据的时间间隔(默认为15s),如果在特定的job指定时间间隔指标,则该job的配置会覆盖全局设置。
  • evaluation_interval:用于指定检测告警规则的时间间隔,每15s重新检测告警规则,并对变更进行更新。
  • scrape_timeout:定义拉取实例指标的超时时间。

2、alerting

用于设置Prometheus与Alertmanager的通信,在Prometheus的整体架构中,Prometheus会根据配置的告警规则触发警报并发送到独立的Alertmanager组件,Alertmanager将对告警进行管理并发送给相关的用户。

alerting:
  alertmanagers:
  - scheme: http
    timeout: 10s
    static_configs:
    - targets:
        - 192.168.75.160:9093
  • scheme:配置如何访问alertmanager,可使用http或https。
  • timeout:配置与alertmanager连接的超时时间。
  • static_configs:配置alertmanager的地址信息,关于Alertmanager的内容会在后续的文档中介绍。

3、rule_files

Prometheus的告警规则都是通过yml文件进行配置。

rule_files:
  - "first_rules.yml"
  - "second_rules.yml"

也可以使用正则匹配告警规则

rule_files:
  - /usr/local/prometheus/rules/*.rules

4、scrape_configs

用于指定Prometheus抓取的目标信息。

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

  # 被监控机器
  - job_name: 'agent1'
    static_configs:
    - targets: ['192.168.75.162:9100'] # 被监控ip,端口9100
    
  # 监控mysql
  - job_name: 'agent1_mysql'
    static_configs:
    - targets: ['192.168.75.162:9104']

Prometheus对于监控数据的抓取,通过配置job的方式进行操作。在job里面指定了一组目标抓取所必须的信息,例如目标地址、端口、标签和验证信息等。抓取的时间间隔使用上面global模块配置的时间,也可在该job中单独指定。

在实际环境中,通常会根据抓取目标的类型不同,如Mysql、mongodb、kafka等,分成多个job来进行。

默认配置只有一个监控目标,即prometheus server本身,端口为9090,如果不指定路径,默认会从/metrics路径抓取。

上一篇:Prometheus监控实战系列二: 安装部署
下一篇:Prometheus监控实战系列四:数据格式