Skip to content

监控

SpringBoot自带监控功能插件Actuator,可以帮助实现对程序内部运行情况的监控,如监控状态、Bean加载情况、配置属性和日志信息等。

使用步骤:

  1. 导入依赖坐标(在搭建项目时,可以直接勾选Ops中的Spring Boot Actuator

    xml
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
  2. 访问http://localhost:8080/acruator

    基本使用:可以查看到健康相关(包括引入的第三方包也能健康检查)({"status": "up"}表示程序运行状态健康)和信息info相关的功能(查看配置文件中以info开头的配置信息)

    如果要开启健康检查的完整信息,我们需要在项目的配置文件中进行配置:

    properties
    # info相关的信息
    info.name=jlc
    info.age=25
    
    # 开启健康检查的完整信息
    management.endpoint.health.show-details=always

高级使用需要我们进行配置的开启,才能使用

properties
# 将所有的监控endpoint暴露出来
management.endpoint.web.exposure.include=*

开启所有的功能后,我们可以看到Bean加载情况、配置文件的属性信息和当前所有的url路径信息等


图形化方式监控

开源项目Spring Boot Admin提供了图形化的监控方式

Spring Boot Admin有两个角色:客户端和服务端

  • 应用程序作为Spring Boot Admin ClientSpring Boot Admin Server注册
  • Spring Boot Admin ServerUI界面展示Spring Boot Admin ClientActuator Endpoint上的一些监控信息

使用步骤:

  • admin-server

    1. 创建admin-server模块

    2. 导入依赖坐标admin-starter-server(直接在创建SpringBoot项目时勾选Web中的Spring WebOps中的Spring Boot Admin (Server)

    3. 在引导类上启用监控功能@EnableAdminServer

      java
      package com.jlc.springbootadminserver;
      
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      import org.springframework.boot.SpringApplication;
      
      @SpringBootApplication
      @EnableAdminServer   // 启动监控功能
      public class SpringbootAdminserverApplication {
          public static void main(String[] args) {
              SpringApplication.run(SpringbootInitApplication.class, args);
          }
      }
  • admin-client

    1. 创建admin-client模块

    2. 导入依赖坐标admin-starter-client(直接在创建SpringBoot项目时勾选Web中的Spring WebOps中的Spring Boot Admin (Client)

    3. 配置相关信息:server地址等

      application.properties中进行配置:

      properties
      # 执行admin.server的地址
      spring.boot.admin.client.url=http://localhost:9000   # 具体的端口地址具体声明
      
      # 开启健康检查的完整信息
      management.endpoint.health.show-details=always
      
      # 将所有的监控endpoint暴露出来
      management.endpoint.web.exposure.include=*
    4. 启动serverclient服务,访问server,访问http://localhost:9000

Released under the MIT License.