在 Azure 容器应用中配置“Spring Boot 控制台”组件

“适用于 Spring 的控制台”托管组件为公开执行器终结点的 Spring Boot Web 应用程序提供了一个管理界面。 本文介绍如何配置和管理 Spring 组件。

显示

可以使用 show 命令按名称查看单个组件的详细信息。

在运行以下命令之前,请将 <> 括起来的占位符替换为你的值。

az containerapp env java-component admin-for-spring show \
  --environment <ENVIRONMENT_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --name <JAVA_COMPONENT_NAME>

更新

可以使用 update 命令更新 Admin for Spring 组件的副本计数和配置。

在运行以下命令之前,请将用<>括起来的占位符替换为你的值。 属性列表表格中列出了支持的配置。

az containerapp env java-component admin-for-spring update \
  --environment <ENVIRONMENT_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --name <JAVA_COMPONENT_NAME> \
  --min-replicas <REPLICA_COUNT> \
  --max-replicas <REPLICA_COUNT> \
  --configuration <CONFIGURATION_KEY>="<CONFIGURATION_VALUE>"

列出

可以使用 list 命令列出所有注册的 Java 组件。

在运行以下命令之前,请将用<>括起来的占位符替换为你的值。

az containerapp env java-component list \
  --environment <ENVIRONMENT_NAME> \
  --resource-group <RESOURCE_GROUP>

取消绑定

若要从容器应用中移除绑定,请使用 --unbind 选项。

在运行以下命令之前,请将用<>括起来的占位符替换为你的值。

az containerapp update \
  --name <APP_NAME> \
  --unbind <JAVA_COMPONENT_NAME> \
  --resource-group <RESOURCE_GROUP>

依赖项

在容器应用中使用控制台组件时,需要在 pom.xml 文件中添加以下依赖项。 将版本号替换为 Maven 存储库上提供的最新版本。

<dependency>
    <groupId>de.codecentric</groupId>
    <version>3.3.2</version>
    <artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>

可配置属性

从 Spring Boot 2 开始,默认不公开运行状况和信息以外的终结点。 可通过在 application.properties 文件中添加以下配置来公开它们。

management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always

“适用于 Spring 的控制台”的允许配置列表

以下列表详细介绍了可为应用配置的控制台组件属性。 可在 Spring Boot 控制台文档中找到更多详细信息。

