Spring Boot Admin
<h1>概述</h1>
<h3>Spring Boot Actuator</h3>
<pre><code>Actuator是Spring Boot的模块,它在应用中添加了REST/JMS端点,方便监控和管理应用。端点提供了健康检查、指标监控、访问日志、线程转储、堆转储和环境信息等等。</code></pre>
<p>Actuator 提供了 13 个接口,具体如下表所示。</p>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/a443fe147baaba27d09ddf5e83085efe?showdoc=.jpg" alt="" /></p>
<h3>Spring Boot Actuator 与 Spring Boot Admin</h3>
<pre><code> Actuator功能强大,便于其他应用使用端点(只需要简单的REST调用)。但是开发人员使用时就没那么方便了。对于开发人员,有良好的交互界面会更方便浏览监控数据和管理应用。这正是Spring Boot Admin做的工作。它为actuator端点提供了良好的交互界面,并提供了额外的特性。
Spring Boot Admin 是一个针对spring-boot的actuator接口进行UI美化封装的监控工具。他可以返回在列表中浏览所有被监控spring-boot项目的基本信息比如:Spring容器管理的所有的bean、详细的Health信息、内存信息、JVM信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,Threads 线程管理,Environment 管理等。</code></pre>
<h3>Spring Boot Admin</h3>
<pre><code> Spring Boot Admin 是一个管理和监控 Spring Boot 应用程序的开源软件。每个应用都认为是一个客户端,通过 HTTP 或者使用 Eureka 注册到 admin server 中进行展示,Spring Boot Admin UI 部分使用 VueJs 将数据展示在前端。
Spring Boot Admin不是Spring团队提供的模块,它是由Codecentric公司创建的,代码在Github上公开。</code></pre>
<p><br></p>
<h1>环境安装</h1>
<h3>监控方(参照nisbos-springboot-admin)</h3>
<h4>a.引入maven依赖</h4>
<pre><code> <!-- spring cloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- spring boot admin -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- 不强制依赖,spring boot admin 查看类等操作的时候会用到-->
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-core</artifactId>
</dependency></code></pre>
<h4>b.启动类</h4>
<pre><code>打上注解:@EnableAdminServer
新增安全校验相关:SecurityPermitAllConfig、SecuritySecureConfig</code></pre>
<h4>c.application.yml</h4>
<pre><code>spring:
security:
#登录账户密码
user:
name: "nisbos"
password: "nisbos"
eureka:
client:
service-url:
defaultZone: http://nisbos:nisbos@localhost:1111/eureka/
注意被监控方服务连接的eureka地址和这边的eureka地址要一致</code></pre>
<h3>被监控方</h3>
<h4>a.application.yml</h4>
<pre><code>#放开权限,可以被spring boot admin监控到
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: ALWAYS</code></pre>
<p><br></p>
<h1>场景预览</h1>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/9c282b6e22e20fe75f7dc4271dcd6ec6?showdoc=.jpg" alt="" /></p>
<pre><code>通过上图可以看到,Spring Boot Admin可以通过可视化界面监控到被监控方的内存,垃圾回收的信息</code></pre>
<p><br></p>
<h1>快速入门</h1>
<h3>启动本地服务,监控nisbos-feign-provider项目为例</h3>
<h5>a.启动服务</h5>
<pre><code>启动nisbos-feign-provider项目
启动nisbos-springboot-admin项目</code></pre>
<h5>b.查看nisbos-feign-provider项目JVM相关信息</h5>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/27497fb9b07e58a95a96216e75bf77c3?showdoc=.jpg" alt="" /></p>