spring-boot-admin的介绍和使用

概述

Spring Boot 有一个非常好用的监控和管理的源软件,这个软件就是 Spring Boot Admin。该软件能够将 Actuator 中的信息进行界面化的展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能。

主要的功能点有:

  • 显示应用程序的监控状态
  • 应用程序上下线监控
  • 查看 JVM,线程信息
  • 可视化的查看日志以及下载日志文件
  • 动态切换日志级别
  • Http 请求信息跟踪
  • 其他功能点……

搭建服务流程说明

  • admin-server  admin 监控服务
  • admin-order amdin 客户端服务

创建Spring Boot Admin项目


版本说明:版本建议: Spring Boot 2.x=Spring Boot Admin 2.x  (比如Spring Boot 2.3.x 可以用Spring Boot Admin 2.3.x)

创建一个 Spring Boot 项目,用于展示各个服务中的监控信息,加上 Spring Boot Admin 的依赖,具体代码如下所示:

pom 依赖

<dependencies><!--springboot--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--spring-boot-admin服务端--><dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-server</artifactId><version>2.5.6</version></dependency><!--spring-boot-adminUI界面,不添加无法加载出页面--><dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-server-ui</artifactId><version>2.5.6</version></dependency><!--security--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><!--test--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
启动类

添加 @EnableAdminServer

@EnableAdminServer
@SpringBootApplication
public class SpringbootAdminApplication {public static void main(String[] args) {SpringApplication.run(SpringbootAdminApplication.class, args);}}
yml 配置

在属性文件中增加端口配置信息:

server:port: 8082servlet:context-path:
spring:application:name: springboot-admin-testsecurity:user:name: "admin"password: "admin"
management:endpoint:health:show-details: always

启动程序,访问 Web 地址 http://127.0.0.1:8082/ 就可以看到主页面了,这个时候是没有数据的,如图 所示

客户端服务

流程

创建 amdin-order 服务,将服务注册到 admin-server 中

pom 依赖
<!--spring-boot-admin客户端--><dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-client</artifactId><version>2.4.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId><!--此处不去除日志依赖启动会报错--><exclusions><exclusion><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId></exclusion><exclusion><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-to-slf4j</artifactId></exclusion></exclusions></dependency>
yml 配置
spring:application:## 注册服务名name: spring-boot-admin-test## spring boot adminboot:admin:client:api-path:url: http://127.0.0.1:8082instance:prefer-ip: true # 使用ip注册进来#endpoints config
management:endpoint:health:show-details: alwaysendpoints:enabled-by-default: trueweb:base-path: /actuatorexposure:include: '*'
启动 admin-order 服务
@SpringBootApplication
public class AdminOrderApp {public static void main(String[] args) {SpringApplication.run(AdminOrderApp.class,args);}}

重新刷新 admin 平台,admin-order 服务就可以监控

  • 绿色:健康
  • 灰色:连接客户端健康信息超时(超过10s)
  • 红色:就能看到具体异常信息 

Spring Boot Admin 监控平台

Insighs 信息

自定义的 Info 信息、健康状态、元数据,如图

Endpoint 端点接口信息

JVM 信息

Admin 中查看各个服务的日志 

客户端需要把日志同步ADMI服务中,通过JMX,客户端配置如下

添加 logback-spring.xml 配置
<?xml version="1.0" encoding="UTF-8"?>
<!--小技巧: 在根pom里面设置统一存放路径,统一管理方便维护<properties><log-path>/Users/lengleng</log-path></properties>1. 其他模块加日志输出,直接copy本文件放在resources 目录即可2. 注意修改 <property name="${log-path}/log.path" value=""/> 的value模块
-->
<configuration debug="false" scan="false"><property name="log.path" value="logs/admin-order"/><!-- 彩色日志格式 --><property name="CONSOLE_LOG_PATTERN"value="${CONSOLE_LOG_PATTERN:-%(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %(${LOG_LEVEL_PATTERN:-%5p}) %(${PID:- }){magenta} %(---){faint} %([%15.15t]){faint} %(%-40.40logger{39}){cyan} %(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/><!-- 彩色日志依赖的渲染类 --><conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/><conversionRule conversionWord="wex"converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/><conversionRule conversionWord="wEx"converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/><!-- Console log output --><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${CONSOLE_LOG_PATTERN}</pattern></encoder></appender><!-- Log file debug output --><appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.path}/debug.log</file><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern><maxFileSize>50MB</maxFileSize><maxHistory>30</maxHistory></rollingPolicy><encoder><pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern></encoder></appender><!-- Log file error output --><appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.path}/error.log</file><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern><maxFileSize>50MB</maxFileSize><maxHistory>30</maxHistory></rollingPolicy><encoder><pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>ERROR</level></filter></appender><logger name="org.activiti.engine.impl.db" level="DEBUG"><appender-ref ref="debug"/></logger><!-- Level: FATAL 0  ERROR 3  WARN 4  INFO 6  DEBUG 7 --><root level="INFO"><appender-ref ref="console"/><appender-ref ref="debug"/></root>
</configuration>

yml 配置

management:endpoints:web:exposure:include: '*'enabled-by-default: trueendpoint:health:show-details: ALWAYS# 日志记录logfile:external-file: D:/project/springcould-alibaba-example/logs/admin-order/debug.log
Spring Boot Admin 查询日志

重新打 Admin 监控平台,点击 admin-order 服务查看日志,如下

 日志文件等级配置

Admin 中 SpringSecurity

pom 依赖
 <!-- security --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency>
SecuritySecureConfig
 
