Java SpringBoot快速集成SpringBootAdmin管控台监控服务详解

网友投稿 414 2022-09-28


Java SpringBoot快速集成SpringBootAdmin管控台监控服务详解

目录1、初识SpringBootAdmin2、搭建服务端--POM文件中添加相关依赖3、修改服务端application启动类4、配置security安全信息5、启动server服务端6、搭建client客户端总结

SpringBootAdmin是一个针对 Spring Boot 的 Actuator 接口进行 UI 美化封装的监控工具,它可以在列表中浏览所有被监控 spring-boot 项目的基本信息、详细的 Health 信息、内存信息、JVM 信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等。可分为服务端(spring-boot-admin-server)和客户端(spring-boot-admin-client),服务端和客户端之间采用http通讯方式实现数据交互。服务端server需要单独启动一个服务,而客户端client只需要集成到各个微服务中。

1、初识SpringBootAdmin

首先我们需要了解到Spring Boot Admin应用程序是能够提供以下功能供我们使用:

显示健康状况

显示详细信息

JVM和内存指标

micrometer.io指标

数据源指标

缓存指标

显示内部编号

关注并下载日志文件

查看JVM系统和环境属性

查看Spring Boot配置属性

支持Spring Cloud的可发布/ env-&/ refresh-endpoint

轻松的日志级别管理

与JMX-beans交互

查看线程转储

查看http-traces

查看审核事件

查看http端点

查看预定的任务

查看和删除活动会话(使用spring-session)

查看Flyway / Liquibase数据库迁移

下载heapdump

状态更改通知(通过电子邮件,Slack,Hipchat等)

状态更改的事件日志(非持久性)

2、搭建服务端--POM文件中添加相关依赖

org.springframework.boot

spring-boot-starter-security

org.springframework.boot

spring-boot-starter-web

de.codecentric

spring-boot-admin-starter-server

2.5.1

3、修改服务端application启动类

在咱们启动类上面新增@EnableAdminServer注解,进行启用SpringBootAdminServer服务端

@SpringBootApplication

@EnableAdminServer

public class BootAdminServerApplication {

public static void main(String[] args) {

SpringApplication.run(BootAdminServerApplication.class, args);

}

}

4、配置security安全信息

在application.properties文件中新增以下配置信息。

# 应用程序端口

server.port=8085

# 配置一个账号和密码

spring.security.user.name=admin

spring.security.user.password=admin

初始化SecuritySecureConfig配置(如未初始化是看不到带SpringBootAdmin Logo登录页面的)

@Configuration

public static class SecuritySecureConfig extends WebSecurityConfigurerAdapter {

private final String adminContextPath;

public SecuritySecureConfig(AdminServerProperties adminServerProperties) {

this.adminContextPath = adminServerProperties.getContextPath();

}

@Override

protected void configure(HttpSecurity http) throws Exception {

SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();

successHandler.setTargetUrlParameter("redirectTo");

http.authorizeRequests()

.antMatchers(adminContextPath + "/assets/**").permitAll()

.antMatchers(adminContextPath + "/login").permitAll()

.anyRequest().authenticated()

.and()

.formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()

.logout().logoutUrl(adminContextPath + "/logout").and()

.httpBasic().and()

.csrf().disable();

}

}

5、启动server服务端

服务启动后,在浏览器中输入以下地址。我们是可以看见对应登录页面,对应账号密码就是咱们在properties文件中配置的。

http://127.0.0.1:8085/login

登录后可以看到应用列表数量是空的,此时咱们需要开始搭建咱们的Client客户端了。

6、搭建client客户端

在pom文件中新增以下依赖信息。(注意版本要与server端保持一致)

de.codecentric

rdFZLs spring-boot-admin-starter-client

2.5.1

修改properties文件

spring.boot.admin.client.url=http://127.0.0.1:8085

spring.boot.admin.client.username=admin

spring.boot.admin.client.password=admin

spring.application.name=spring-boot-application

management.endpoints.web.exposure.rdFZLsinclude=*

spring.boot.admin.client.url 指向我们上面服务端的项目接口路径。management.endpoints.web.exposure.include 表示将所有端口都暴露出来,可以被监控到。spring.application.name 表示改项目在spring-boot-admin 上的的显示名称。

spring.boot.admin.client.username 和password 就是设置的用户名和密码了,这里需要注意的是,如果admin-server 中没有集成 security 的话,不用配置用户名和密码也可以注册进去,在服务端可以监控到,但如果admin-server 集成了security,就需要保证client 中配置的用户名和server 中配置的用户名密码保持一致。

把client客户端启动后,会自动注册到咱们server服务端,咱们可以通过server服务端应用墙找到对应服务查看详细指标信息。(题外话:期间博主是有遇到客户端启动后,服务端无法采集到对应指标信息。原因是由于client客户端有配置security,没有给对应探针接口放行。如大家客户端有用到security的话,需要在security配置中放行以下两个接口信息。)

// 对应匿名+已授权均可访问

.antMatchers("/actuator/**","/instances").permitAll()

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:tomcat CVE-2020-1938漏洞验证(tomcat团座)
下一篇:SSL证书的分类有哪些?如何选择SSL证书?(ssl证书用途)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~