08-SpringBoot运行监控

nobility 发布于 2022-06-09 2244 次阅读


SpringBoot运行监控

SpringBoot日志管理

SpringBoot默认已经集成了日志功能,使用的是logback开源日志系统,SpringBoot默认日志输出内容如下:

2021-02-08 20:15:27.007  INFO 15688 --- [  restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'

从左到右分别代表:

  • 日期时间:精确到毫秒
  • 日志级别:打印ERROR 、WARN 、INFO 、DEBUG 、TRACE等级别日志信息
  • 进程ID:当前项目进程ID
  • 分隔符:--- 是分隔符,分隔符后面代表具体的日志内容
  • 线程名:方括号中间的内容表示线程名称
  • 类名:当前日志打印所属的类名称
  • 日志内容:开发人员设定的日志具体内容

常用配置如下:

属性名 默认值 描述
logging.level.root INFO 日志级别
logging.file.path 日志位置
logging.file.name 日志文件名
logging.config 日志配置文件

基本使用:

//@Slf4j  //使用lombok注入logger对象
@SpringBootTest
class LogTest {
	private Logger logger = LoggerFactory.getLogger(this.getClass());  //为当前类注入一个日志打印对象

	@Test
	void testLog() {
		logger.trace("trace");
		logger.debug("debug");
		logger.info("info");
		logger.warn("warn");
		logger.error("error");
	}
}

SpringBoot实时监控

使用官方提供的spring-boot-starter-actuator启动器,该启动器依赖了micrometer框架为整个SpringBoot应用提供被监控的接口,当访问http://IP:端口/actuator时就会返回监控信息,但这些都是json格式的数据,而且默认情况下这些监控接口只开启了JMX暴露方式,而为开启Web暴露方式,所以第三方就提供了开源的SpringBoot Admin可视化监控系统

监控端和被监控端分别是两个不同的SpringBoot应用,被监控端也就是我们的SpringBoot项目

被监控端

<dependency>  <!--web依赖-->
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>  <!--SpringBoot Admin监控客户端依赖-->
  <groupId>de.codecentric</groupId>
  <artifactId>spring-boot-admin-starter-client</artifactId>
  <version>x.x.x</version>
</dependency>

再修改客户端的配置文件,指定要连接的服务器端

spring.boot.admin.client.url=http://127.0.0.1:8080
#配置当前客户端要连接的服务器地址
spring.boot.admin.client.instance.name=CLIENT1
#客户端的名称,用于区分不同的客户端(微服务)
management.endpoints.web.exposure.include=*
#客户端展示哪些信息,*表示展示全部信息

监控端

<dependency>  <!--web依赖-->
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>  <!--SpringBoot Admin监控客户端依赖-->
  <groupId>de.codecentric</groupId>
  <artifactId>spring-boot-admin-starter-client</artifactId>
  <version>x.x.x</version>
</dependency>

在被监控端的SpringBoot入口类上添加@EnableAdminServer注解开启SpringBoot Admin监控管理功能,之后运行该项目即可访问(web场景启动器默认端口是8080)

@SpringBootApplication
@EnableAdminServer // 开启监控
public class SpringBootMonitorManagerApplication {
	public static void main(String[] args) {
		SpringApplication.run(SpringBootMonitorManagerApplication.class, args);
	}
}
此作者没有提供个人介绍
最后更新于 2022-06-09