Spring Boot Admin 入门

Spring Boot Admin 简介

简而言之,Spring Boot Admin是用来管理和监视您的Spring Boot应用程序的。应用程序需要注册为客户端,UI由AngularJs开发。对于Spring Admin来说,需要分别配置好服务端和客户端。服务端我们将其理解为一个Servlet应用,客户端即为要监控的Springboot应用。

以下为Spring Admin官方文档的说明:

codecentric’s Spring Boot Admin is a community project to manage and monitor your Spring Boot ® applications. The applications register with our Spring Boot Admin Client (via HTTP) or are discovered using Spring Cloud ® (e.g. Eureka, Consul). The UI is just an AngularJs application on top of the Spring Boot Actuator endpoints.

Spring Boot Admin Server 设置

建立Springboot项目,Springboot Admin Server设置为servlet或webflux应用。

引入相关依赖至pom.xml

将pom.xml插入以下依赖

<dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-server</artifactId><version>2.2.0</version>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

配置主启动类注解

配置主启动类注解@EnableAdminServer

@Configuration
@EnableAutoConfiguration
@EnableAdminServer
public class SpringBootAdminApplication {public static void main(String[] args) {SpringApplication.run(SpringBootAdminApplication.class, args);}
}

启动项目,在浏览器输入http://localhost:8080/,可得到SpringAdmin监控页面

这里插一个坑,若遇到下图所示项目启动失败

2020-08-30 13:30:17.094  INFO 25568 --- [           main] c.e.a.AdminserverdemoApplication         : Starting AdminserverdemoApplication on DESKTOP-K6A15G9 with PID 25568 (D:\北京邮电大学\实验室实习\Iaas升级\SpringbootAdmin\target\classes started by 吴宇轩 in D:\北京邮电大学\实验室实习\Iaas升级\SpringbootAdmin)
2020-08-30 13:30:17.101  INFO 25568 --- [           main] c.e.a.AdminserverdemoApplication         : No active profile set, falling back to default profiles: default
2020-08-30 13:30:19.255  INFO 25568 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2020-08-30 13:30:19.277  INFO 25568 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-08-30 13:30:19.277  INFO 25568 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.37]
2020-08-30 13:30:19.280  INFO 25568 --- [           main] o.a.catalina.core.AprLifecycleListener   : Loaded Apache Tomcat Native library [1.2.23] using APR version [1.7.0].
2020-08-30 13:30:19.280  INFO 25568 --- [           main] o.a.catalina.core.AprLifecycleListener   : APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
2020-08-30 13:30:19.281  INFO 25568 --- [           main] o.a.catalina.core.AprLifecycleListener   : APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
2020-08-30 13:30:19.285  INFO 25568 --- [           main] o.a.catalina.core.AprLifecycleListener   : OpenSSL successfully initialized [OpenSSL 1.1.1c  28 May 2019]
2020-08-30 13:30:19.423  INFO 25568 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-08-30 13:30:19.423  INFO 25568 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2237 ms
2020-08-30 13:30:19.837  INFO 25568 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-08-30 13:30:19.839  WARN 25568 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerAdapter' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter]: Factory method 'requestMappingHandlerAdapter' threw exception; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'webMvcAsyncTaskExecutor' available
2020-08-30 13:30:19.839  INFO 25568 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'
2020-08-30 13:30:19.846  INFO 25568 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2020-08-30 13:30:19.868  INFO 25568 --- [           main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2020-08-30 13:30:19.987 ERROR 25568 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : ***************************
APPLICATION FAILED TO START
***************************Description:Method requestMappingHandlerAdapter in org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration required a bean named 'webMvcAsyncTaskExecutor' that could not be found.Action:Consider defining a bean named 'webMvcAsyncTaskExecutor' in your configuration.Process finished with exit code 1

则为SpringBootAdmin版本问题,将版本改为2.2.0即可

配置Spring Boot Admin Client

新建一个Spring Boot项目

添加依赖至pom.xml

<dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-client</artifactId><version>2.2.0</version>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

将此应用注册应用到服务端

再application.properties中添加相关参数

spring.boot.admin.client.url=http://localhost:8888
#这里公开了所有的端点
management.endpoints.web.exposure.include=*
server.port=8889

添加配置类SecurityPermitAllConfig使执行器端点可访问

package com.example.adminclientdemo;import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;public class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().anyRequest().permitAll().and().csrf().disable();}
}

展现客户端版本信息

