新闻动态

行业新闻企业新闻安博电竞

SpringbootAdmin:轻量级的Springboot监控组件,用过的都说好 cR3h4kSR

安博电竞

简介

Springboot Admin是量级一个管理和监控Springboot项目的组件,分为服务端和客户端,两端通过http进行通信。由于其轻量级的都说特性,所以特别适合中小项目使用 。

其效果图如下:

服务端配置

1,引入Springboot admin和Spring Security依赖。监件用

de.codecentricspring-boot-admin-starter-server2.5.1org.springframework.bootspring-boot-starter-security

2,配置相关属性 。控组

server:port: 8080servlet:context-path: /serverspring:security:user:#admin Server端登录时用的量级账户密码name: server123password: 123456boot:admin:instance-auth:#启用header验证enabled: true#Server访问client接口时会使用下面的配置生成authorizationdefault-user-name: "name_shishan"default-password: "pwd_shishan"

3,配置@EnableAdminServer注解

@SpringBootApplication@Configuration@EnableAdminServerpublic class ServerApplication {public static void main(String[] args) {SpringApplication.run(ServerApplication.class, args);}}

经过以上3步,服务端就可以启动了 。

访问http://localhost:8080/server/,就可以看到以下登录界面。都说

使用在yml文件中配置的监件用账户密码就可以登录了 。

客户端配置

1,在我们要监控的控组客户端中加入以下依赖 。

de.codecentricspring-boot-admin-starter-client2.5.1

2,暴露监控接口以及配置Server地址。量级

客户端在启动后会向配置的都说Server发起注册申请,此时为了安全性还需要Server端的账户密码进行校验 。

spring:boot:admin:client:#admin注册地址url: http://localhost:8080/server#配置admin的监件用账户username: server123password: 123456admin:header:auth:name: "name_shishan"password: "pwd_shishan"#暴露出端口management:endpoints:web:exposure:include: "*"

3,对暴露的接口进行权限校验。

由于我们将监控接口进行了暴露,所以必须对相关的控组接口进行权限校验,否则就有可能泄露相关信息 。

对接口进行权限过滤有很多种选择,比如设置IP访问的量级白名单,只允许admin Server所在的服务器访问,也可以配置相关的token等等 。

下面我们以一个简单的都说接口过滤器实现对/actuator/**相关接口的权限校验。

@Componentpublic class PathFilter implements Filter {@Value("${admin.header.auth.name}")private String username;@Value("${admin.header.auth.password}")private String password;@Overridepublic void doFilter(ServletRequest servletRequest,监件用 ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) servletRequest;HttpServletResponse response = (HttpServletResponse) servletResponse;AntPathMatcher antPathMatcher = new AntPathMatcher();if (antPathMatcher.match("/actuator/**", request.getServletPath())) {String authorization = request.getHeader("authorization");if (StringUtils.hasText(authorization)) {String token = Base64Utils.encodeToString((username + ":" + password).getBytes(StandardCharsets.UTF_8));if (authorization.equals("Basic " + token)) {//token匹配才放行filterChain.doFilter(request, servletResponse);return;}}response.setContentType("application/json;charset=UTF-8");response.setStatus(HttpStatus.UNAUTHORIZED.value());response.getWriter().print("权限不足");return;}//其他接口直接放行filterChain.doFilter(request, servletResponse);}}

在这个filter中,对actuator相关的接口进行了header参数的校验,只有通过校验才可以访问暴露出的actuator接口 。

当然,如果我们使用了SpringSecurity或者SaToken这样的第三方权限框架,也可以去重写相关的配置完成权限的判断,原理都是一样的 。

下面我们看一下最终的监控效果:

最后

除了通过普通http请求方式获取监控信息以外,Springboot admin还支持通过注册中心的方式获取相关信息,在其官方文档大家也可以看到相关的配置 。

官方文档:https://codecentric.github.io/spring-boot-admin/2.5.1/#_what_is_spring_boot_admin

写文不易,感谢您的点赞和关注 。

chatgpt免费软件,chatgpt api 免费接口,chatgpt 聊天机器人教程,chatgpt 指令大全,chatgpt app

SpringbootAdmin :轻量级的Springboot监控组件,用过的都说好

ChatGPT与搜索引擎可见性

搜索引擎可见性对于网站的成功至关重要,而ChatGPT可以在提升可见性方面发挥重要作用。通过使用ChatGPT生成丰富 、有用的内容 ,网站可以吸引更多的访问者,并提高其在搜索引擎结果页面中的排名。关键词优化和内容质量是提高搜索引擎可见性的关键因素 ,而ChatGPT的自然语言生成能力可以助力网站在这方面取得成功 。