Spring Boot Admin(SBA)是一个开源的社区项目,用于管理和监控 Spring Boot 应用程序。应用程序可以通过 http 的方式,或 Spring Cloud 服务发现机制注册到 SBA 中,然后就可以实现对 Spring Boot 项目的可视化管理和查看了。

Spring Boot Admin 可以监控 Spring Boot 单机或集群项目,它提供详细的健康 (Health)信息、内存信息、JVM 系统和环境属性、垃圾回收信息、日志设置和查看、定时任务查看、Spring Boot 缓存查看和管理等功能。接下来我们一起来搭建和使用吧。

它最终的展示效果如下:

1.搭建SBA监控端

我们需要创建一个 Spring Boot Admin 项目,用来监控和管理我们的 Spring Boot 项目,搭建的方式和创建普通的 Spring Boot 项目类似,具体步骤如下。

使用 Idea 创建一个 Spring Boot 项目:





这里需要注意,需要添加 Spring Boot Admin(Server)服务端框架的支持,如下图所示:



也就是创建的 Spring Boot 项目需要添加以下两个重要的框架支持:

<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>

1.1 开启SBA服务

创建完项目之后,需要在启动类上开启 SBA 服务:

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @EnableAdminServer // 添加此行代码
@SpringBootApplication
public class SbaserverApplication {
public static void main(String[] args) {
SpringApplication.run(SbaserverApplication.class, args);
}
}

1.2 配置SBA端口号

在 application.properties 中配置一个项目的端口号就可以直接启动了,我配置的端口号是 9001:

server.port=9001

PS:配置端口号的主要目的是为了不和其他 Spring Boot 项目冲突,如果 SBA 是单独部署此步骤可以忽略。

启动项目之后,就可以看到 SBA 的主页了,如下图所示:



此时 SBA 中还没有添加任何需要监控的项目,接下来我们再创建一个 Spring Boot 项目,加入到 SBA 中来进行监控和管理吧。

2.创建一个普通SpringBoot项目

首先,我们需要创建一个普通的 Spring Boot 项目,具体的创建步骤这里就不演示了。当创建好 Spring Boot 项目之后,需要在这个 Spring Boot 项目中需要添加 SBA 客户端框架的支持,也就是在 pom.xml 中配置如下内容:

<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>

然后在 application.properties 文件中配置 SBA 服务器端地址,也就是咱们第一步创建 SBA 项目的地址,配置内容如下:

# 当前项目端口号
server.port=8080
# Spring Boot Admin 监控服务器端地址
spring.boot.admin.client.url=http://localhost:9001

其中“spring.boot.admin.client.url”为 SBA 监控地址。

3.SpringBootAdmin监控总览

配置完以上信息之后,此时查看 Spring Boot Admin 页面中就有被监控的 Spring Boot 项目了,如下图所示:



也可以点击“应用墙”查看 Spring Boot Admin 中所有被监控的 Spring Boot 项目,如下图所示:



点击应用进入详情页面,如下图所示:





事件日志中包含 Spring Boot 各种状态的展示(UP 为正常、OFFLINE 为异常)和发生的时间,如下图所示:

4.SpringBoot异常监控

当我们手动把被监控的 Spring Boot 项目停止之后,在 Spring Boot Admin 中就可以查看到一个应用已经被停掉了,如下图所示:



我们也可以通过事件日志查看 Spring Boot 宕机的具体时间,如下图所示:

5.配置查看更多监控项

通过上面的内容我们可以看出,监控的 Spring Boot 选项还是比较少的,怎么才能查看更多的监控项呢?

要解决这个问题,我们需要在被监控的 Spring Boot 项目中添加 spring-boot-starter-actuator 框架的支持,并开启查看所有监控项的配置才行,最终展示效果如下:



接下来我们来配置一下这些监控项。

5.1 添加actuator框架支持

在被监控的 Spring Boot 项目中添加 actuator 框架支持,也就是在 pom.xml 中添加以下配置:

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

手动点击 Maven 导入依赖包(如果开启了自动导入,此步骤可忽略)。

5.2 配置开放所有监控项

在被监控的 Spring Boot 项目中添加以下配置:

# 开启监控所有项
management.endpoints.web.exposure.include=*

以上的配置是开放监控所有选项,配置完之后,重启此 Spring Boot 项目,然后再刷新 Spring Boot Admin 更多的监控项就展示出来了,如下图所示:

5.3 监控项目预览

将 Spring Boot 的所有监控项都开启之后,通过 SBA 就可以查看以下内容了:

  • 启动时间、累计运行时间;
  • 进程和线程数量和占用的 CPU 资源;
  • 垃圾回收详情信息,回收次数和花费时间;
  • JVM 线程转储、内存转储详情和对应的文件下载;
  • 可以查看和配置 Spring Boot 项目中的日志级别;
  • 查看 Spring Boot 项目性能监控;
  • 查看 Spring Boot 运行环境信息;
  • 查看 Spring Boot 所有类信息;
  • 查看 Spring Boot 中的定时任务;
  • 查看和管理 Spring Boot 项目中的所有缓存。

以下是几个重要页面的截图,我们一起来看。

5.3.1 查看运行环境



5.3.2 查看定时任务

5.3.3 项目日志级别配置



我们可以通过 Spring Boot Admin 来动态的配置项目中的日志级别。

5.3.4 JVM线程和内存查看

5.3.5 查看SpringBoot所有缓存



当然我们还可以对这些缓存进行删除操作。

6.查看项目实时日志

