一、简介

Spring Boot Admin是一个完整的应用程序,用于监控和管理Spring Boot应用。原理是通过调用Spring Boot Actuator提供的http接口来实现的监控和管理,所以要想能够被Spring Boot Admin 的Server端管理,则Client端必须集成了Spring Boot Actuator。

  • 可监控内容:

    状态;基本信息;JVM和堆栈实时数据;应用配置信息;缓存指标;线程数据;接口调用数据

  • 可管理内容:

    按照包名调整日志级别;管理、查看和下载系统日志;报警(服务异常下线发送邮件)

AdminServer的web界面:

二、Spring-Boot集成

Spring Boot Admin是C/S结构,server端负责收集和处理client端的数据,并且可以通过向client端发送命令来管理client。

项目工程目录结构:

三、Server端

  • 引入所需的pom依赖:spring-boot-starter-web;spring-boot-admin-starter-server
  • application.yml配置文件中配置服务的端口:server.port=9000
  • 启动类上面添加EnableAdminServer的注解

完整的pom文件:


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.naylor</groupId>
<artifactId>admin-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>admin-server</name>
<description>Demo project for Spring Boot</description> <properties>
<java.version>1.8</java.version>
<spring-boot-admin.version>2.3.0</spring-boot-admin.version>
</properties> <dependencies>
<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> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies> <dependencyManagement>
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-dependencies</artifactId>
<version>${spring-boot-admin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>

启动AdminServer后访问 http://127.0.0.1:9000/applications 可以看到“暂无应用注册”的提示

四、Client端

  • 引入所需的pom依赖:spring-boot-starter-web;spring-boot-admin-starter-client;spring-boot-actuator
  • application.propertis配置文件中增加相关配置:服务端口;服务名称;开启actuator所有端点都可以被访问;AdminServer服务端的地址

完整的pom文件:


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.naylor</groupId>
<artifactId>admin-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>admin-client</name>
<description>Demo project for Spring Boot</description> <properties>
<java.version>1.8</java.version>
<spring-boot-admin.version>2.3.0</spring-boot-admin.version>
</properties> <dependencies>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies> <dependencyManagement>
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-dependencies</artifactId>
<version>${spring-boot-admin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>

完整的配置文件:


spring.boot.admin.client.url=http://localhost:9000 server.port=8003
spring.application.name=admin-client management.endpoints.web.exposure.include=*

启动AdminClient后,访问 http://127.0.0.1:8003/actuator , 先看看actuator是否正常

同时启动AdminServer和AdminClient:

访问 http://127.0.0.1:9000/wallboard 可以看到一个client端已经注册到了AdminServer之中

五、集成到Eureka

集成到Eureka之后,就不必在每一个Admin-Client的配置文件中都配置一遍Admin-Server的地址,让Admin-Server主动从Eureka中拉取Admin-Client,并获取Actuator地址,进而进行监控和管理。

1、Admin-Server的配置文件中加入Eureka-Server地址:

eureka:
instance:
hostname: localhost
#eureka-client 向 eureka-server端发送心跳包的频率
leaseRenewalIntervalInSeconds: 10
health-check-url-path: /actuator/health
client:
#是否把自己向eureka-server注册
registerWithEureka: false
fetch-registry: true
#从eureka-server拉取已注册服务的列表的频率
registryFetchIntervalSeconds: 5
serviceUrl:
defaultZone: http://${eurekaclient.username}:${eurekaclient.password}@localhost:7001/eureka/

配置了serviceUrl之后,Admin-Server就可以从Eureka中获取已经注册的微服务信息,并进行监控和管理。

至于registerWithEureka是否配置为true,取决于自己的喜欢。配置为false,Admin-Server不会注册到Eureka-Server

;配置为true,Admin-Server就会注册到Eureka-Server中,那么,意味着Admin-Server从注册中心拉取微服务的时候会把自己(即Admin-Server)也拉取下来进行监控和管理。

2、Admin-Client的配置文件中去除已经配置的Admin-Server地址:


# 注释掉配置的Admin-Server地址
# spring.boot.admin.client.url=http://localhost:9000

注释掉配置的Admin-Server地址的目的是避免重复,因为当前的Admin-Client作为一个微服务已经注册到了Eureka-Server,那么Admin-Server就已经可以从Eureka-Server中拉取到此服务的Actuator信息。

若不注释,那么在Admin-Server的WallBoard中将看到两个重复的Admin-Client。

引用:

https://www.cnblogs.com/huanchupkblog/p/10563629.html

https://www.jianshu.com/p/1749f04105fb


Spring Boot Admin极简教程的更多相关文章

  1. Spring Boot 如何极简入门?

    Spring Boot已成为当今最流行的微服务开发框架,本文是如何使用Spring Boot快速开始Web微服务开发的指南,我们将创建一个可运行的包含内嵌Web容器(默认使用的是Tomcat)的可运行 ...

  2. spring boot MySQL极简封装

    摒弃繁琐配置,采用极简方式,源码简单,调用丰富,无污染,易携带,工作量减半,java操作mysql居家旅行升职加薪登上人生巅峰迎娶白富美必备object! 项目地址:https://gitee.com ...

  3. spring cloud微服务快速教程之(六) 应用监控 spring boot admin

    0-前言 当我们发布了微服务后,我们希望对各个应用的各个运行状况进行一个监控:这个时候spring boot admin,就出场了: spring boot admin:是一个监控和管理spring ...

  4. Spring Boot Admin 2.1.4最新实战教程

    环境的搭建 首先搭建eruka的注册中心 pom.xml <?xml version="1.0" encoding="UTF-8"?> <pr ...

  5. Spring Boot 2.x基础教程:使用国产数据库连接池Druid

    上一节,我们介绍了Spring Boot在JDBC模块中自动化配置使用的默认数据源HikariCP.接下来这一节,我们将介绍另外一个被广泛应用的开源数据源:Druid. Druid是由阿里巴巴数据库事 ...

  6. Spring Boot Admin的使用

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

  7. Spring Boot Admin 2.1.0 全攻略

    转载请标明出处: https://www.fangzhipeng.com 本文出自方志朋的博客 Spring Boot Admin简介 Spring Boot Admin是一个开源社区项目,用于管理和 ...

  8. SpringBoot | 第二十八章:监控管理之Spring Boot Admin使用

    前言 上一章节,我们介绍了Actuator的使用,知道了可通过访问不同的端点路径,获取相应的监控信息.但使用后也能发现,返回的监控数据都是以JSON串的形式进行返回的,对于实施或者其他人员来说,不是很 ...

  9. Nginx 极简教程(快速入门)

    作者:dunwu github.com/dunwu/nginx-tutorial 推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. 设计模式内容聚合 4.  ...

  10. nginx极简教程

    Nginx 极简教程 本项目是一个 Nginx 极简教程,目的在于帮助新手快速入门 Nginx. examples 目录中的示例模拟了工作中的一些常用实战场景,并且都可以通过脚本一键式启动,让您可以快 ...

随机推荐

  1. Python图像处理丨图像的灰度线性变换

    摘要:本文主要讲解灰度线性变换. 本文分享自华为云社区<[Python图像处理] 十五.图像的灰度线性变换>,作者:eastmount. 一.图像灰度线性变换原理 图像的灰度线性变换是通过 ...

  2. OpenHarmony移植案例与原理:如何适配服务启动引导部件bootstrap_lite

    摘要:本文介绍移植开发板时如何适配服务启动引导部件bootstrap_lite,并介绍相关的运行机制原理. 本文分享自华为云社区<OpenHarmony移植案例与原理 - startup子系统之 ...

  3. centos8 nginx server root指向自定义目录如(/data/www),访问报403 404,所有文件用户组为root 权限为755

    centos8 yum 自定义安装的nginx,修改nginx默认默认目录,指向自定义的目录 /data/www,访问报404,所有文件用户组为root 权限为755 nginx 以user 为ngi ...

  4. Datahub新版本0.9.1更新,列级别数据血缘功能发布!

    大家好,我是独孤风. 近期Datahub进行了一次大的版本更新,从0.9版本以后Datahub也正式发布了列级别数据血缘的功能. 0.9.1版本又增加了,列的影响分析这个功能. 这样Datahub对于 ...

  5. 火山引擎DataLeap数据调度实例的 DAG 优化方案 (二):功能设计

    针对上面存在的问题以及对需求的分析,我们可以进行如下的功能实现与设计: 首先是渲染方案的替换,将 svg 的渲染方案替换成 canvas 渲染,通过减少页面中 DOM 的数量,提高前端渲染性能. 其次 ...

  6. Solon 开发进阶,一、插件扩展机制

    Solon 开发进阶 一.插件扩展机制 二.体外扩展机制 三.常用配置说明 四.启动参数说明 五.全局异常订阅 像 @Tran.@Cache 之类的注解开发成果,都会希望能在所有项目中复用.Solon ...

  7. SQL Server 2016 自动备份、收缩数据库

    一般策略为:Oracle: 周一.二 增量备份,周三差异备份,周四.五.六增量备份,周日完整备份(建多计划) MsSQL: 周一.六差异备份,周日完整备份(建多计划) 打开SQL server配置管理 ...

  8. esp8266 水墨屏显示中文之大号字体

    想要显示更大的字体,操作流程如下: 一.下载ESP8266文字显示相关库 链接: https://pan.baidu.com/s/1q9m0K2_egAmiMmD5IBfQ4Q 提取码: wtr2 二 ...

  9. Nginx--安装&&配置文件

    官网:http://nginx.org/en/download.html nginx版本:1.18   一 安装 1 下载预编译环境(预编译报错需要安装什么库 直接在库名后面接 -devel 使用yu ...

  10. 【驱动】以太网扫盲(四)phy驱动link up流程分析

    1. 简介 在调试网口驱动的过程中发现phy芯片的驱动框架结构还有点复杂,不仔细研究的话还不好搞懂,另外百度到的资料也不够全面,这篇就总结梳理一下这方面的知识. 我们知道一个 phy 驱动的原理是非常 ...