Prometheus的配置

# Prometheus 全局配置
global:
  # 采集数据的间隔时间(默认 15s)
  scrape_interval: 15s 

  # 评估告警规则的间隔时间(默认 15s)
  evaluation_interval: 15s 

  # 抓取目标超时时间(默认 10s)
  scrape_timeout: 10s 

  # 外部标签:会添加到所有时间序列和告警上(可用于区分环境,如 prod/test)
  external_labels:
    monitor: "prometheus-monitor"


# Alertmanager 配置(指定告警接收器)
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # Alertmanager 服务地址(需替换为实际地址)
          - 'alertmanager:9093' 
      # 与 Alertmanager 通信的超时时间
      timeout: 10s


# 告警规则文件配置(从文件加载告警规则)
rule_files:
  # - "first_rules.yml"  # 示例规则文件(取消注释并替换为实际路径)
  # - "second_rules.yml"


# 抓取目标配置(定义需要采集监控数据的服务)
scrape_configs:
  # 配置名称(自定义,用于标识一组目标)
  - job_name: "prometheus"  # 采集 Prometheus 自身的监控数据

    # 覆盖全局的采集间隔(仅对当前 job 生效)
    scrape_interval: 5s

    # 静态配置目标(固定的服务地址)
    static_configs:
      - targets: ["localhost:9090"]  # Prometheus 自身的地址(默认端口 9090)


  # 示例:采集 Linux 服务器节点数据(需提前部署 node_exporter)
  - job_name: "node"
    scrape_interval: 10s
    static_configs:
      - targets:
          - "node1:9100"  # 节点 1 的 node_exporter 地址(默认端口 9100)
          - "node2:9100"  # 节点 2 的 node_exporter 地址
        # 为该组目标添加额外标签(如区分机房)
        labels:
          env: "production"
         机房: "北京"


  # 示例:采集 Docker 容器数据(需部署 cadvisor)
  - job_name: "docker"
    scrape_interval: 15s
    static_configs:
      - targets: ["cadvisor:8080"]  # cadvisor 地址(默认端口 8080)


  # 示例:基于文件动态发现目标(适合大规模场景,目标地址写在文件中)
  - job_name: "file_sd_demo"
    # 从 JSON/YAML 文件加载目标(文件内容变化时自动更新)
    file_sd_configs:
      - files:
          - "targets/*.yml"  # 匹配 targets 目录下的所有 yml 文件
        refresh_interval: 5m  # 刷新文件的间隔时间


  # 示例:基于 Kubernetes 服务发现(自动发现 K8s 中的 Pod/Service)
  - job_name: "kubernetes-pods"
    kubernetes_sd_configs:
      - role: pod  # 发现角色:pod(还可配置 service、node 等)
        # K8s API 地址(内部部署时可使用集群内地址)
        api_server: "https://kubernetes.default.svc:443"
        # 认证配置(集群内可使用 serviceaccount 认证)
        bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
        tls_config:
          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
    # 标签重写(可选,用于过滤或修改标签)
    relabel_configs:
      # 仅保留 annotation 中包含 prometheus.io/scrape: "true" 的 pod
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        action: keep
        regex: "true"
      # 从 annotation 中提取采集路径(默认 /metrics)
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
        action: replace
        target_label: __metrics_path__
        regex: (.+)
      # 构造采集地址:__address__:port(从 annotation 提取端口)
      - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
        action: replace
        regex: ([^:]+)(?::\d+)?;(\d+)
        replacement: $1:$2
        target_label: __address__

配置生效

curl -XPOST http://127.0.0.1:9090/-/reload
curl -XPOST http://127.0.0.1:9090/-/restart
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容