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应用程序是能够提供以下功能供我们使用:

  1. 显示健康状况
  2. 显示详细信息
  3. JVM和内存指标
  4. micrometer.io指标
  5. 数据源指标
  6. 缓存指标
  7. 显示内部编号
  8. 关注并下载日志文件
  9. 查看JVM系统和环境属性
  10. 查看Spring Boot配置属性
  11. 支持Spring Cloud的可发布/ env-&/ refresh-endpoint
  12. 轻松的日志级别管理
  13. 与JMX-beans交互
  14. 查看线程转储
  15. 查看http-traces
  16. 查看审核事件
  17. 查看http端点
  18. 查看预定的任务
  19. 查看和删除活动会话(使用spring-session)
  20. 查看Flyway / Liquibase数据库迁移
  21. 下载heapdump
  22. 状态更改通知(通过电子邮件,Slack,Hipchat等)
  23. 状态更改的事件日志(非持久性)

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

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-security</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-web</artifactId>
  8. </dependency>
  9. <dependency>
  10. <groupId>de.codecentric</groupId>
  11. <artifactId>spring-boot-admin-starter-server</artifactId>
  12. <version>2.5.1</version>
  13. </dependency>

3、修改服务端application启动类

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

  1. @SpringBootApplication
  2. @EnableAdminServer
  3. public class BootAdminServerApplication {
  4.  
  5. public static void main(String[] args) {
  6. SpringApplication.run(BootAdminServerApplication.class, args);
  7. }
  8. }

4、配置security安全信息

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

  1. # 应用程序端口
  2. server.port=8085
  3. # 配置一个账号和密码
  4. spring.security.user.name=admin
  5. spring.security.user.password=admin

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

  1. @Configuration
  2. public static class SecuritySecureConfig extends WebSecurityConfigurerAdapter {
  3. private final String adminContextPath;
  4.  
  5. public SecuritySecureConfig(AdminServerProperties adminServerProperties) {
  6. this.adminContextPath = adminServerProperties.getContextPath();
  7. }
  8.  
  9. @Override
  10. protected void configure(HttpSecurity http) throws Exception {
  11. SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
  12. successHandler.setTargetUrlParameter("redirectTo");
  13.  
  14. http.authorizeRequests()
  15. .antMatchers(adminContextPath + "/assets/**").permitAll()
  16. .antMatchers(adminContextPath + "/login").permitAll()
  17. .anyRequest().authenticated()
  18. .and()
  19. .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
  20. .logout().logoutUrl(adminContextPath + "/logout").and()
  21. .httpBasic().and()
  22. .csrf().disable();
  23. }
  24. }

5、启动server服务端

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

  1. http://127.0.0.1:8085/login

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

6、搭建client客户端

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

  1. <!-- SpringBootAdmin管控台 -->
  2. <dependency>
  3. <groupId>de.codecentric</groupId>
  4. <artifactId>spring-boot-admin-starter-client</artifactId>
  5. <version>2.5.1</version>
  6. </dependency>

修改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.include=*

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配置中放行以下两个接口信息。)

  1. // 对应匿名+已授权均可访问
  2. .antMatchers("/actuator/**","/instances").permitAll()

