2017-01-19 19 views
2

Мы разрабатываем панель Boot-администратора с помощью codecentric при условии библиотеки spring-boot-admin-server версии 1.4.5Spring-Boot-Admin на Cloud Foundry: показ приложений в автономном режиме

Некоторые приложения регистрируют себя с сервером через Eureka, а некоторые непосредственно используют версию spring-boot-admin-starter-client 1.4.5.

Все компоненты развернуты в среде PCF и передаются через HTTPS. В любом случае приложения могут регистрироваться у администратора, но отображаются только как OFFLINE. В журналах отсутствуют какие-либо ошибки для любого из компонентов, а именно: admin-server, admin-client, eureka-server, eureka-client.

Однако единственным приложением, отображающим Up, является сам сервер администратора.

свойства приложения для весенне-загрузки админ-клиент приложения для запуска в ФКП является:

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 

Как результат одинаков для обоих методов регистрации, я пропустил положить конфиг здесь для приложений зарегистрировавшись по пути Эврика, чтобы это было просто.

То же самое прекрасно работает локально, где панель управления администратора показывает все приложения, как ожидалось.

Есть ли какая-либо конфигурация, которая должна быть выполнена в соответствии с облачным литейным цехом? Или любая очевидная ошибка, которую я мог бы сделать?

Любые предложения приветствуются.

--- EDIT ---

Вот логи с сервера 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.springfr[email protected]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.springfr[email protected]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] 

Журналы от клиента все чисты. Он предупреждает «Не удалось обновить» только тогда, когда сервер не работает.

+0

Offline означает, что сервер SBA не может попасть в клиентские приложения. В журнале сервера SBA должно появиться сообщение об ошибке запроса. Вы должны убедиться, что сервер SBA может связаться с клиентами через http по своим зарегистрированным URL-адресам – joshiste

+0

@joshiste - Спасибо за ваше предложение.Однако нет никаких ошибок/предупреждений, сообщаемых по обе стороны SBA, то есть сервера или клиента. Я отредактировал свой вопрос, добавив подробные журналы DEBUG с сервера. На мой взгляд, это должно быть что-то конкретное, что SBA требуется для Cloud (или CF). –

ответ

1

На основе обсуждения на https://github.com/codecentric/spring-boot-admin/issues/399 было обнаружено, что ниже свойства являются жизненно важными для клиентов SBA работать с панелью инструментов на Cloud Foundry или контейнер на базе архитектуры: spring: boot: admin: client: management-url: <complete management-url for the client> health-url: <complete health endpoint url for the client> service-url: <complete root/service url for the client>

Это связано с тем, что, когда клиент регистрируется с сервером SBA , он использует идентификатор контейнера runC для формирования своего сервисного URL-адреса. Такой URL-адрес недействителен для маршрутизатора Cloud Foundry. Это приводит к сбою связи между панелью управления SBA и клиентом позже, в результате чего он отображается как OFFLINE.

Другим подходом может быть использование IP-адресов контейнеров с использованием spring.boot.admin.client.prefer-ip=true. Это будет перечислять все контейнеры/CF instacnes на SBA, но не дает четкой картины общего состояния полного приложения с сайта/AZ. Также прямое подключение к контейнерам никогда не поощряется в CF в соответствии с принципами облачного приложения и 12 факторов.

 Смежные вопросы

  • Нет связанных вопросов^_^