Spring Boot Admin客户端
3.1 在应用列表中显示版本
添加版本信息,可以使用spring-boot-maven-plugin插件,在插件中配置build-info,它就会生成文件META-INF/build-info.properties。你也可以参考Spring Boot Reference Guide。
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>
3.2 JMX Bean管理
在Admin UI中,使用JMX需要引入Jolokia到你的项目中。如果你已经添加了spring-boot-admin-starter-client依赖,你可以不用添加Jolokia依赖了。
pom.xml
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-core</artifactId>
</dependency>
3.3 日志级别管理
对于使用SpringBoot 1.5.x(或以上)的,你可以直接管理日志级别。使用旧版本,日志管理只对Logback 有效。由于需要使用到JMX所以需要包含Jolokia依赖,此还要在Logback中配置JMXConfigurator。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<jmxConfigurator/>
</configuration>
如果你将多个应用部署到同一个JVM中,会有多个LogBack的JMX bean,在界面上JMX bean名称和应用名称相同。这种情况下,你需要在LogBack配置中配置contextName。
3.4 Spring Boot Admin客户端
Spring Boot Admin 客户端会注册到SBA服务器。它会定期的向SBA服务端发送POST请求应用相关的信息。它默认已经添加了Jolokia在你的应用中,所以你可以通过HTTP访问JMX bean。
SBA客户端提供了很多注册相关的配置。如果它们不能满足你的需要,你也可以自己实现AppliationFactory。
表格1:Spring Boot Admin客户端配置选项
属性 | 说明 | 默认值 |
---|---|---|
spring.boot.admin.client.enabled | 开启Spring Boot Admin客户端 | true |
spring.boot.admin.url | 使用逗号分隔多个注册的url。必填项 | |
spring.boot.admin.api-path | 登记到Admin服务的http路径 | "api/applications" |
spring.boot.admin.username spring.boot.admin.password | 用户名和密码用来保护SBA服务的api安全,它使用Http基本认证实现。 | |
spring.boot.admin.period | 重复登录的间隔时间(毫秒) | 10.0000 |
spring.boot.admin.auto-registration | 如果为true,服务启动后将周期的注册 | true |
spring.boot.admin.auto-deregistration | 如果为true,SBA服务容器关闭时,会注销应用 | false |
spring.boot.admin.register-once | 如果为true,将从配置的spring.boot.admin.url中选择第一个admin服务进行注册。当admin服务宕机了,将依次注册到下一个admin服务。如果为false,将注册到所有的admin服务。 | true |
spring.boot.admin.client.health-url | 健康检查url。如果访问的url不同时,可以覆盖。必须是唯一的。 | 通过management-url和endpoints.health.id生成 |
spring.boot.admin.client.management-url | 客户端管理url。如果访问的url不同时,可以覆盖。 | 通过service-url、 server.servlet-path、 management.port和management.context-path生成 |
spring.boot.admin.client.service-url | 客户端服务注册url。如果访问的url不同时,可以覆盖。 | 通过hostname、server.port、server.context-path生成 |
spring.boot.admin.client.name | 注册的名称 | 如果配置spring.application.name了,就作为注册名称。如果没有使用默认的"spring-boot-application" |
spring.boot.admin.client.prefer-ip | 使用ip地址,而不是猜测url中的主机名。如果配置了server.address/management.address,就使用server.address/management.address。如果没有,就通过InetAddress.getLocalHost()获取ip地址。 | false |
spring.boot.admin.client.metadata.* | 与实例相关的元数据键值对 |
表格2:实例元数据选项
键 | 值 | 默认值 |
---|---|---|
user.name user.password | 访问这个端点的凭证 |