SpringBoot 2.x 开发案例之整合Srping Boot Admin

烈酒焚心 提交于 2020-01-03 23:17:31

前言
Spring Boot Admin 就是将 Spring Boot Actuator中提供的endpoint信息可视化表示,并且可以通过邮件、Telegram、Hipchat等发送告警消息。

集成
注意一定要版本对应,否则会出现意想不到的问题,建议使用Srping Boot Admin 2.0+以上版本,可以多语言切换。

父项目
pom.xml引入:

<modules>        <module>admin-server</module>        <module>admin-client</module></modules><parent>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-parent</artifactId>      <version>2.2.2.RELEASE</version>      <relativePath/></parent><dependencies>      <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>            <exclusions>                <exclusion>                    <groupId>org.springframework.boot</groupId>                    <artifactId>spring-boot-starter-tomcat</artifactId>                </exclusion>            </exclusions>      </dependency>      <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-jetty</artifactId>      </dependency></dependencies>

监控服务端
pom.xml引入:

<artifactId>admin-server</artifactId><dependencies>      <dependency>          <groupId>de.codecentric</groupId>          <artifactId>spring-boot-admin-starter-server</artifactId>          <version>2.2.1</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-mail</artifactId>      </dependency></dependencies>

application.properties配置文件:

# 爪哇笔记:https://blog.52itstyle.vipserver.port=9000spring.application.name=SpringBootAdminspring.security.user.name=adminspring.security.user.password=adminspring.boot.admin.monitor.status-interval = 10000spring.boot.admin.monitor.info-interval = 10000spring.mail.host = smtp.163.comspring.mail.username = 13188888888@163.comspring.mail.password = 2020spring.boot.admin.notify.mail.from = 13188888888@163.comspring.boot.admin.notify.mail.to = 88888888@qq.com

启动类:

/** * 系统监控 * 爪哇笔记:https://blog.52itstyle.vip */@Configuration@EnableAutoConfiguration@EnableAdminServerpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }    @Configuration    public static class SecuritySecureConfig extends WebSecurityConfigurerAdapter {        private final AdminServerProperties adminServer;        public SecuritySecureConfig(AdminServerProperties adminServer) {            this.adminServer = adminServer;        }        @Override        protected void configure(HttpSecurity http) throws Exception {            SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();            successHandler.setTargetUrlParameter("redirectTo");            successHandler.setDefaultTargetUrl(this.adminServer.path("/"));            http.authorizeRequests()                    .antMatchers(this.adminServer.path("/assets/**")).permitAll()                    .antMatchers(this.adminServer.path("/login")).permitAll()                    .anyRequest().authenticated()                    .and()                    .formLogin().loginPage(this.adminServer.path("/login")).successHandler(successHandler).and()                    .logout().logoutUrl(this.adminServer.path("/logout")).and()                    .httpBasic().and()                    .csrf()                    .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())                    .ignoringRequestMatchers(                            new AntPathRequestMatcher(this.adminServer.path("/instances"), HttpMethod.POST.toString()),                            new AntPathRequestMatcher(this.adminServer.path("/instances/*"), HttpMethod.DELETE.toString()),                            new AntPathRequestMatcher(this.adminServer.path("/actuator/**"))                    )                    .and()                    .rememberMe().key(UUID.randomUUID().toString()).tokenValiditySeconds(1209600);        }    }}

监控客户端
pom.xml引入:

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

application.properties配置文件:

# 爪哇笔记:https://blog.52itstyle.vipspring.boot.admin.client.instance.name = 007spring.boot.admin.client.url= http://localhost:9000management.endpoints.web.exposure.include=*spring.boot.admin.client.username = adminspring.boot.admin.client.password = adminspring.boot.admin.client.period = 10000spring.boot.admin.client.connect-timeout = 5000spring.boot.admin.client.read-timeout = 5000spring.boot.admin.client.instance.service-url = http://localhost:8080

监控界面
SpringBoot 2.x 开发案例之整合Srping Boot Admin

SpringBoot 2.x 开发案例之整合Srping Boot Admin

SpringBoot 2.x 开发案例之整合Srping Boot Admin

SpringBoot 2.x 开发案例之整合Srping Boot Admin

SpringBoot 2.x 开发案例之整合Srping Boot Admin

小结
不得不说,2.X 版本还是很美观大气上档次的,并且监控告警功能齐全,

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!