SpringBoot快速集成SpringBootAdmin管控台监控服务的更多相关文章

  1. 十三、springboot 优雅集成spring-boot-admin 实现程序监控

    前言 我们知道项目的监控是尤为重要的,但是我们如果用jdk 自带的jconsole 和jvisualvm 的话会非常繁琐,且界面不是很友好.之前我们使用了spring boot 项目,但是都没有对项目 ...

  2. springboot快速集成swagger

    今天技术总监说:小明,我们本次3.0改造,使用swagger2.0作为前后端分离的接口规范,它可以一键生成前后端的API,一劳永逸--小明:??? Spring Boot 框架是目前非常流行的微服务框 ...

  3. 「Elasticsearch」SpringBoot快速集成ES

    Elastic Search 的底层是开源库 Lucene.但是Lucene的使用门槛比较高,必须自己写代码去调用它的接口.而Elastic Search的出现正是为了解决了这个问题,它是 Lucen ...

  4. SpringBoot 快速集成 Elastic Job

    一.引入依赖 <dependency> <groupId>com.github.kuhn-he</groupId> <artifactId>elasti ...

  5. SpringBoot(七):集成DataSource 与 Druid监控配置

    绑定DataSource:Spring Boot默认的数据源是:org.apache.tomcat.jdbc.pool.DataSource,Druid是Java语言中最好的数据库连接池,并且能够提供 ...

  6. SpringBoot系列之集成Druid配置数据源监控

    SpringBoot系列之集成Druid配置数据源监控 继上一篇博客SpringBoot系列之JDBC数据访问之后,本博客再介绍数据库连接池框架Druid的使用 实验环境准备: Maven Intel ...

  7. SpringBoot 快速构建微服务体系 知识点总结

    可以通过http://start.spring.io/构建一个SpringBoot的脚手架项目 一.微服务 1.SpringBoot是一个可使用Java构建微服务的微框架. 2.微服务就是要倡导大家尽 ...

  8. spring-boot-route(十九)spring-boot-admin监控服务

    SpringBootAdmin不是Spring官方提供的模块,它包含了Client和Server两部分.server部分提供了用户管理界面,client即为被监控的服务.client需要注册到serv ...

  9. Spring Boot 微服务应用集成Prometheus + Grafana 实现监控告警

    Spring Boot 微服务应用集成Prometheus + Grafana 实现监控告警 一.添加依赖 1.1 Actuator 的 /prometheus端点 二.Prometheus 配置 部 ...

随机推荐

  1. Docker限制

    前言 Docker系列文章: 此篇是Docker系列的第十篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,马上就开始Kubernetes,加油!一起前行! 为什么要学习Docker Do ...

  2. 数据库比对工具SQL(表、字段、触发器、索引、视图、存储过程)

    做一个数据库比对小工具,把SQL做一个笔记 SELECT object_id AS ID --表ID,'表' sType,Name --表名FROM sys.tablesORDER BY Name-- ...

  3. 跟Waf斗智斗勇的一天

    差点心态爆炸 幸亏整出来了... 最近快放寒假了..临近高考不到最后一星期绝对不学习.. 挖下SRC 这家自带的waf头疼死我了 想几次Fuzz全都撞壁了 然后发现了这家waf的规则 信息搜集不说了 ...

  4. 中高级Android大厂面试秘籍,为你保驾护航金三银四,直通大厂(上)

    前言 当下,正面临着近几年来的最严重的互联网寒冬,听得最多的一句话便是:相见于江湖~.缩减HC.裁员不绝于耳,大家都是人心惶惶,年前如此,年后想必肯定又是一场更为惨烈的江湖厮杀.但博主始终相信,寒冬之 ...

  5. Spring学习笔记--面向切面编程(AOP)

    什么是AOP AOP(Aspect Oriented Programming),意为面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的 ...

  6. Alibaba-技术专区-Dubbo3总体技术体系介绍及技术指南(目录)

    Dubbo3开题简介 如开篇所述,Dubbo 提供了构建云原生微服务业务的一站式解决方案,可以使用 Dubbo 快速定义并发布微服务组 件,同时基于 Dubbo 开箱即用的丰富特性及超强的扩展能力,构 ...

  7. spring学习05(代理模式)

    8.代理模式 为什么要学习代理模式,因为AOP的底层机制就是动态代理! 代理模式: 静态代理 动态代理 8.1 静态代理 静态代理角色分析 抽象角色 : 一般使用接口或者抽象类来实现 真实角色 : 被 ...

  8. Git-02-版本回退

    环境准备 1 修改readme.txt内容 Git is a distributed version control system. Git is free software. 2 git statu ...

  9. DVWA-全等级验证码Insecure CAPTCHA

    DVWA简介 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法 ...

  10. Are You OK?主键、聚集索引、辅助索引

    每张表都一定存在主键吗? 关于这个问题,各位小伙伴们不妨先自己想一想,再往下寻找答案. 首先公布结论:对于 InnoDB 存储引擎来说,每张表都一定有个主键(Primary Key)! 让人非常遗憾的 ...