SpringBoot Admin监控平台《一》平台搭建及基础介绍

一、SpringBoot Admin简介

1.1.简介

Spring Boot Admin是一个管理和监控Spring Boot应用程序的开源项目,在对单一应用服务监控的同时也提供了集群监控方案,支持通过eureka、consul、zookeeper等注册中心的方式实现多服务监控与管理。Spring Boot Admin UI部分使用Vue JS将数据展示在前端。

Spring Boot Admin分为服务端(spring-boot-admin-server)和客户端(spring-boot-admin-client)两个组件:

  • spring-boot-admin-server通过采集actuator端点数据显示在spring-boot-admin-ui上,已知的端点几乎都有进行采集。
  • spring-boot-admin-client是对Actuator的封装,提供应用系统的性能监控数据。此外,还可以通过spring-boot-admin动态切换日志级别、导出日志、导出heapdump、监控各项性能指标等。

Spring Boot Admin服务器端负责收集各个客户的数据。各台客户端配置服务器地址,启动后注册到服务器。服务器不停地请求客户端的信息(通过Actuator接口)。具体架构如下图所示。

SpringBoot Admin监控平台《一》平台搭建及基础介绍_第1张图片

上图为Spring Boot Admin的整体架构,在每个Spring Boot应用程序上增加Spring Boot Admin Client组件。这样每个Spring Boot应用即Admin客户端,Admin服务端通过请求Admin客户端的接口收集所有的Spring Boot应用信息并进行数据呈现,从而实现Spring Boot应用监控

 换句话说,监控平台就像老师,各SpringBoot就像学生,老师(监控平台)可以收集学生(客户端)的成绩(信息),来判断学生的状态,彼此关系是一对多的关系。

1.2.功能 

监控平台有多中功能,主要包括显示应用程序的监控状态、应用程序上下线监控、查看 JVM,线程信息、可视化的查看日志以及下载日志文件、动态切换日志级别、Http 请求信息跟踪等等

二、监控平台搭建 

2.1.pom依赖 

        创建新的Spring Boot项目,在新建的项目中添加Spring Boot Admin服务器端的依赖JAR包:spring-boot-admin-starter-server。 

项目创建就不具体介绍了,不熟悉的可以参考SpringBoot项目搭建 

版本说明:Spring Boot 2.x=Spring Boot Admin 2.x  (比如Spring Boot 2.3.x 可以用Spring Boot Admin 2.3.x) 

Spring版本: 


    org.springframework.boot
    spring-boot-starter-parent
    2.3.6.RELEASE

服务器端依赖: 



      de.codecentric
      spring-boot-admin-starter-server
      2.3.1





      org.springframework.boot
      spring-boot-starter-web

我上面给的是项目搭建完毕后,再在pom文件里添加依赖,如果是创建项目时选择依赖,要仔细选择,平台依赖和客户端依赖类似,要注意区分,具体如下

SpringBoot Admin监控平台《一》平台搭建及基础介绍_第2张图片

 2.2.配置文件

server.port=8000
spring.application.name=admin-test
management.endpoint.health.show-details=always

 

 2.3.主启动类添加注解 @EnableAdminServer

SpringBoot Admin监控平台《一》平台搭建及基础介绍_第3张图片

2.4.浏览器登录URL: localhost:8000 

        URL是IP+端口,端口用自己定义的。下面是在没有客户端的情况下的初始界面 

SpringBoot Admin监控平台《一》平台搭建及基础介绍_第4张图片

从Admin服务端的启动界面可以看到,Applications页面会展示应用数量、实例数量和状态3个信息。 

三、客户端的搭建 

3.1.pom依赖 

创建新的Spring Boot项目,在新建的项目中添加Spring Boot Admin客户端的依赖JAR包:spring-boot-admin-starter-server。 

Spring版本: 

    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.6.RELEASE
         
    

 客户端依赖:


     de.codecentric
     spring-boot-admin-starter-client
     2.3.1


     org.springframework.boot
     spring-boot-starter-web

spring-boot-admin-starter-client会自动添加Actuator相关依赖,所以这里不需要重复添加Actuator的相关依赖。 

SpringBoot Admin监控平台《一》平台搭建及基础介绍_第5张图片 

 3.2.配置文件

server.port=9999
spring.application.name=clientTest1
spring.boot.admin.client.url=http://localhost:8000

配置说明:

  • server.port:当前应用设置端口为8001。
  • spring.application.name:设置Application名称,其默认名称都是spring-boot-application。
  • spring.boot.admin.client.url:意思是被监控的信息要发到哪个服务器,这里配置Admin服务器的地址。

 3.3刷新监控平台

启动客户端并刷新监控平台页面... 

SpringBoot Admin监控平台《一》平台搭建及基础介绍_第6张图片

四、监控平台页面说明 

4.1.主页面 

启动client了,等待几秒钟,刷新刚才打开的页面 

SpringBoot Admin监控平台《一》平台搭建及基础介绍_第7张图片

点击【应用墙】可以看到如下图所示界面,如果有多个客户端,界面会出现多个6边型 

SpringBoot Admin监控平台《一》平台搭建及基础介绍_第8张图片

SpringBoot Admin监控平台《一》平台搭建及基础介绍_第9张图片

  • 绿色:健康
  • 灰色:连接客户端健康信息超时(超过10s)
  • 红色:就能看到具体异常信息 

客户端启动之后,Admin服务器界面的Application数量会增加。单击Application下的数值可以查看完整的应用信息。页面会展示被监控的应用列表,单击应用名称会进入此应用的详细监控信息页面。 

SpringBoot Admin监控平台《一》平台搭建及基础介绍_第10张图片

这个页面会实时显示应用的运行监控信息,包括之前介绍的Actuator所有的端点数据信息。

Spring Boot Admin以图形化的形式展示了应用的各项信息,这些信息大多来自于Spring Boot Actuator提供的接口。利用图形化的形式很容易看到应用的各项参数变化,甚至有些页面还可以进行一些配置操作,比如改变打印日志的级别等。

 4.2.监控界面

 4.2.1.接口信息

SpringBoot Admin监控平台《一》平台搭建及基础介绍_第11张图片

 4.2.2.JVM信息

可以看到各个时间点,各个线程的工作状态

SpringBoot Admin监控平台《一》平台搭建及基础介绍_第12张图片

 4.2.3.日志

 以客户端2为示例,在客户端项目的resources目录下创建logback.xml文件,添加日志信息



	
	
	
	
	
		
			
			${LOG_PATH}/client-test2.%d{yyyy-MM-dd}.%i.log	
			
			30
			
				
				200MB
			
		
		
			
			%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n
		
	

	
	
	
	
	
	

	
		
	

 所需pom依赖



	org.slf4j
	slf4j-api
	1.7.21





	ch.qos.logback
	logback-core
	1.1.7


	ch.qos.logback
	logback-classic
	1.1.7

刷新Maven,重启项目后,界面如下所示

SpringBoot Admin监控平台《一》平台搭建及基础介绍_第13张图片

勾选【已配置】选项,可以看到该项目已经配置的日志配置 

SpringBoot Admin监控平台《一》平台搭建及基础介绍_第14张图片

配置文件添加日志路径 

##与logback中路径保持一致
management.endpoint.logfile.external-file=/data/jar/j-client-test2/log/client-test2.2023-09-05.0.log


##logback文件中,日志文件命名是动态的,但我这里是写死的仅用来测试,后续需要修改

 刷新监控平台界面,可以看到日志信息

SpringBoot Admin监控平台《一》平台搭建及基础介绍_第15张图片

 

你可能感兴趣的:(spring,boot,后端,java)