Spring Boot Admin 是一个很不错的仪表板,用于监控您的 Spring Boot 应用程序。然而,设置它并不是那么简单。
- 在您的启动应用程序中包含一个连接到管理应用程序的客户端库——这需要将管理应用程序部署在公共的某个地方或至少可以从您的应用程序访问,并让您的应用程序知道它正在被监控。
- 使用云发现,这意味着您的应用程序是服务发现基础设施的一部分,例如使用微服务
对于更简单的场景,例如在某些 IaaS 上运行的单体应用程序,以及将您的管理应用程序部署在本地机器或某些本地公司基础设施中,这两种方案都不是很好的选择。如果您还不需要云发现,则它是一种矫枉过正的做法,并且包含客户端库会引入使应用程序可访问管理服务器的复杂性,反之亦然。此外,这种双向依赖听起来是错误的。
幸运的是,有一个未记录但已实现的方法SimpleDiscoveryClient
,让您只需在任何机器上运行带有一些配置的 Spring Boot Admin,并将其连接到您的 Spring Boot 应用程序。
第一个要求是在您的启动应用程序中设置 spring boot actuator
。Actuator 公开了管理应用程序工作所需的所有端点。设置听起来很简单——您只需添加一堆依赖项并可能指定一些配置参数,仅此而已。事实上,在实际应用中,这并不容易——尤其是关于执行器端点的基本身份验证。您需要一个单独的 spring-security
(除了现有的 spring-security 配置之外),以便仅将基本身份验证应用于执行器端点。例如:
@Configuration
@Order(99)// the default security configurat