客户端应用程序
1. 在应用列表中显示版本号
对于 Spring Boot 应用程序,显示版本号最简单的办法,就是使用 spring-boot-maven-plugin
maven插件,然后配置 goal build-info
,之后该插件就会生成 META-INF/build-info.properties
文件了。更多详情请查看 Spring Boot 参考指南。
对于 非Spring Boot 应用的话,可以在注册的时候添加 version
或 build.version
参数,这样在应用列表中就会显示版本号了。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
要想在gradle项目中生成构建信息的话,请在 build.gradle
文件中添加下面的代码:
springBoot {
buildInfo()
}
2. JMX-Bean的管理
要想在admin页面中与JMX-beans进行交互,必须在应用中引入 Jolokia。
由于Jolokia是基于servlet开发的,所以不支持响应式应用。
如果你使用的是 spring-boot-admin-starter-client
这个依赖,那么它自动会为您引入,如果没有的话,则需要手动的将Jolokia添加到依赖中。
针对Spring Boot 2.2.0版本,如果您想通过JMX暴露Spring bean的话,可能需要设置 spring.jmx.enabled=true
。
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-core</artifactId>
</dependency>
3. 查看日志文件
默认情况下,无法通过actuator接口访问日志文件,因此默认Spring Boot Admin中是看不到日志文件的。
要想启用actuator的日志文件接口,需要设置 logging.file.path
或 logging.file.name
来配置Spring Boot读写日志文件。
Spring Boot Admin会检测所有看起来像URL的东西,并将其呈现为超链接。
ANSI颜色转义语法也是支持的。 你可以自定义一个文件日志的表达式,因为Spring Boot默认情况下是不使用颜色的。
logging.file.name=/var/log/sample-boot-application.log (1) logging.pattern.file=%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx (2)
1 | 定义日志文件的写入目录。启用日志文件的actuator接口。 |
2 | 文件日志使用自定义的ANSI颜色。 |
4. 显示实例的标签
您可以为每个实例添加一个 标签(Tags)
来提高其可读性,它们会显示在应用列表以及实例试图中。
默认情况下实例不会被添加任何标签,它取决与客户端有没有向metadata元数据中添加标签或是向其它info接口中指定标签。
#使用metadata元数据 spring.boot.admin.client.instance.metadata.tags.environment=test #使用info接口 info.tags.environment=test
5. SBA客户端
Spring Boot Admin客户端会注册在admin的服务端上。 这是通过定期向SBA服务端发送HTTP post请求来完成的,同时也会向服务端提供应用信息。
有一些可选的属性可以影响SBA客户端的注册方式。如果这些不满足您的需求,你也可以通过提供 ApplicationFactory 实现的方式手动拓展。
|
属性名 | 说明 | 默认值 |
---|---|---|
spring.boot.admin.client.enabled |
开启Spring Boot Admin 客户端。 |
|
spring.boot.admin.client.url |
向哪些Spring Boot Admin服务端注册,可以传一个列表,URL中间以逗号分割。这个参数会自动触发。强制性 的。 |
|
spring.boot.admin.client.api-path |
提供admin服务端的http注册路径。 |
|
spring.boot.admin.client.username |
如果SBA服务端启用了HTTP Basic认证,则需要提供用户名和密码。 |
|
spring.boot.admin.client.period |
重复注册的间隔(单位毫秒ms)。 |
|
spring.boot.admin.client.connect-timeout |
注册链接的超时时间(单位毫秒ms)。 |
|
spring.boot.admin.client.read-timeout |
注册时的读取超时时间(单位毫秒ms)。 |
|
spring.boot.admin.client.auto-registration |
如果设置成true的话,在应用程序启动完成后,会自动执行注册定时任务。 |
|
spring.boot.admin.client.auto-deregistration |
在上下文关闭后是否自动从Spring Boot Admin服务端注销。如果没有设置这个值的话,则会通过CloudPlatform的活动状态来判断。 |
|
spring.boot.admin.client.register-once |
如果设置为true的话,客户端只会注册到一个admin服务端中(根据 |
|
spring.boot.admin.client.instance.health-url |
注册使用的健康检查url,如果URL不同也可以被覆盖(例如在使用Docker的时候)。在注册时必须时唯一的。 |
根据 management-url 和 |
spring.boot.admin.client.instance.management-base-url |
根据 management-url 在注册时进行计算。这个路径在运行期间才会拼接到base url上。 |
通过 |
spring.boot.admin.client.instance.management-url |
要注册的Management-url。如果URL不同也可以被覆盖(例如在使用Docker的时候)。 |
通过 management-base-url 和 |
spring.boot.admin.client.instance.service-base-url |
Base url用于计算将要注册的service-url。这个路径在运行期间才会计算,并拼接到base url上。
在Cloudfoundry环境下,你可以通过 |
通过 hostname 和 |
spring.boot.admin.client.instance.service-url |
将要注册的 Service-url。如果URL不同也可以被覆盖(例如在使用Docker的时候)。 |
通过 service-base-url 和 |
spring.boot.admin.client.instance.service-path |
将要注册的 Service-path。如果URL不同也可以被覆盖(例如以代码的方式设置了context-path)。 |
/ |
spring.boot.admin.client.instance.name |
将要注册的实例名。 |
如果设置了 |
spring.boot.admin.client.instance.service-host-type |
选择向服务端发送哪种host信息: |
|
spring.boot.admin.client.instance.metadata.* |
与该实例相关联的元数据键值对。 |
|
spring.boot.admin.client.instance.metadata.tags.* |
与该实例相关联的标签键值对。 |
Key | Value | 默认值 |
---|---|---|
user.name |
用于访问接口的权限凭证。 |