SpringBoot Admin 监控和管理项目

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 地址
暴露端点

image

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 更多详细功能还需要自己去研究。


原文:https://www.askajohnny.com/#/blog/141