Prometheus 的配置文件通常是一个 YAML 格式的文件,通常命名为 prometheus.yml
。它包含多个部分,用于定义 Prometheus 的运行参数、抓取(scrape)配置、告警规则等。以下是 Prometheus 配置文件的基本结构和一些常见设置:
基本结构
global:
scrape_interval: 15s # 设置默认的抓取间隔
evaluation_interval: 15s # 设置规则评估间隔
alerting:
alertmanagers:
- static_configs:
- targets:
- 'localhost:9093' # Alertmanager 的地址
rule_files:
- "first_rules.yml" # 告警规则文件
- "second_rules.yml"
scrape_configs: # 定义如何抓取数据
- job_name: 'prometheus' # 任务名
static_configs:
- targets: ['localhost:9090'] # Prometheus 自监控
- job_name: 'node_exporter' # 任务名
scrape_interval: 5s # 特定任务的抓取间隔
static_configs:
- targets: ['localhost:9100']
- job_name: 'example_app' # 另一个任务
metrics_path: '/metrics' # 指标收集路径,默认为 /metrics
scheme: 'https' # 协议,默认为 http
static_configs:
- targets: ['1.2.3.4:1234']
详细说明
-
global: 包含全局配置,如
scrape_interval
(抓取间隔),这是 Prometheus 抓取目标指标的频率;evaluation_interval
是 Prometheus 评估告警规则的频率。 -
alerting: 配置与告警相关的设置,特别是 Alertmanager 的连接信息。可以指定多个 Alertmanager 实例。
-
rule_files: 指定 Prometheus 载入的告警规则文件列表,这些文件中定义了何时应该触发告警。
-
scrape_configs: 定义了 Prometheus 如何抓取目标应用或设备的指标数据。每个抓取配置可以有不同的
job_name
,这是为了区分不同的数据源。在static_configs
中可以指定具体的目标地址和端口。- metrics_path 和 scheme 分别定义了从目标抓取数据时使用的路径和协议。默认情况下,路径为
/metrics
,协议为http
。
- metrics_path 和 scheme 分别定义了从目标抓取数据时使用的路径和协议。默认情况下,路径为
每个配置部分可以非常灵活地定制,以适应不同的监控需求和环境。通过合理配置这些参数,Prometheus 能够有效地收集所需的监控数据,并对系统的健康状况进行实时监控。