You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何启用Prometheus内部指标实现Prometheus服务自监控

Prometheus 自身指标暴露配置指引

Prometheus 2.x 及以上版本默认自动开启自身运行指标暴露能力,不需要额外编译或加载插件,默认暴露规则:

  • 复用Web UI服务端口,默认9090
  • 指标访问路径固定为 /metrics
  • 验证方式:服务启动后直接访问 http://localhost:9090/metrics,能看到prometheus_*、go_*开头的时序指标文本,就说明暴露功能正常。

如果你访问上述地址拿不到指标,按以下场景排查调整:

场景1:启动配置错误导致端点未监听

官方prom/prometheus镜像的默认启动命令已经包含了正确的监听配置,如果你手动覆盖了command配置,需要确保包含以下核心参数,不要加任何禁用指标端点的参数:

# 在docker-compose.yml的prometheus服务下添加如下配置(如果之前没配command可以直接加)
services:
  prometheus:
    image: prom/prometheus
    # 新增下面的command段
    command:
      - "--config.file=/etc/prometheus/prometheus.yml"
      - "--storage.tsdb.path=/prometheus"
      - "--web.listen-address=:9090" # 监听所有网卡的9090端口,和UI共用
    # 原有ports、volumes、networks配置保持不变

配置后执行docker-compose up -d重启容器,再访问/metrics路径验证即可。

场景2:自定义路由/鉴权导致指标路径不可达

如果你给Prometheus配置了自定义参数:

  • 若加了--web.route-prefix=/自定义前缀,指标路径会变为/自定义前缀/metrics,后续采集时需要对应修改metrics_path配置
  • 若通过web.config.yml配置了Basic Auth、TLS认证,需要确保/metrics路径放通,或者在采集配置中补上对应的鉴权参数
  • 若加了反向代理,需要把/metrics路径的请求转发到Prometheus的9090端口,不要拦截该路径的请求

自监控采集配置校验参考

你提到已经掌握采集配置方法,这里给出最简可用配置供校验,写入你挂载的prometheus.yml即可:

scrape_configs:
  - job_name: "prometheus-self"
    scrape_interval: 15s
    metrics_path: "/metrics" # 自定义了路由前缀的话这里要对应修改
    static_configs:
      - targets: ["localhost:9090"]

注意:这里targets写localhost:9090即可,因为是Prometheus容器内部访问自身服务,不需要写docker服务名或者宿主机IP。

配置完成后重启容器,在Web UI的Targets页面看到该job状态为UP,查询up{job="prometheus-self"}返回值为1,就说明自监控正常工作。

内容的提问来源于stack exchange,提问作者gstackoverflow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 09:39:57