prometheus配置文件详解

发布于:2024-08-22 ⋅ 阅读:(30) ⋅ 点赞:(0)

Prometheus 是一个开源的系统监控和报警工具。它的配置文件通常是一个YAML文件,默认路径为 /etc/prometheus/prometheus.yml。下面是 Prometheus 配置文件的详细解释,包括常见配置项及其含义。

Prometheus 配置文件结构

一个典型的 prometheus.yml 配置文件的结构如下:

global:
  scrape_interval: 15s
  evaluation_interval: 15s
  scrape_timeout: 10s

scrape_configs:
  - job_name: 'example'
    static_configs:
      - targets: ['localhost:9090']
1. global 配置

global 配置定义了全局的配置参数,这些参数可以在 scrape_configs 中被覆盖。

global:
  scrape_interval: 15s  # 全局抓取间隔,默认是 1m
  evaluation_interval: 15s  # 全局规则评估间隔,默认是 1m
  scrape_timeout: 10s  # 抓取超时时间,默认是10秒
2. scrape_configs 配置

scrape_configs 定义了 Prometheus 应该抓取的目标。它是一个列表,每个条目代表一个抓取任务(job)。

scrape_configs:
  - job_name: 'example'  # 抓取任务的名称
    static_configs:
      - targets: ['localhost:9090']  # 静态配置的抓取目标
常见的 scrape_configs 配置选项:
  • job_name:任务名称,必须唯一。
  • static_configs:一组静态目标配置,直接指定目标地址。
  • relabel_configs:重新标签配置,用于修改抓取目标标签。
  • tls_config:TLS 配置,用于 HTTPS。
  • basic_auth:基本认证,用于 HTTP Basic Auth。

详细示例配置

下面是一个更详细的 prometheus.yml 配置示例:

global:
  scrape_interval: 15s
  evaluation_interval: 15s

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

  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100']
    relabel_configs:
      - source_labels: [__address__]
        target_label: instance
        regex: '(.*):.*'
        replacement: '${1}'

  - job_name: 'cadvisor'
    static_configs:
      - targets: ['localhost:8080']

  - job_name: 'kubernetes-apiservers'
    kubernetes_sd_configs:
      - role: endpoints
    relabel_configs:
      - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
        action: keep
        regex: default;kubernetes;https

alerting:
  alertmanagers:
    - static_configs:
        - targets: ['localhost:9093']

rule_files:
  - 'rules/*.yml'
3. relabel_configs

relabel_configs 用于修改抓取目标的标签,可以用于动态配置目标地址或去除不需要的标签。

relabel_configs:
  - source_labels: [__address__]
    target_label: instance
    regex: '(.*):.*'
    replacement: '${1}'
4. alerting

alerting 配置定义了 Alertmanager 实例,Prometheus 会将报警发送到这些实例。

alerting:
  alertmanagers:
    - static_configs:
        - targets: ['localhost:9093']
5. rule_files

rule_files 配置定义了 Prometheus 读取的规则文件的路径,用于定义报警规则和录制规则。

rule_files:
  - 'rules/*.yml'

其他配置项

Prometheus 提供了许多其他配置项,例如 remote_readremote_write 用于远程存储,alert_relabel_configs 用于报警重新标签等。

完整的配置选项可以参考 Prometheus 官方文档:Prometheus Configuration