Prometheus的配置

# Prometheus 全局配置
global:
  # 采集數(shù)據(jù)的間隔時(shí)間(默認(rèn) 15s)
  scrape_interval: 15s 

  # 評(píng)估告警規(guī)則的間隔時(shí)間(默認(rèn) 15s)
  evaluation_interval: 15s 

  # 抓取目標(biāo)超時(shí)時(shí)間(默認(rèn) 10s)
  scrape_timeout: 10s 

  # 外部標(biāo)簽:會(huì)添加到所有時(shí)間序列和告警上(可用于區(qū)分環(huán)境,如 prod/test)
  external_labels:
    monitor: "prometheus-monitor"


# Alertmanager 配置(指定告警接收器)
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # Alertmanager 服務(wù)地址(需替換為實(shí)際地址)
          - 'alertmanager:9093' 
      # 與 Alertmanager 通信的超時(shí)時(shí)間
      timeout: 10s


# 告警規(guī)則文件配置(從文件加載告警規(guī)則)
rule_files:
  # - "first_rules.yml"  # 示例規(guī)則文件(取消注釋并替換為實(shí)際路徑)
  # - "second_rules.yml"


# 抓取目標(biāo)配置(定義需要采集監(jiān)控?cái)?shù)據(jù)的服務(wù))
scrape_configs:
  # 配置名稱(自定義,用于標(biāo)識(shí)一組目標(biāo))
  - job_name: "prometheus"  # 采集 Prometheus 自身的監(jiān)控?cái)?shù)據(jù)

    # 覆蓋全局的采集間隔(僅對(duì)當(dāng)前 job 生效)
    scrape_interval: 5s

    # 靜態(tài)配置目標(biāo)(固定的服務(wù)地址)
    static_configs:
      - targets: ["localhost:9090"]  # Prometheus 自身的地址(默認(rèn)端口 9090)


  # 示例:采集 Linux 服務(wù)器節(jié)點(diǎn)數(shù)據(jù)(需提前部署 node_exporter)
  - job_name: "node"
    scrape_interval: 10s
    static_configs:
      - targets:
          - "node1:9100"  # 節(jié)點(diǎn) 1 的 node_exporter 地址(默認(rèn)端口 9100)
          - "node2:9100"  # 節(jié)點(diǎn) 2 的 node_exporter 地址
        # 為該組目標(biāo)添加額外標(biāo)簽(如區(qū)分機(jī)房)
        labels:
          env: "production"
         機(jī)房: "北京"


  # 示例:采集 Docker 容器數(shù)據(jù)(需部署 cadvisor)
  - job_name: "docker"
    scrape_interval: 15s
    static_configs:
      - targets: ["cadvisor:8080"]  # cadvisor 地址(默認(rèn)端口 8080)


  # 示例:基于文件動(dòng)態(tài)發(fā)現(xiàn)目標(biāo)(適合大規(guī)模場(chǎng)景,目標(biāo)地址寫在文件中)
  - job_name: "file_sd_demo"
    # 從 JSON/YAML 文件加載目標(biāo)(文件內(nèi)容變化時(shí)自動(dòng)更新)
    file_sd_configs:
      - files:
          - "targets/*.yml"  # 匹配 targets 目錄下的所有 yml 文件
        refresh_interval: 5m  # 刷新文件的間隔時(shí)間


  # 示例:基于 Kubernetes 服務(wù)發(fā)現(xiàn)(自動(dòng)發(fā)現(xiàn) K8s 中的 Pod/Service)
  - job_name: "kubernetes-pods"
    kubernetes_sd_configs:
      - role: pod  # 發(fā)現(xiàn)角色:pod(還可配置 service、node 等)
        # K8s API 地址(內(nèi)部部署時(shí)可使用集群內(nèi)地址)
        api_server: "https://kubernetes.default.svc:443"
        # 認(rèn)證配置(集群內(nèi)可使用 serviceaccount 認(rèn)證)
        bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
        tls_config:
          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
    # 標(biāo)簽重寫(可選,用于過濾或修改標(biāo)簽)
    relabel_configs:
      # 僅保留 annotation 中包含 prometheus.io/scrape: "true" 的 pod
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        action: keep
        regex: "true"
      # 從 annotation 中提取采集路徑(默認(rèn) /metrics)
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
        action: replace
        target_label: __metrics_path__
        regex: (.+)
      # 構(gòu)造采集地址:__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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容