写点什么

Spring Cloud 入门 -Admin 服务监控中心 (Hoxton 版本),java 开发面试视频

作者:Java高工P7
  • 2021 年 11 月 10 日
  • 本文字数:2824 字

    阅读完需:约 9 分钟

server:


port: 9305


spring:


application:


name: admin-client


boot:


admin:


client:

配置 admin-server 地址

url: http://localhost:9301


management:


endpoints:


web:


exposure:


include: '*'


endpoint:


health:


show-details: always

添加开启 admin 的日志监控

logging:


file: admin-client.log


启动 admin-server 和 admin-client 服务。


监控信息演示




访问如下地址打开 Spring Boot Admin 的主页:http://localhost:9301



点击 wallboard 按钮,选择 admin-client 查看监控信息;


监控信息概览;



度量指标信息,比如 JVM、Tomcat 及进程信息;



环境变量信息,比如系统属性、系统环境变量以及应用配置信息;



查看所有创建的 Bean 信息;



查看应用中的所有配置信息;



查看日志信息,admin-client 模块的 applicaiton.yml 需要添加以下配置才能开启;


logging:


#添加开启 admin 的日志监控


file: admin-client.log



查看 JVM 信息;



查看可以访问的 Web 端点;



结合注册中心使用




Spring Boot Admin 结合 Spring Cloud 注册中心使用,只需将 admin-server 和注册中心整合即可,admin-server 会自动从注册中心获取服务列表,然后挨个获取监控信息。这里以 Eureka 注册中心为例来介绍下该功能。

修改 admin-server

在 pom.xml 中添加相关依赖:


<dependency>


<groupId>org.springframework.cloud</groupId>


<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>


</dependency>


在 application-eureka.yml 中进行配置,只需添加注册中心配置即可:


server:


port: 9301


spring:


application:


name: admin-server


eureka:


client:


service-url:


defaultZone: http://localhost:8001/eureka/


在启动类上添加 @EnableDiscoveryClient 来启用服务注册功能:


@EnableDiscoveryClient


@EnableAdminServer


@SpringBootApplication


public class AdminServerApplication {


public static void main(String[] args) {


SpringApplication.run(AdminServerApplication.class, args);


}


}

修改 admin-client

在 pom.xml 中添加相关依赖:


<dependency>


<groupId>org.springframework.cloud</groupId>


<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>


</dependency>


在 application-eureka.yml 中进行配置,删除原来的 admin-server 地址配置,添加注册中心配置即可:


server:


port: 9305


spring:


application:


name: admin-client


boot:


admin:


client:

配置 admin-server 地址

url: http://localhost:9301


management:


endpoints:


web:


exposure:


include: '*'


endpoint:


health:


show-details: always


eureka:


client:


service-url:


defaultZone: http://localhost:8001/eureka/

添加开启 admin 的日志监控

logging:


file: admin-client.log


在启动类上添加 @EnableDiscoveryClient 来启用服务注册功能:


@EnableDiscoveryClient


@SpringBootApplication


public class AdminClientApplication {


public static void main(String[] args) {


SpringApplication.run(AdminClientApplication.class, args);


}


}

功能演示

启动 eureka-server,使用 application-eureka.yml 配置启动 admin-server,admin-client;


查看注册中心发现服务均已注册:http://localhost:8001/



查看 Spring Boot Admin 主页发现可以看到服务信息:http://localhost:9301


![在这里插入图片描述](https://img-blog.csdnimg.cn/20191229221811260.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGV


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


pdGk,shadow_10,text_aHR0cHM6Ly90aGlua3dvbi5ibG9nLmNzZG4ubmV0,size_16,color_FFFFFF,t_70)


添加登录认证




我们可以通过给 admin-server 添加 Spring Security 支持来获得登录认证功能。

创建 admin-security-server 模块

在 pom.xml 中添加相关依赖:


<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>


<dependency>


<groupId>de.codecentric</groupId>


<artifactId>spring-boot-admin-starter-server</artifactId>


</dependency>


<dependency>


<groupId>org.springframework.cloud</groupId>


<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>


</dependency>


在 application.yml 中进行配置,配置登录用户名和密码,忽略 admin-security-server 的监控信息:


server:


port: 9301


eureka:


client:


service-url:


defaultZone: http://localhost:8001/eureka/


spring:


application:


name: admin-security-server


security:


user:

配置登录用户名和密码

name: root


password: 123456


boot:


admin:


discovery:

不显示 admin-security-server 的监控信息

ignored-services: ${spring.application.name}


对 SpringSecurity 进行配置,以便 admin-client 可以注册:


@Configuration


public 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");


successHandler.setDefaultTargetUrl(adminContextPath + "/");


http.authorizeRequests()


//1.配置所有静态资源和登录页可以公开访问


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


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


.anyRequest().authenticated()


.and()


//2.配置登录和登出路径


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


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


//3.开启 http basic 支持,admin-client 注册时需要使用


.httpBasic().and()


.csrf()


//4.开启基于 cookie 的 csrf 保护


.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())


//5.忽略这些路径的 csrf 保护以便 admin-client 注册


.ignoringAntMatchers(


adminContextPath + "/instances",


adminContextPath + "/actuator/**"


);


}


}


修改启动类,开启 AdminServer 及注册发现功能:


@EnableDiscoveryClient


@EnableAdminServer


@SpringBootApplication


public class AdminSecurityServerApplication {


public static void main(String[] args) {


SpringApplication.run(AdminSecurityServerApplication.class, args);


}


}


启动 eureka-server,admin-security-server,访问 Spring Boot Admin 主页发现需要登录才能访问:http://localhost:9301



使用到的模块




springcloud-learning


├── eureka-server -- eureka 注册中心

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
Spring Cloud入门-Admin服务监控中心(Hoxton版本),java开发面试视频