当前位置:  开发笔记 > 后端 > 正文

Cloud Foundry上的Spring-Boot-Admin:将UP应用程序显示为OFFLINE

如何解决《CloudFoundry上的Spring-Boot-Admin:将UP应用程序显示为OFFLINE》经验,为你挑选了1个好方法。

我们正在使用代码中心提供的spring-boot-admin-server1.4.5版库来开发Boot-Admin仪表板。

一些应用程序正在通过Eureka向服务器注册自己,而一些应用程序直接使用spring-boot-admin-starter-client1.4.5版本。

所有组件都部署在PCF环境中,并且通过HTTPS进行通信。无论采用哪种方式,应用程序都可以向管理员服务器注册,但是仅显示为OFFLINE。日志中未报告任何组件viz的错误。管理员服务器,管理员客户端,尤里卡服务器,尤里卡客户端。

但是,显示为“启动”的唯一应用程序是管理服务器本身。

在PCF中运行的spring-boot-admin-client应用程序的应用程序属性为:

spring:
  application:
    name: bootadmin-ms-charlie
  boot:
    admin:
      url: https://bootadmin-dashboard.abc.intl.com

ssl:
  trust_store:
    path: classpath:ssl/sslcacert.jks
    password: a-password

由于两种注册方法的结果都是相同的,为了使应用程序通过Eureka路径进行注册,我跳过了此处的配置。

同样在本地工作也很好,管理仪表板可以按预期显示所有应用程序。

是否需要针对Cloud Foundry进行任何配置?还是我可能犯的任何明显错误?

任何建议都是最欢迎的。

- -编辑 - -

这是SBA服务器的日志,显示服务器与客户端之间的通信正常。如果这些日志提供任何错误指示,请指出。

OUT 2017-01-23 05:15:15.139 DEBUG 10 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : DispatcherServlet with name 'dispatcherServlet' processing POST request for [/api/applications]
OUT 2017-01-23 05:15:15.151 DEBUG 10 --- [nio-8080-exec-1] m.m.a.RequestResponseBodyMethodProcessor : Read [class de.codecentric.boot.admin.model.Application] as "application/json;charset=UTF-8" with [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@7df33a9f]
OUT 2017-01-23 05:15:15.163 DEBUG 10 --- [nio-8080-exec-1] o.s.w.s.m.m.a.HttpEntityMethodProcessor  : Written [Application [id=3805ee6a, name=bootadmin-ms-charlie, managementUrl=http://23fcf304-82d6-44cd-7fce-2a5027de9f21:8080, healthUrl=http://23fcf304-82d6-44cd-7fce-2a5027de9f21:8080/health, serviceUrl=http://23fcf304-82d6-44cd-7fce-2a5027de9f21:8080]] as "application/json" using [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@7df33a9f]
OUT 2017-01-23 05:15:15.166 DEBUG 10 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Null ModelAndView returned to DispatcherServlet with name 'dispatcherServlet': assuming HandlerAdapter completed request handling
OUT 2017-01-23 05:15:15.166 DEBUG 10 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Successfully completed request
OUT bootadmin-dashboard.abc-intl.com - [23/01/2017:05:15:15.140 +0000] "POST /api/applications HTTP/1.1" 201 302 308 "-" "Java/1.8.0_121" 60.16.25.20:43224 x_forwarded_for:"10.10.10.10" x_forwarded_proto:"https" vcap_request_id:a40159e4-543f-40e0-627e-e8f1e7688b99 response_time:0.034164523 app_id:adcc8a33-83f4-448d-9ae2-bf2a2b16ea72
OUT 2017-01-23 05:15:18.719 DEBUG 10 --- [    updateTask1] o.s.web.client.RestTemplate              : Created GET request for "http://23fcf304-82d6-44cd-7fce-2a5027de9f21:8080/health"
OUT 2017-01-23 05:15:18.722 DEBUG 10 --- [    updateTask1] o.s.web.client.RestTemplate              : Setting request Accept header to [application/json, application/*+json]

来自客户端的日志都是干净的。仅当服务器关闭时,它才会发出“无法重新整理”的警告。



1> Ashwin Gupta..:

根据https://github.com/codecentric/spring-boot-admin/issues/399上的讨论,发现以下属性对于SBA客户端在Cloud Foundry或基于容器的架构上使用Dashboard至关重要: spring: boot: admin: client: management-url: health-url: service-url:

这是由于以下事实:当客户端在SBA服务器上注册时,它使用runC容器ID来形成其服务URL。该网址对于Cloud Foundry路由器无效。这将导致以后SBA仪表板与客户端之间的通信失败,从而使其显示为OFFLINE。

另一种方法是使用进行容器IP spring.boot.admin.client.prefer-ip=true。这将列出SBA上的所有容器/ CF实例,但不能清楚显示站点/可用区中整个应用程序的总体运行状况。此外,根据云原生应用程序的原理和12要素,在CF中从不鼓励直接连接到容器。

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有