文章目录

  • Spring Cloud入门系列汇总
  • 摘要
  • Spring Boot Admin 简介
  • 创建admin-server模块
  • 创建admin-client模块
  • 监控信息演示
  • 结合注册中心使用
    • 修改admin-server
    • 修改admin-client
    • 功能演示
  • 添加登录认证
    • 创建admin-security-server模块
  • 使用到的模块
  • 项目源码地址

项目使用的Spring Cloud为Hoxton版本,Spring Boot为2.2.2.RELEASE版本

Spring Cloud入门系列汇总

序号 内容 链接地址
1 Spring Cloud入门-十分钟了解Spring Cloud https://blog.csdn.net/ThinkWon/article/details/103715146
2 Spring Cloud入门-Eureka服务注册与发现(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103726655
3 Spring Cloud入门-Ribbon服务消费者(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103729080
4 Spring Cloud入门-Hystrix断路器(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103732497
5 Spring Cloud入门-Hystrix Dashboard与Turbine断路器监控(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103734664
6 Spring Cloud入门-OpenFeign服务消费者(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103735751
7 Spring Cloud入门-Zuul服务网关(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103738851
8 Spring Cloud入门-Config分布式配置中心(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103739628
9 Spring Cloud入门-Bus消息总线(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103753372
10 Spring Cloud入门-Sleuth服务链路跟踪(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103753896
11 Spring Cloud入门-Consul服务注册发现与配置中心(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103756139
12 Spring Cloud入门-Gateway服务网关(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103757927
13 Spring Cloud入门-Admin服务监控中心(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103758697
14 Spring Cloud入门-Oauth2授权的使用(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103761687
15 Spring Cloud入门-Oauth2授权之JWT集成(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103763364
16 Spring Cloud入门-Oauth2授权之基于JWT完成单点登录(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103766368
17 Spring Cloud入门-Nacos实现注册和配置中心(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103769680
18 Spring Cloud入门-Sentinel实现服务限流、熔断与降级(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103770879
19 Spring Cloud入门-Seata处理分布式事务问题(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103786102
20 Spring Cloud入门-汇总篇(Hoxton版本) https://blog.csdn.net/ThinkWon/article/details/103786588

摘要

Spring Boot Admin 可以对SpringBoot应用的各项指标进行监控,可以作为微服务架构中的监控中心来使用,本文将对其用法进行详细介绍。

Spring Boot Admin 简介

SpringBoot应用可以通过Actuator来暴露应用运行过程中的各项指标,Spring Boot Admin通过这些指标来监控SpringBoot应用,然后通过图形化界面呈现出来。Spring Boot Admin不仅可以监控单体应用,还可以和Spring Cloud的注册中心相结合来监控微服务应用。

Spring Boot Admin 可以提供应用的以下监控信息:

  • 监控应用运行过程中的概览信息;
  • 度量指标信息,比如JVM、Tomcat及进程信息;
  • 环境变量信息,比如系统属性、系统环境变量以及应用配置信息;
  • 查看所有创建的Bean信息;
  • 查看应用中的所有配置信息;
  • 查看应用运行日志信息;
  • 查看JVM信息;
  • 查看可以访问的Web端点;
  • 查看HTTP跟踪信息。

创建admin-server模块

这里我们创建一个admin-server模块来作为监控中心演示其功能。

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

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

在application.yml中进行配置:

server:port: 9301spring:application:name: admin-server

在启动类上添加@EnableAdminServer来启用admin-server功能:

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

创建admin-client模块

这里我们创建一个admin-client模块作为客户端注册到admin-server。

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

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

在application.yml中进行配置:

server:port: 9305spring:application:name: admin-clientboot:admin:client:# 配置admin-server地址url: http://localhost:9301management: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: 9301spring:application:name: admin-servereureka: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: 9305spring:application:name: admin-clientboot:admin:client:# 配置admin-server地址url: http://localhost:9301management:endpoints:web:exposure:include: '*'endpoint:health:show-details: alwayseureka: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

添加登录认证

我们可以通过给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: 9301eureka:client:service-url:defaultZone: http://localhost:8001/eureka/spring:application:name: admin-security-serversecurity:user:# 配置登录用户名和密码name: rootpassword: 123456boot: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();}@Overrideprotected 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注册中心
├── admin-server -- admin监控中心服务
├── admin-client -- admin监控中心监控的应用服务
└── admin-security-server -- 带登录认证的admin监控中心服务

项目源码地址

GitHub项目源码地址

Spring Cloud入门-Admin服务监控中心(Hoxton版本)相关推荐

  1. Spring Cloud入门-Admin服务监控中心(Hoxton版本),java高级编程技术

    } 创建admin-client模块 这里我们创建一个admin-client模块作为客户端注册到admin-server. 在pom.xml中添加相关依赖: org.springframework. ...

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

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

  3. Spring Cloud入门-Gateway服务网关(Hoxton版本)

    文章目录 Spring Cloud入门系列汇总 摘要 Gateway 简介 相关概念 创建 api-gateway模块 在pom.xml中添加相关依赖 两种不同的配置路由方式 使用yml配置 使用Ja ...

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

    Ribbon简介 Ribbon是Netflix公司开源的客户端负载均衡器,可以控制Http和Tcp客户端的负载均衡. Ribbon默认提供了很多负载均衡算法,如:轮询.随机等,也可以实现自定义的负载均 ...

  5. Spring Cloud入门 -- Consul服务注册与发现(Hoxton.SR5版)

    Consul简介 Consul 是 HashiCorp 公司推出的开源产品,用于实现分布式系统的服务发现.服务隔离.服务配置,这些功能中的每一个都可以根据需要单独使用,也可以同时使用所有功能.Cons ...

  6. Spring Cloud入门 -- Eureka服务注册与发现(Hoxton.SR5版)

    什么是Spring Cloud Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.智能路由.消息总 ...

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

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

  8. Spring Cloud入门-Nacos实现注册和配置中心(Hoxton版本)

    文章目录 Spring Cloud入门系列汇总 摘要 Nacos简介 使用Nacos作为注册中心 安装并运行Nacos 创建应用注册到Nacos 负载均衡功能 使用Nacos作为配置中心 创建naco ...

  9. Spring Cloud入门-Oauth2授权之基于JWT完成单点登录(Hoxton版本)

    文章目录 Spring Cloud入门系列汇总 摘要 单点登录简介 创建oauth2-client模块 修改授权服务器配置 网页单点登录演示 调用接口单点登录演示 oauth2-client添加权限校 ...

最新文章

  1. python开发好学吗-Python是不是很难学?
  2. 转帖DataTable批量插入数据库
  3. usb 进入suspend_USB的挂起和唤醒 (Suspend and Resume)
  4. 1000:入门测试题目
  5. ssl1125-集合【哈希表二分查找+快排】
  6. 王小云:连破两套美国顶级密码,获得711万奖励,美国不淡定了
  7. dsm php,docker dsm是什么?
  8. FormsCookieName保存登录用户名的使用
  9. SolrCloud集群的安装使用以及Zookeeper的介绍
  10. 蓝牙版本avrcp怎么选_「科技犬」除了苹果AirPods,真无线蓝牙耳机到底怎么选?...
  11. Android 最最最简单的浏览器代码
  12. 大数据创业,数据哪里来?需要跨过几道坎?
  13. 苹果手机连wifi跳不出来登录网页解决办法
  14. 从最终用户角度来看外部结构_从不同角度来看您最喜欢的游戏
  15. Fiddler抓包流程
  16. 三月的雨季给我带来了希望
  17. Tracup小提示:工作总是摸鱼、走神,您可能得了“成人多动症”?
  18. Go开发 之 基础语法(常量、枚举、注释、类型别名、指针)
  19. PCI-Express转4串/8串/28串口CH384的硬件配置及设计
  20. MATLAB 线性规划

热门文章

  1. 小米是否真的可以干翻华为?
  2. app第三方支付,微信小程序支付
  3. bootStrap常用样式
  4. 01、pyqt入门使用--01布局、基本组件、第一个示例、qtdesigner大概使用
  5. 跨平台开发 uni-app
  6. 测试开发工程师的概念怎么来的?
  7. 华为od统一考试B卷【We Are A Team】C++ 实现
  8. PHP常用的文件操作函数集锦
  9. android点亮屏幕软件,插亮屏幕Lite
  10. 学计算机英语的心得体会,英语学习心得体会