SpringBoot Admin 监控和管理项目
本篇主要讲解如何搭建SpringBoot Admin 用于监控和管理项目,以及通过Admin提供的Web端查看后台日志 动态设置日志级别 高亮日志等,并且介绍了SpringBoot Actuator 而SpringBoot Admin就是监听Actuator暴露的端口
1.SpringBoot Actuator 简介
Actuator 是 SpringBoot 项目中一个非常强大一个功能,有助于对应用程序进行监视和管理,通过 restful api 请求来监管、审计、收集应用的运行情况。
Actuator 的核心是端点 Endpoint,它用来监视应用程序及交互,spring-boot-actuator 中已经内置了非常多的 Endpoint(health、info、beans、metrics、httptrace、shutdown等等),同时也允许我们自己扩展自己的 Endpoints。每个 Endpoint 都可以启用和禁用。要远程访问 Endpoint,还必须通过 JMX 或 HTTP 进行暴露,大部分应用选择HTTP,Endpoint 的ID默认映射到一个带 /actuator 前缀的URL。例如,health 端点默认映射到 /actuator/health。
2.Actuator 使用
在springboot项目的pom中引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
配置application.yml 暴露端点
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: always
浏览器访问
http://localhost:9003/actuator
对于端点的解释
3.SpringBoot Admin简介
Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序。应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册(通过HTTP) ,展示Spring Boot Admin Client的Actuator端点上的一些监控
主要的功能点有:
显示应用程序的监控状态
应用程序上下线监控
查看 JVM,线程信息
可视化的查看日志以及下载日志文件
动态切换日志级别
Http 请求信息跟踪
其他功能点……
可点击 spring-boot-admin 更多了解 Spring-boot-admin。
4. 创建SpringBoot Admin Server
4.1 创建SpringBoot 2.1.0 项目 引入一下依赖
<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>
4.2 配置 application.yml
server:
port: 7001
spring:
application:
name: admin-server
4.3 在启动类上添加 @EnableAdminServer
@SpringBootApplication
@EnableAdminServer
public class AdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(AdminServerApplication.class, args);
}
}
4.4 直接启动项目
浏览器上访问
http://localhost:7001/
看到如下界面表示 SpringBoot Admin Server 启动成功
5.创建SpringBoot Admin Client
要被监听和管理的项目
5.1 引入Pom依赖 注意要和Admin Server版本保持一致 否则会有问题
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.1.0</version>
</dependency>
5.2 配置application.yml
配置admin server 地址
暴露端点
5.3 启动项目
启动Client端后 (要被Admin监听的) 打开SpringBootAdmin Server Web端
此时在监控平台上就有注入的Client端
点击上面的Wallboard 可以看到更多详细的信息 包括Threads 内存等等。。
还可以看到所有的Beans信息
项目暴露的请求路径Mappings
6.监控实时日志,动态配置日志级别
6.1 在application.yml中配置 日志路径
logging:
file: /Users/johnny/Downloads/springboot-client.log
6.2 重新启动Client端
在Admin 侧边Logging会多出来 Logfile 一栏 它会实时显示日志情况
6.3 动态配置日志级别
首先提供一个接口
@RequestMapping("/hello")
public String hello(){
log.debug("【debug hello】");
log.info("【info hello】");
log.warn("【warn hello】");
log.error("【error hello】");
return "hello";
}
访问
http://localhost:9003/hello
Admin监控平台会实时显示日志 默认是info级别 只显示了 info warn 和 error的日志
在Logging的 Loggers栏 点击右侧的 日志级别 这里我选中了 ERROR
再次访问
http://localhost:9003/hello
可以看到只打印了 error级别的日志
6.4 配置高亮日志显示
配置application.yml
logging.pattern.file
'%clr(%d{yyyy-MM-ddHH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint}%m%n%wEx'
重启项目可以看到日志已经高亮了
7.总结
本篇主要讲解如何搭建SpringBoot Admin 用于监控和管理项目,以及通过Admin提供的Web端查看后台日志 动态设置日志级别 高亮日志 等,本篇只是简单的介绍了SpringBoot Admin 更多详细功能还需要自己去研究。
原文:Johnny小屋