5分钟了解 SpringBootAdmin

2,819 阅读3分钟

SpringBootAdmin

概述

简单来说,Spring Boot Admin是一个管理和监控Spring Boot应用程序的开源软件。每个应用都认为是一个客户端,通过HTTP或者服务注册发现Spring Cloud(Eureka、Consul等等)注册到admin server中进行展示,Spring Boot Admin UI部分使用AngularJs将数据展示在前端。

Spring Boot Admin是一个针对spring-boot的actuator接口进行UI美化封装的监控工具。它可以:在列表中浏览所有被监控spring-boot项目的基本信息,详细的Health信息、内存信息、JVM信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,还可以直接修改logger的level。

工程搭建

搭建springboot-admin-server工程

  1. pom.xml配置,引入spring-boot-admin-starter-server
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>2.0.1</version>
</dependency>
  1. 创建application.yml文件,配置基本内容
server:
  port: 8080
spring:
  application:
    name: service-admin
  1. 创建引导类添加@EnableAdminServer开启adminServer
@SpringBootApplication
@EnableAdminServer
public class AdminServerApplication {
    public static void main(String[] args) {
    	SpringApplication.run(AdminServerApplication.class, args);
    }
}
  1. 访问localhost:8080,能看到以下页面,就成功了。目前这里面还没有任何springboot的工程项目被接入监控。

springboot工程接入监控

讲web_a工程接入监控,在工程中加入以下信息

  1. pom.xml中加入依赖
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
            <version>2.0.1</version>
        </dependency>
  1. 在application.yml中
   server:
     port: 8091
   spring:
     application:
       name: web_a
     boot:
       admin:
         client:
           url: http://127.0.0.1:8080  #配置需要接入的admin-server地址
   management:
     endpoints:
       web:
         exposure:
           include: "*"
   
  1. 刷新http://localhost:8080,查看web_a,已经接入admin的管理。

界面介绍

点击web_a,进入监控管理页面,介绍几个常用的TAB界面。

Details

在details页面,能看到应用的基本信息如下图。

Environment

在Environment页面,可以看到应用中国的各种环境变量。

Loggers

在Loggers中可以看到各层级包的日志打印级别,并且可以通过界面动态修改。

  • 当前com包下面的日志打印级别为debug

  • 在web_a应用中添加如下的controller,访问localhost:8091/hell0,就应该看到,error, warn,info,debug四种级别的日志都打印出来。
package com.itheima.controller;  
  
@RestController
@Slf4j
public class AController {
      @GetMapping("/hello")
      public String hello(){
          log.warn("test 日志切换 warn");
          log.info("test 日志切换 info");
          log.debug("test 日志切换 debug");
          log.error("test 日志切换 error");
          return "this is a!";
     }
 }
  • 将com包下的日志级别改为info,那么再次访问上面的接口,就只有error, warn,info,三种级别的日了。如下图所示。

Thread

展示的是系统中各种线程随时间变化的状态,其中黄色部分为WAITING等待状态,而绿色部分为RUNNALE运行状态。

HttpTraces

HttpTraces显示的是应用随着时间变化的http请求访问量。当然点击下面的每一个具体的情况,可以看到请求的详情,也可以通过筛选,只查看访问特定url的请求。

总结

本文介绍了SpringbootAdmin的基本搭建,Springboot工程快速接入,以及相关管理界面的介绍。帮助大家快速上手了解SpringBootAdmin对于Springboot工程服务的监控和健康管理。其实Springboot还可以设置通知,比如当某个SpringBoot应用挂了,希望通过邮件的形式通知某些管理员。这些也都是可以实现的。只是在本文中没有详细说明。