属性名称 说明 默认值
spring.boot.admin.server.enabled 启用 Spring Boot 控制台服务器。 true
spring.boot.admin.context-path 管理为服务器静态资产和 API 提供服务的路径前缀。 相对于 Dispatcher-Servlet。
spring.boot.admin.monitor.status-interval 检查实例状态的时间间隔(以毫秒为单位)。 10,000ms
spring.boot.admin.monitor.status-lifetime 状态的生存期(以毫秒为单位)。 只要最后一个状态不是已过期,则状态就不会更新。 10,000 毫秒
spring.boot.admin.monitor.info-interval 检查实例信息的时间间隔(以毫秒为单位)。 1m
spring.boot.admin.monitor.info-lifetime 信息生存期(以分钟为单位)。 只要最后一条信息未过期,则信息就不会过期。 1m
spring.boot.admin.monitor.default-timeout 发出请求时的默认超时。 可使用 spring.boot.admin.monitor.timeout.* 替代特定终结点的单个值。 10,000
spring.boot.admin.monitor.timeout.* 带有每个 endpointId 超时的键值对。 默认值为 default-timeout 值。
spring.boot.admin.monitor.default-retries 失败请求的默认重试次数。 永远不会重试修改数据(PUTPOSTPATCHDELETE)的请求。 可使用 spring.boot.admin.monitor.retries.* 替代特定终结点的单个值。 0
spring.boot.admin.monitor.retries.* 带有每个 endpointId 重试次数的键值对。 永远不会重试修改数据(PUTPOSTPATCHDELETE)的请求。 默认值为 default-retries 值。
spring.boot.admin.metadata-keys-to-sanitize 匹配这些正则表达式模式(用于在所有 JSON 输出中清理)的键的元数据值。 从 Spring Boot 3 开始,默认屏蔽所有执行器值。 有关如何配置取消清理过程的详细信息,请参阅(清理敏感值)。 ".**password$", ".\*secret$", ".\*key$", ".\*token$", ".\*credentials.**", ".*vcap_services$"
spring.boot.admin.probed-endpoints 对于 Spring Boot 1.x 客户端应用程序,Spring Boot 控制台使用 OPTIONS 请求探测指定终结点。 如果路径与 ID 不同,可将此值指定为 id:path(例如:health:ping "health", "env", "metrics", "httptrace:trace", "threaddump:dump", "jolokia", "info", "logfile", "refresh", "flyway", "liquibase", "heapdump", "loggers", "auditevents"
spring.boot.admin.instance-proxy.ignored-headers 向客户端发出请求时不转发的标头。 "Cookie", "Set-Cookie", "Authorization"
spring.boot.admin.ui.title 显示的页标题。 "Spring Boot Admin"
spring.boot.admin.ui.poll-timer.cache 提取新缓存数据的轮询持续时间(以毫秒为单位)。 2500
spring.boot.admin.ui.poll-timer.datasource 提取新数据源数据的轮询持续时间(以毫秒为单位)。 2500
spring.boot.admin.ui.poll-timer.gc 提取新 GC 数据的轮询持续时间(以毫秒为单位)。 2500
spring.boot.admin.ui.poll-timer.process 提取新进程数据的轮询持续时间(以毫秒为单位)。 2500
spring.boot.admin.ui.poll-timer.memory 提取新内存数据的轮询持续时间(以毫秒为单位)。 2500
spring.boot.admin.ui.poll-timer.threads 提取新线程数据的轮询持续时间(以毫秒为单位)。 2500
spring.boot.admin.ui.poll-timer.logfile 提取新日志文件数据的轮询持续时间(以毫秒为单位)。 1000
spring.boot.admin.ui.enable-toasts 启用或禁用 toast 通知。 false
spring.boot.admin.ui.title 浏览器的窗口标题值。 ""
spring.boot.admin.ui.brand 导航标头中呈现的 HTML 代码,默认为 Spring Boot 控制台标签。 默认情况下,Spring Boot 控制台徽标后跟其名称。 ""
management.scheme 在用于访问执行器终结点的服务 URL 中替换的值。
management.address 在用于访问执行器终结点的服务 URL 中替换的值。
management.port 在用于访问执行器终结点的服务 URL 中替换的值。
management.context-path 追加到用于访问执行器终结点的服务 URL 的值。 ${spring.boot.admin.discovery.converter.management-context-path}
health.path 追加到用于进行运行状况检查的服务 URL 的值。 被 EurekaServiceInstanceConverter 忽略。 ${spring.boot.admin.discovery.converter.health-endpoint}
spring.boot.admin.discovery.enabled 启用对控制台服务器的 DiscoveryClient 支持。 true
spring.boot.admin.discovery.converter.management-context-path management-url 值由 DefaultServiceInstanceConverter 转换时,追加到所发现服务的 service-url 的值。 /actuator
spring.boot.admin.discovery.converter.health-endpoint-path health-url 值由 DefaultServiceInstanceConverter 转换时,追加到所发现服务的 management-url 的值。 "health"
spring.boot.admin.discovery.ignored-services 使用发现且未注册为应用程序时忽略的服务。 支持 "foo*""*bar""foo*bar*" 等简单模式。
spring.boot.admin.discovery.services 使用发现且注册为应用程序时包括的服务。 支持 "foo*""*bar""foo*bar*" 等简单模式。 "*"
spring.boot.admin.discovery.ignored-instances-metadata 如果服务包含至少一个与此列表中的模式匹配的元数据项,则忽略这些服务。 支持 "discoverable=false" 等模式。
spring.boot.admin.discovery.instances-metadata 如果服务包含至少一个与列表中的模式匹配的元数据项,则包括这些服务。 支持 "discoverable=true" 等模式。

常见配置

  • 日志记录相关配置:
    • logging.level.*
    • logging.group.*
    • 应禁止 logging.* 命名空间下的任何其他配置。 例如,应禁止使用 logging.file 写入日志文件。

后续步骤