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 秒扫描文件更新
相关推荐
鬼先生_sir6 小时前
Spring Cloud 微服务监控实战:SkyWalking + Prometheus+Grafana 全栈解决方案
运维·spring cloud·grafana·prometheus·skywalking
cccyi72 天前
【C++ 脚手架】etcd 的介绍与使用
c++·服务发现·etcd·服务注册
zs宝来了2 天前
Prometheus 监控体系原理:Pull 模式与 TSDB 时序数据库
prometheus·时序数据库·监控·tsdb·pull模式
zs宝来了2 天前
Consul 服务网格原理:Gossip 协议与 Raft 一致性
服务发现·consul·服务网格·gossip协议·raft一致性
何中应3 天前
Alertmanager设置邮件通知
运维·自动化·prometheus
zs宝来了3 天前
Nacos 服务发现与配置中心原理:AP 架构与 Distro 协议
nacos·服务发现·配置中心·ap架构·distro协议
安审若无3 天前
运维监控及可视化工具Prometheus和grafana
运维·grafana·prometheus
却话巴山夜雨时i3 天前
互联网大厂Java面试实录:从Spring Boot到Kafka的场景应用深度解析
spring boot·kafka·prometheus·微服务架构·java面试·技术解析·互联网大厂
却话巴山夜雨时i4 天前
Java面试实录:从Spring Boot到Kafka的技术探讨
spring boot·微服务·kafka·grafana·prometheus·java面试
川石课堂软件测试7 天前
涨薪技术|Prometheus使用Recoding Rules优化性能
功能测试·测试工具·jmeter·mysql·面试·单元测试·prometheus