SpringBoot Admin 使用指南

本文详细介绍了SpringBootAdmin的安装、配置及使用方法,包括如何搭建监控服务端和客户端,展示应用程序的健康状态、内存使用情况、JVM信息、GC详情、metrics指标、环境变量、日志信息、JMX管理等功能。

什么是 SpringBoot Admin?

Spring Boot Admin 是一个管理和监控你的 Spring Boot 应用程序的应用程序。这些应用程序通过 Spring Boot Admin Client(通过 HTTP)注册或者使用 Spring Cloud(例如 Eureka)发现。UI只是 Spring Boot Actuator 端点上的一个 AngularJs 应用程序。

快速开始

首先在 IDEA 创建一个 SpringBoot 项目,把它当作 server 端,工程如下:

然后在 pom.xml 中引入依赖:

<dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-server</artifactId>
            <version>1.5.6</version>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-server-ui</artifactId>
            <version>1.5.6</version>
</dependency>

继续在启动类 SpringbootAdminApplication.java 中引入注解 @EnableAdminServer,然后运行项目:

访问 http://localhost:8084/ 即可:

此时会发现没有任何应用程序的信息。

接下来我们新建一个 SpringBoot 项目,把它当作客户端程序,工程如下:

在 pom.xml 中添加依赖:

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

然后在 application.yml 中设置:

img

spring.boot.admin.url=http:localhost:8094 用于将当前应用注册到 Spring Boot Admin。

还可以设置,spring.boot.admin.client.name: (应用程序的名字)不设置的话会有默认的名字

此时把两个项目运行起来:

点击图中的 detail 按钮:可以看到应用程序的健康值、内存、JVM、GC 等信息。

metrics 信息:

环境 信息:

log 信息:

JMX 信息:

线程 信息:

Trace 追踪信息:

还可以下载 Heapdump 文件。

刚才首页的应用列表后面有个红色的 ×,我们可以将注册上去的应用移除,但是只要你不把程序停掉,它立马又会注册上去。

还有就是应用列表的 version 和 info 上面的图中为空,下面看看怎么把它变出来:

info.groupId: @project.groupId@info.artifactId: @project.artifactId@info.version: @project.version@

重新运行客户端程序,刷新页面可以发现:

还可以查询应用程序的事件变化:

客户端应用程序

JMX bean管理

要在管理界面中与JMX-beans进行交互,您必须在客户端应用程序中包含 Jolokia,

pom.xml 加入依赖:

        <dependency>
            <groupId>org.jolokia</groupId>
            <artifactId>jolokia-core</artifactId>
        </dependency>

重启客户端程序后,就可以在这里与 JMX 做交互了:

还有很多 SpringBoot Admin 客户端配置选项:

http://codecentric.github.io/spring-boot-admin/1.5.6/#spring-boot-admin-client

服务端程序

也有些 SpringBoot Admin 服务端程序配置选项:

http://codecentric.github.io/spring-boot-admin/1.5.6/#spring-boot-admin-server

官方文档里面还有些关于服务下线消息通知的知识,想了解的可以查看:

http://codecentric.github.io/spring-boot-admin/1.5.6/#_notifications

参考文章

http://codecentric.github.io/spring-boot-admin/1.5.6/

推荐阅读:

《深入理解 Java 内存模型》读书笔记

面试-基础篇

Spring Boot 2.0 迁移指南

SpringBoot使用Docker快速部署项目

为什么选择 Spring 作为 Java 框架?

SpringBoot RocketMQ 整合使用和监控

Spring Boot 面试的十个问题

上篇好文:

使用 Spring Framework 时常犯的十大错误

右上角按钮分享给更多人哦~imgimg

### Spring Boot Admin 集成 Keycloak 实现 SSO 的解决方案 要在 Spring Boot Admin 中集成 Keycloak 来实现单点登录 (SSO),可以按照以下方法操作: #### 1. 添加依赖项 为了支持 OAuth2 和 OpenID Connect 协议,需要引入 `spring-boot-starter-oauth2-client` 和其他必要的依赖项。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-oauth2-client</artifactId> </dependency> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> </dependency> ``` 这些依赖项允许应用程序通过 OAuth2 客户端功能连接到 Keycloak 身份验证服务器[^1]。 --- #### 2. 配置 application.yml 或 application.properties 文件 配置文件中需定义 Keycloak 的客户端 ID、密钥以及授权 URI 等参数。 以下是基于 YAML 的配置示例: ```yaml spring: security: oauth2: client: registration: keycloak: client-id: your-client-id client-secret: your-client-secret authorization-grant-type: authorization_code redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}" provider: keycloak: issuer-uri: http://localhost:8080/auth/realms/your-realm-name user-name-attribute: preferred_username server: port: 9090 ``` 此部分设置指定了 Keycloak 提供商的相关信息及其与应用之间的交互方式[^2]。 --- #### 3. 自定义安全配置类 创建一个自定义的安全配置类来扩展默认行为并适配特定需求。例如,可以通过重写 SecurityConfigurerAdapter 方法来自定义访问控制逻辑。 ```java import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/actuator/**").permitAll() // Allow actuator endpoints without authentication. .anyRequest().authenticated() .and() .oauth2Login(); // Enable OAuth2 login mechanism. http.csrf().disable(); } } ``` 这段代码启用了 OAuth2 登录机制,并禁用了 CSRF 支持以便简化开发过程[^3]。 --- #### 4. 设置 Keycloak Server 确保已安装并运行了一个可用的 Keycloak 实例。在管理界面中完成如下步骤: - 创建一个新的 Realm; - 新建 Client 并指定其协议为 **openid-connect**; - 启用 “Service Accounts Enabled” 功能以支持后台服务间通信; - 将 Redirect URIs 设定为指向您的 Spring Boot 应用地址(如 `/login/oauth2/code/keycloak`)。 更多细节可参阅官方文档或社区指南[^4]。 --- #### 5. 测试部署环境下的 SSO 行为 当一切准备就绪之后,在浏览器打开目标 URL 地址时会自动跳转至 Keycloak 登陆页面进行身份认证;成功返回后即可正常浏览受保护资源。 如果遇到任何异常情况,则应仔细检查网络连通性和各项配置是否一致无误。 --- ### 总结 以上介绍了如何利用 Keycloak 结合 Spring Boot Admin 构建一套完整的 SSO 解决方案的过程概述。实际项目实施过程中可能还会涉及额外定制化调整工作视具体业务场景而定。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值