JHipster应用Docker Compose运行后Prometheus显示Down但Registry正常求助
Prometheus服务发现配置错误
JHipster默认依托Eureka实现服务发现,Prometheus需正确配置从JHipster Registry抓取实例。检查prometheus.yml中的eureka_sd_configs节点,确认Registry地址是否为容器内部可访问的地址(比如jhipster-registry:8761而非localhost),服务发现功能是否启用。
参考正确配置片段:scrape_configs: - job_name: 'jhipster-applications' eureka_sd_configs: - server: http://jhipster-registry:8761/eureka应用Actuator端点未正确暴露或存在权限拦截
确保JHipster应用已开启并暴露/actuator/prometheus端点,检查应用的application.yml配置:management: endpoints: web: exposure: include: prometheus,health,info endpoint: prometheus: enabled: true同时确认Spring Security未拦截Prometheus的请求,比如是否需配置允许Prometheus所在IP访问Actuator,或添加Basic Auth凭证到Prometheus抓取配置中。
容器网络连通性异常
即便Registry能识别应用,Prometheus容器可能无法访问应用的Actuator端口。先确认所有容器处于同一Docker网络(docker-compose默认会创建专属网络),再通过docker exec <prometheus容器ID> curl <应用容器IP>:<Actuator端口>/actuator/prometheus测试连通性,查看是否能正常获取metrics数据。Prometheus抓取配置或超时问题
进入Prometheus控制台的Targets页面(对应你截图中显示Down的目标),查看具体错误提示,比如连接拒绝、超时等。可调整Prometheus的抓取超时参数:scrape_configs: - job_name: 'jhipster-applications' scrape_timeout: 10s # 其他配置...应用实例元数据缺失
检查JHipster Registry中的应用实例详情,确认元数据包含正确的管理端口信息(如management.port),Prometheus依赖这些元数据定位正确的抓取端口。
内容的提问来源于stack exchange,提问作者kk99

