Prometheus的服务发现机制

一、先讲清楚:做什么

服务发现 = 不用每次手动改 prometheus.yml ,让 Prometheus 自动发现要监控的机器。本文只做最常用:基于文件的服务发现(file_sd)。


二、第一步:创建服务发现目录(固定路径)

复制代码
mkdir -p /etc/prometheus/targets

三、第二步:编写服务发现 JSON 文件

复制代码
vi /etc/prometheus/targets/docker.json

粘贴以下内容(我的 IP:192.168.52.130):

复制代码
[
    {
        "targets": ["192.168.52.130:8080", "192.168.52.130:9100"],
        "labels": {
            "env": "test",
            "job": "docker_auto"
        }
    }
]

保存退出:ESC → :wq


四、第三步:把服务发现加到 prometheus.yml

复制代码
vi /etc/prometheus/prometheus.yml

在 scrape_configs 下面添加:

复制代码
- job_name: 'file_sd_docker'
    file_sd_configs:
      - files:
          - /etc/prometheus/targets/*.json
        refresh_interval: 10s

五、第四步:重启 Prometheus

复制代码
systemctl restart prometheus

或热重载(推荐):

复制代码
curl -X POST http://192.168.52.130:9090/-/reload

六、第五步:验证服务发现成功

浏览器打开:

复制代码
http://192.168.52.130:9090/targets

看到:

  • file_sd_docker
  • 状态 UP
  • 自动出现 8080、9100✅ 完成!
  • 静态配置缺点:修改麻烦、不能自动加机器
  • 文件服务发现优点:
  • 自动加载
  • 不用重启 Prometheus
  • 支持 json/yaml
  • refresh_interval: 10s = 每 10 秒扫描文件更新
相关推荐
lbb 小魔仙5 小时前
Redis运行状态总靠手动查?我用redis_exporter+Prometheus把指标、告警和远程抓取全接起来了
redis·bootstrap·prometheus
QYRdata5 小时前
实时数据服务赛道持续升温,未来六年CAGR12.4%彰显发展潜力
服务发现·恒州博智
程序员-Benothing7 小时前
Linux系统监控工具全家桶:sar、dstat、glances、Prometheus
linux·运维·prometheus
wzq11_66611 小时前
Prometheus监控——云原生与非云原生监控
云原生·prometheus
东风微鸣1 天前
把 Tailscale 接进 Prometheus 监控
java·数据库·prometheus
Kendra9191 天前
运维监控平台(Prometheus + Grafana)部署与维护
运维·grafana·prometheus
Dovis(誓平步青云)1 天前
一年1956亿行:智能电表场景下的时序数据存储实践
运维·前端·自动化·音视频·prometheus
QYRdata1 天前
人工智能物联网软件迎发展机遇 未来六年CAGR稳定在12.2%
人工智能·物联网·服务发现·恒州博智
QYRdata2 天前
年复合增长率20.0%:Sim-to-Real机器人平台2026-2032年增长潜力引业界关注
机器人·服务发现·恒州博智
空空dream2 天前
06 | Prometheus打通FastAPI云原生数据采集
云原生·prometheus·fastapi