1. 在应用程序列表中显示版本
对于Spring Boot应用来说很容易显示版本信息,在spring-boot-maven-plugin
中使用build-info
goal来生成META-INF/build-info.properties
。请参见Spring Boot Reference Guide。
对于非Spring Boot应用也可以增加version
或者build.version
到注册元数据中来在应用列表中显示版本。
pom.xml
<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>
2. JMX-bean 管理
为了在管理界面上管理JMX-beans,必须在应用程序中引入Jolokia 。 由于Jolokia是基于servlet的,所以不支持响应式程序。如果使用spring-boot-admin-starter-client
则已经自带了Jolokia,如果没有使用则需要添加下面依赖:
pom.xml
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-core</artifactId>
</dependency>
3. 日志文件查看器
默认情况日志在actuator端点是不可访问的,所以在Spring Boot Admin也是不可见的。为了开启日志监控端点,需配置logging.path
或logging.file
开启日志。
Spring Boot Admin将监控所有类似URL的并展示为超链接。
也可以配置自定义日志格式来支持ANSI color-escapes(Spring Boot默认不开启)。
application.properties
logging.file=/var/log/sample-boot-application.log ❶
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 ❷
❶ 写日志目标文件。开启日志监控端点。
❷ 日志开启ANSI colors。
4. 显示每个实例的标签
Tags
是为每个实例添加可视标记一种方式,一般出现在应用列表和实例详情中。默认情况实例是没有Tag的,需要客户端将期望的tags添加到元数据或info端点。
application.properties
#使用元数据
spring.boot.admin.client.instance.metadata.tags.environment=test
#使用info端点
info.tags.environment=test
5. Spring Boot Admin客户端
Spring Boot Admin客户端会通过HTTP post请求将应用的信息注册到admin服务端。这需要添加Jolokia到应用中,以便JMX-beans可以通过HTTP访问。
表1Spring Boot Admin客户端配置项
属性名 | 描述 | 默认值 |
---|---|---|
spring.boot.admin.client.enabled | 开启Spring Boot Admin客户端 | true |
spring.boot.admin.client.url | Spring Boot Admin服务端注册URL,多个用逗号分隔,此配置会触发自动配置,必须配置。 | |
spring.boot.admin.client.api-path | admin服务端注册端点管理HTTP路径 | "instances" |
spring.boot.admin.client.username spring.boot.admin.client.password | SBA服务API基于HTTP Basic认证的用户名和密码 | |
spring.boot.admin.client.period | 注册时间间隔(单位:毫秒) | 10,000 |
spring.boot.admin.client.connect-timeout | 注册连接超时时间(单位:毫秒) | 5,000 |
spring.boot.admin.client.read-timeout | 注册读取超时时间(单位:毫秒) | 5,000 |
spring.boot.admin.client.auto-registration | 如果设为true,则周期性注册应用 | true |
spring.boot.admin.client.auto-deregistration | 当关闭上下文,SpringBoot Admin将开启auto-deregistration。CloudPlatform中默认激活该配置 | null |
spring.boot.admin.client.register-once | 如果设为true客户端将只注册一次到admin服务端(为了定义spring.boot.admin.instance.ur);如果admin服务端宕机,则自动注册到另外一台admin服务上。如果设为false,则注册到所有admin服务上。 | true |
spring.boot.admin.client.instance.health-url | 注册使用的健康检查URL。可访问URL变化的情况可以重写该值。在注册中必须唯一。 | 由管理URl和endpoints.health.id组成 |
spring.boot.admin.client.instance.management-base-url | ||
spring.boot.admin.client.instance.management-url | ||
spring.boot.admin.client.instance.service-base-url | ||
spring.boot.admin.client.instance.service-url | ||
spring.boot.admin.client.instance.name | ||
spring.boot.admin.client.instance.prefer-ip | ||
spring.boot.admin.client.instance.metadata.* | ||
spring.boot.admin.client.instance.metadata.tags.* |
表1 实例元数据
键 | 值 | 默认值 |
---|---|---|
user.name user.password | 访问端点的凭证 |