@Configuration(proxyBeanMethods = false)
public class SecuritySecureConfig extends WebSecurityConfigurerAdapter {private final String adminContextPath;public SecuritySecureConfig(AdminServerProperties adminServerProperties) {this.adminContextPath = adminServerProperties.getContextPath();}@Overrideprotected void configure(HttpSecurity http) throws Exception {SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();successHandler.setTargetUrlParameter( "redirectTo" );http.authorizeRequests().antMatchers( adminContextPath + "/assets/**" ).permitAll().antMatchers( adminContextPath + "/login" ).permitAll().anyRequest().authenticated().and().formLogin().loginPage( adminContextPath + "/login" ).successHandler( successHandler ).and().logout().logoutUrl( adminContextPath + "/logout" ).and().httpBasic().and().csrf().disable();}
}
yml 配置
spring:security:user:name: "admin"password: "admin"

从新启动 admin-server 服务

客户端注册 admin 服务需要配置 username 和 password 

spring:application:## 注册服务名name: spring-boot-admin-test## spring boot adminboot:admin:client:api-path:url: http://127.0.0.1:8082instance:prefer-ip: true # 使用ip注册进来username: adminpassword: admin

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/442547.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chrome浏览器如何某网址设置禁止http自动跳转https

场景&#xff1a;网址 http://www.xxx.com 粘贴到浏览器会自动跳转为 https://www.xxx.com&#xff0c;但是仅是想设置该网址禁止制动跳转https。 操作&#xff1a; 1、chrome浏览器输入网址&#xff1a;chrome://net-internals/#hsts 2、在“Delete domain security polici…

腾讯云0基础10秒搭建幻兽帕鲁游戏联机服务器

幻兽帕鲁&#xff08;Palworld&#xff09;是一款多人在线游戏&#xff0c;为了获得更好的游戏体验&#xff0c;需要搭建一个稳定、高效的游戏联机服务器。腾讯云提供了一种简单、快速的方法&#xff0c;让新手小白也能0基础10秒搭建幻兽帕鲁游戏联机服务器&#xff01; 本文将…

pdf怎么转成高清图?pdf在线转换器推荐分享

在日常的工作或者学习中&#xff0c;有时候会需要将编辑好的pdf转高清图片&#xff0c;这样更方便我们后续使用&#xff0c;那么怎么将pdf转图片&#xff08;https://www.yasuotu.com/pdftopic&#xff09;还能保持清晰呢&#xff1f;下面介绍一款pdf转换工具&#xff0c;支持p…

【EI会议征稿通知】第五届能源电力与自动化工程国际学术会议(ICEPAE 2024)

第五届能源电力与自动化工程国际学术会议&#xff08;ICEPAE 2024&#xff09; 2024 5th International Conference on Energy Power and Automation Engineering 第五届能源电力与自动化工程国际学术会议&#xff08;ICEPAE 2024&#xff09;将于2024年5月24日至26日在中国 …

PMP备考笔记:模拟考试知识点总结

1. 答题思路&#xff1a;优先看问题&#xff0c;可节省时间。 2. 考试就按照考试的套路来做&#xff0c;不要过多考虑。 开发团队只专注当前冲刺目标&#xff0c;产品负责人对PB排优先级。 收集需求工具-原型法&#xff1a;能够让用户提前体验&#xff0c;减少返工的风险。 …

Unity | 资源热更(YooAsset AB)

目录 一、AssetBundle 1. 插件AssetBundle Browser 打AB包 &#xff08;1&#xff09;Unity&#xff08;我用的版本是2020.3.8&#xff09;导入AssetBundle Browser &#xff08;2&#xff09;设置Prefab &#xff08;3&#xff09;AssetBundleBrowser面板 2. 代码打AB包…

分布式搜索引擎_学习笔记_1

分布式搜索引擎01 – elasticsearch基础 0.学习目标 1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 例如&#xff1a; …

Visual Studio无法调试Unity的可能原因和解决办法

问题描述&#xff1a; 在unity和vs都安装了相关插件的情况下&#xff0c;vs在启动了“附加到Unity”后却并没有进入调试模式。 可能的原因及解决办法&#xff1a; 1、Unity未设置成调试模式 将Unity编辑器的右下角这个debug标志设置成debug模式: 设置后变成了&#xff1a; 注…

mac英语学习工具:Eudic欧路词典v4.5.9增强激活版

Eudic欧路词典是一款功能强大的英语学习工具&#xff0c;其多语种支持、海量词库、强大的翻译功能、听力训练和生词本和笔记等特点&#xff0c;使得用户可以方便地进行英语学习和提高英语水平&#xff0c;适用于各种英语学习人员和文化交流人员等不同人群。 软件下载&#xff1…

字符串中的html标签解析

"bgghnhfvfgbghbgh<span>9996487878</span>jdkfjdklvqqqq/jdkfjdklvbgghnhfvfgbghbgh<span>9996487878</span>" 类似一个这样的字符串&#xff0c;i标签是通过正则把字符串jdkfjdklv和/jdkfjdklv替换而成的 &#xff0c; 想要把i标签的内容转…

电脑护眼模式怎么设置?4个有效方法保护眼睛!

“我感觉每天使用电脑的时间久了&#xff0c;眼睛总是不太舒服。电脑护眼模式怎么设置呢&#xff1f;有什么比较好用的方法可以推荐吗&#xff1f;” 如果长时间使用电脑&#xff0c;或许会让我们感到用眼疲劳。电脑护眼模式是现代人常用的电脑设置之一&#xff0c;它能有效地减…

力扣hot100 电话号码的字母组合 回溯

Problem: 17. 电话号码的字母组合 文章目录 思路复杂度&#x1f49d; Code 思路 &#x1f468;‍&#x1f3eb; 参考题解 复杂度 时间复杂度: O ( 3 8 ) O(3^8) O(38) 空间复杂度: O ( 3 8 ) O(3^8) O(38) &#x1f49d; Code class Solution {String[] map { "…