Spring Boot Admin 图形化监控

简介: Spring Boot Admin 图形化监控, 是你监控中必不可少的利器。

Spring Boot Admin 图形化监控

1. 简介

1.1 概述

Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序。 应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册(通过HTTP)或使用SpringCloud注册中心(例如Eureka,Consul)发现。 UI是的AngularJs应用程序,展示Spring Boot Admin Client的Actuator端点上的一些监控。

Spring Boot Admin 可以提供应用的以下监控信息:

  • 监控应用运行过程中的概览信息;
  • 度量指标信息,比如JVM、Tomcat及进程信息;
  • 环境变量信息,比如系统属性、系统环境变量以及应用配置信息;
  • 查看所有创建的Bean信息;
  • 查看应用中的所有配置信息;
  • 查看应用运行日志信息;
  • 查看JVM信息;
  • 查看可以访问的Web端点;
  • 查看HTTP跟踪信息。

1.2 官网

源码地址:https://github.com/codecentric/spring-boot-admin

2. 环境

  • java:1.8
  • springboot:2.3.0.RELEASE
  • Nacos:1.3.0

3.spring-boot-admin-server搭建

3.1 maven配置

增加spring-boot-admin依赖,nacos依赖

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- 引入nacos注册中心 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- spring cloud alibaba nacos config 依赖 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <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>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-server-ui</artifactId>
            <version>2.3.0</version>
        </dependency>

3.2 工程配置

bootstrap.yml配置用于连接nacos,application.yml开启本服务的监控,暴露自己的actuator的所有端口信息。application.yml的内容可以放到nacos配置列表中,新建配置admin-server.yml,将application.yml的内容复制到admin-server.yml

  • 3.2.1 bootstrap.yml配置如下:
spring:
  profiles:
    active: uat
  application:
    name: admin-server
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
        namespace: ${spring.profiles.active}
      config:
        # 如果不想使用 Nacos 进行配置管理,设置为 false 即可
        enabled: true
        # Nacos Server 地址
        server-addr: localhost:8848 
        # 组,默认为 DEFAULT_GROUP
        group: ${spring.application.name} 
         # 配置内容的数据格式,默认为 properties
        file-extension: yml
        namespace: ${spring.profiles.active}
  • 3.2.2 application.yml配置:
logging:
  level:
    # Nacos 注册中心客户端心跳日志禁用 get changedGroupKeys:[] 刷屏
    com.alibaba.nacos.client.config.impl: WARN
    com.alibaba.nacos.client.naming: WARN
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: ALWAYS

3.3 启动类

添加注解:@EnableDiscoveryClient、@EnableAdminServer

package com.lin.admin;

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@EnableDiscoveryClient
@EnableAdminServer
@SpringBootApplication
public class SpringAdminApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringAdminApplication.class, args);
    }
}

3.4 启动效果

浏览器访问地址http://localhost:8080/,界面如下:

11_副本.png

4. 客户端demo:spring-boot-admin-client

4.1 maven配置

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
<!-- 引入nacos注册中心 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- spring cloud alibaba nacos config 依赖 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

4.2 配置文件

bootstrap.yml配置用于连接nacos,application.yml开启本服务的监控,暴露自己的actuator的所有端口信息。application.yml的内容可以放到nacos配置列表中,新建配置admin-client.yml,将application.yml的内容复制到admin-client.yml
连接nacos可以配置服务发现,只要保证与springboot-admin部署在同样namespace,同样group,就可以监控到资源。
如果不连接nacos,需要指定admin-server地址,如:

boot:
admin:
  client:
    url: http://localhost:8080
  • 4.2.1 bootstrap.yml配置如下:
spring:
  profiles:
    active: uat
  application:
    name: admin-client
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
        namespace: ${spring.profiles.active}
        metadata:
          management:
      config:
        enabled: true
        server-addr: localhost:8848
        group: ${spring.application.name}
        file-extension: yml
        namespace: ${spring.profiles.active}
  • 4.2.2 application.yml配置如下:
server: 
    port:8768
spring:
    application:
      name: admin-client 
#  boot:
#     admin:
#       client:
#         url: http://172.0.0.1:8080
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: ALWAYS

4.3 启动服务,访问admin-server

点击admin-client服务,查看详情,可以看到进程、内存、配置等等信息,如下:

22_副本.png

相关文章
|
1天前
|
Prometheus 监控 Cloud Native
SpringBoot(七)之监控
Micrometer 是一个应用指标记录库,Spring Boot Actuator 通过它可以与各种监控系统(如 Prometheus、Graphite、New Relic 等)集成。
6 0
|
3天前
springboot2.4.5使用pagehelper分页插件
springboot2.4.5使用pagehelper分页插件
6 0
|
3天前
|
Java Maven
springboot项目打jar包后,如何部署到服务器
springboot项目打jar包后,如何部署到服务器
13 1
|
3天前
|
运维 Java 关系型数据库
Spring运维之boot项目bean属性的绑定读取与校验
Spring运维之boot项目bean属性的绑定读取与校验
12 2
|
3天前
|
存储 运维 Java
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
16 2
|
3天前
|
缓存 运维 Java
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
13 0
|
3天前
|
XML 运维 Java
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
11 1
|
9天前
|
JSON 监控 Java
SpringBoot实用开发篇第七章(监控技术)
SpringBoot实用开发篇第七章(监控技术)
|
15天前
|
Prometheus 监控 Cloud Native
【监控】Spring Boot+Prometheus+Grafana实现可视化监控
【监控】Spring Boot+Prometheus+Grafana实现可视化监控
39 6
|
15天前
|
监控 Java API
【监控】spring actuator源码速读
【监控】spring actuator源码速读
11 1