首页/云/可观测性速查/static_configs:静态目标列表
Prometheus 与采集64 条

static_configs:静态目标列表

直接声明目标的方式:在任务下写 targets 列表并附加标签;适合目标数量少、或由配置管理工具统一生成的场景,规模变大后应替换为服务发现。

可观测性速查云更新于 2026-10-13

static_configs 是什么

static_configs 是 Prometheus 里最直接的目标声明方式:在任务下写 targets 列表并附加标签,配置一次即可长期生效。它适合目标数量少、或由配置管理工具统一生成的场景;规模变大、实例频繁伸缩后应替换为 file_sd 或平台服务发现,否则每次变更都要改配置并重载。

基本信息

配置位置scrape_configs[].static_configs
目标写法targets: [ip:port, ...]
标签labels 附加到该组全部目标
生效方式改配置后需重载或重启
适用规模目标少且稳定
演进方向file_sd / kubernetes_sd / 平台服务发现

典型使用场景

  • 小型环境里手工维护十几台机器的监控目标
  • 由 Ansible 等配置管理工具生成配置,机器清单变更时同步更新
  • 给不同角色的目标打标签(master/replica、prod/test)便于查询
  • 临时接入几台新机器做验证,稳定后再迁移到服务发现
  • 为固定地址的中间件(数据库、缓存)配置采集目标
  • 教学与 PoC 环境中快速搭起可用的抓取配置

多目标与按目标打标

多目标与按目标打标
scrape_configs:
  - job_name: mysql
    static_configs:
      - targets:
          - 10.0.3.11:9104   # 主库
          - 10.0.3.12:9104   # 从库
        labels:
          role: mysql
          env: prod
      - targets: [10.0.3.21:9104]
        labels:
          role: mysql
          env: test          # 不同组可打不同标签

字段说明

字段作用注意
targets目标地址列表格式为 host:port
labels附加标签作用于该组全部目标
job_name任务名会成为 job 标签
metrics_path指标路径默认 /metrics
scheme协议默认 http,可改 https
静态目标不会随实例变化自动更新;实例频繁伸缩时应迁移到 file_sd 或平台服务发现,让目标清单自动跟随。
targets 变更需要重载配置才会生效,漏重载会导致新实例未被采集,或已下线实例持续显示异常。
同一 job 下可以写多个 static_configs 组,每组带自己的标签,适合按环境或角色分组管理。
静态列表写进版本库后要配套下线流程:机器退役时同步删除目标,否则长期 up=0 会形成噪声并干扰告警。

易错点

  • targets 变更需要重载配置才会生效,漏重载会导致新实例未被采集
  • 把 targets 写进 Git 时注意机器下线流程,失效目标会长期显示 up=0 形成噪声
  • 标签打错(如把从库标成主库)会让按角色聚合的结果完全失真
  • 目标数量增长后手工维护容易遗漏,是迁移到服务发现的常见触发点
  • 覆盖 metrics_path 或 scheme 的字段写在错误层级(如放进 targets 里)不会生效,也无明显报错

数据来源与参考

  • Prometheus 文档 · static_config
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