现在启动应用就可以在管理页面看到该客户端实例信息,为了展示客户端版本信息(其它信息请查阅Spring Boot Reference Guide),要在build的时候列出build-info,修改pom.xml*。

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>build-info</goal></goals></execution></executions></plugin></plugins>
</build>

启动Server端,将client端打包成jar包并运行,可以看到如下网页进行监控

显示了build-info信息

Spring Admin 入门相关推荐

  1. Spring Cloud入门-Admin服务监控中心(Hoxton版本)

    文章目录 Spring Cloud入门系列汇总 摘要 Spring Boot Admin 简介 创建admin-server模块 创建admin-client模块 监控信息演示 结合注册中心使用 修改 ...

  2. Spring Boot 入门

    一.Spring Boot 入门 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 2014,m ...

  3. Spring Boot 入门与实战笔记

    **一.**Spring Boot 入门 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 20 ...

  4. Spring Cloud 入门 之 Zuul 篇(五)

    一.前言 随着业务的扩展,微服务会不对增加,相应的其对外开放的 API 接口也势必增多,这不利于前端的调用以及不同场景下数据的返回,因此,我们通常都需要设计一个 API 网关作为一个统一的 API 入 ...

  5. Spring Boot入门到牛X

    Spring Boot入门到牛X 1.Spring Boot 项目下载地址:https://download.csdn.net/download/weixin_39549656/10287664 1. ...

  6. Spring boot入门(三):集成AdminLTE(Freemarker),结合generate代码生成器,利用DataTable和PageHelper分页...

    Spring boot入门(三):SpringBoot集成结合AdminLTE(Freemarker),利用generate自动生成代码,利用DataTable和PageHelper进行分页显示 标题 ...

  7. Spring Cloud入门-Sentinel实现服务限流、熔断与降级(Hoxton版本)

    文章目录 Spring Cloud入门系列汇总 摘要 Sentinel简介 安装Sentinel控制台 创建sentinel-service模块 限流功能 创建RateLimitController类 ...

  8. Spring Cloud入门-Ribbon服务消费者(Hoxton版本)

    文章目录 Spring Cloud入门系列汇总 摘要 Ribbon简介 RestTemplate的使用 GET请求方法 getForObject方法 getForEntity方法 POST请求方法 p ...

  9. 微服务理念与Spring Cloud入门-----父工程与API子工程的创建教程

    前言 随着软件工程的规模的迅速扩大,对响应的速度的要求的越来越高,软件的开发过程面临越来越大的挑战.为了提高开发的效率,和质量,以及对成本的压缩,对软件的模块化,以及希望像硬件模块一样,能即插即用,成 ...

最新文章

  1. php传值到模板,laravel 实现向公共模板中传值 (view composer)
  2. html css 极简模板,极简主义作品展示HTML模板
  3. java消费者和生产者模型_Java实现简易生产者消费者模型过程解析
  4. Java 并发编程系列之闭锁(CountDownLatch)
  5. 307. Range Sum Query - Mutable | 307. 区域和检索 - 数组可修改(数据结构:线段树,图文详解)
  6. android 8.0 调系统拍照_Android通知栏微技巧,8.0系统中通知栏的适配
  7. 讨论ALL_ROWS模式和FIRST_ROWS模式
  8. Springboot:监控与管理 Actuator
  9. 没有富士康?外媒称苹果新款iPhone SE由和硕独家组装
  10. python--httplib模块使用
  11. 【BZOJ4566】[Haoi2016]找相同字符 后缀数组+单调栈
  12. 2019.04.07 电商12 登录界面的验证
  13. html网页中获取vf数据到mysql_vfp教程之用FoxWeb在网上快速发布你的FOXPRO数据库
  14. 计算机编码--3.GB2312与GBK
  15. 两台(或多台)电脑怎么实现文件共享
  16. cv2.VideoCapture.get()用法
  17. 设置共享后其他计算机无法访问,电脑设置了文件共享其他电脑无法访问该怎么处理...
  18. 房屋征收拆迁信息化管理平台
  19. 比较MQTT与OPC-UA
  20. 百面机器学习 之 逻辑回归

热门文章

  1. 正序,负序,零序分量的产生与计算
  2. (一)mysql 运维基础篇(Linux云计算从入门到精通)
  3. Excel文件损坏打不开的常见原因及解决方法
  4. 轴承座冲压模具设计(论文+CAD图纸+开题报告+任务书)
  5. 人人都是产品经理 (一)——读后感
  6. unity入门2.0
  7. 如何查看手机登录IP地址
  8. 九年级计算机课程教案,九年级信息技术 5.2.3《计算机网络》教案
  9. 信誉管理软件的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  10. Domino V12 Beta新玩法