想要查看监控项目中的日志信息,有一个前提条件,前提条件是你被监控的 Spring Boot 项目,必须配置了日志的保存路径或者日志保存文件名,只有配置这两项中的任意一项,你的 Spring Boot 项目才会将日志保存到磁盘上,这样才能通过 SBA 查看到,我配置的是日志路径,在 Spring Boot 的 application.properties 配置文件中添加以下配置:

# 设置日志保存路径
logging.file.path=C:\\work\\log

设置完成之后,重启你的 Spring Boot 项目,然后刷新 SBA 页面,最终展示效果如下:



此时我们就可以查看实时的日志信息了,当然你也可以随时下载日志,如果需要的话。

总结

Spring Boot Admin(SBA)是一个社区开源项目,用于管理和监视 Spring Boot 应用程序,它提供详细的健康 (Health)信息、内存信息、JVM 系统和环境属性、垃圾回收信息、日志设置和查看、定时任务查看、Spring Boot 缓存查看和管理等功能。

我们需要创建一个 SBA 服务器端用来监控一个或多个 Spring Boot 项目,被监控的 Spring Boot 项目要添加 SBA Client 框架的支持,且添加 actuator 框架和相应的配置,就可以实现对 Spring Boot 项目的完美监控了。

是非审之于己,毁誉听之于人,得失安之于数。

公众号:Java面试真题解析

Spring Boot Admin,贼好使!的更多相关文章

  1. Spring Boot Admin Quick Start

    Quick Start 1. Spring Boot Admin是干什么的? 用来监控Spring Boot项目,可以通过Spring Boot Admin Client(via Http) 或者 使 ...

  2. Spring Boot (十): Spring Boot Admin 监控 Spring Boot 应用

    Spring Boot (十): Spring Boot Admin 监控 Spring Boot 应用 1. 引言 在上一篇文章<Spring Boot (九): 微服务应用监控 Spring ...

  3. Eureka心跳健康检查机制和Spring boot admin 节点状态一直为DOWN的排查(忽略某一个节点的健康检查)

    https://www.jdon.com/springcloud/eureka-health-monitoring.html 运行阶段执行健康检查的目的是为了从Eureka服务器注册表中识别并删除不可 ...

  4. Spring Boot Admin 的使用 2

    http://blog.csdn.net/kinginblue/article/details/52132113 ******************************************* ...

  5. Spring Boot Admin的使用

    http://www.jianshu.com/p/e20a5f42a395 ******************************* 上一篇文章中了解了Spring Boot提供的监控接口,例如 ...

  6. Spring Boot Admin Reference Guide

    1. What is Spring Boot Admin? Spring Boot Admin is a simple application to manage and monitor your S ...

  7. spring boot admin

    这里记录一个spring cloud的模板,有的模块spring cloud eureka + spring boot admin + spring cloud zuul + 一个普通spring c ...

  8. spring boot admin + spring boot actuator + erueka 微服务监控

    关于spring boot actuator简单使用,请看 简单的spring boot actuator 使用,点击这里 spring boot admin 最新的正式版本是1.5.3 与 spri ...

  9. Spring Boot admin 2.0 详解

    一.什么是Spring Boot Admin ? Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序. 应用程序作为Spring Boot Admin C ...

  10. Spring boot admin 节点状态一直为DOWN的排查

    项目中需要监控各个微服务节点的健康状态,找到了spring boot admin这个全家桶监控工具,它其实是Vue.js美化过的Spring Boot Actuator,官方的解释是: codecen ...

随机推荐

  1. 字节面试:SYN 包在什么场景下会被丢弃?

    大家好,我是小林. 之前有个读者在秋招面试的时候,被问了这么一个问题:SYN 报文什么时候情况下会被丢弃? 好家伙,现在面试都问那么细节了吗? 不过话说回来,这个问题跟工作上也是有关系的,因为我就在工 ...

  2. CF336A Vasily the Bear and Triangle 题解

    Content 一个矩形的顶点为 \((0,0)\),其对顶点为 \((x,y)\),现过 \((x,y)\) 作直线,分别交 \(x\) 轴和 \(y\) 轴于 \(A,B\) 两点,使得 \(\t ...

  3. java 多线程:Thread类;Runnable接口

    1,进程和线程的基本概念: 1.什么是进程: 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机 ...

  4. Ubuntu Server服务器上架设Git Server服务器

    1.设置公钥 ubuntu:/home/git$ ssh-keygen -t rsa #生成密钥 这里会提示输入密码,我们不输入直接回车即可. 然后用刚生成公钥/home/git/.ssh/id_rs ...

  5. 【LeetCode】739. Daily Temperatures 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 倒序遍历 栈 日期 题目地址:https://leetcode ...

  6. 【LeetCode】127. Word Ladder 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/word-lad ...

  7. Hive SQL优化思路

    Hive的优化主要分为:配置优化.SQL语句优化.任务优化等方案.其中在开发过程中主要涉及到的可能是SQL优化这块. 优化的核心思想是: 减少数据量(例如分区.列剪裁) 避免数据倾斜(例如加参数.Ke ...

  8. WebRTC下 的 NAT 穿透技术

    NAT的概念模型 NAT名字很准确,网络地址转换,就是替换IP报文头部的地址信息.NAT通常部署在一个组织的网络出口位置,通过将内部网络IP地址替换为出口的IP地址提供公网可达性和上层协议的连接能力. ...

  9. C++输出控制小数点后位数的方法

    以C++输出小数点两位数为例 setprecision(n)使用方法总结 首先要记住写头文件 #include <iomanip> //不要忘了头文件 以下是控制小数位数的三种写法 //t ...

  10. [Guide]Google Python Style Guide

    扉页 项目主页 Google Style Guide Google 开源项目风格指南 - 中文版 背景 Python 是Google主要的脚本语言.这本风格指南主要包含的是针对python的编程准则. ...