Spring Boot Admin实践详解

作者:李建明180 时间:2023-08-25 06:57:53 

在Spring Boot Actuator中提供很多像health、metrics等实时监控接口,可以方便我们随时跟踪服务的性能指标。Spring Boot默认是开放这些接口提供调用的,那么就问题来了,如果这些接口公开在外网中,很容易被不法分子所利用,这肯定不是我们想要的结果。在这里我们提供一种比较好的解决方案。

被监控的服务配置

为被保护的http请求添加请求前缀


management:
context-path: /example-context
eureka:
instance:
 status-page-url-path: ${management.context-path}/info
 health-check-url-path: ${management.context-path}/health

添加请求前缀

Spring Boot Admin在启动的时候会去eureka拉去服务信息,其中health与info需要特殊处理,这两者的地址是根据status-page-url-path和health-check-url-path的值。

zuul网关配置

zuul保护内部服务http接口


zuul:
ignoredPatterns: /*/example-context/**

这里之所以不是/example-context/**,由于网关存在项目前缀,需要往前一级,大家可以具体场景具体配置

Spring Boot Admin配置

配置监控的指标参数


spring:< 大专栏 Spring Boot Admin最佳实践/span>
application:
 name: monitor
boot:
 admin:
  discovery:
   converter:
    management-context-path: /example-context
  routes:
   endpoints: env,metrics,dump,jolokia,info,configprops,trace,logfile,refresh,flyway,liquibase,heapdump,loggers,auditevents,hystrix.stream
  turbine:
   clusters: default
   location: monitor

turbine:
aggregator:
 clusterConfig: default
appConfig: monitor-example #<2>
clusterNameExpression: metadata['cluster']

与应用配置的management.context-path相同

添加需要被监控的应用Service-Id,以逗号分隔

讲解一下,通过创建一个请求前缀,可以在网关处使用前缀的方式将其排除,也就是外网将无法访问这些监控API,同时,内网还是可以进行加前缀的方式进行访问,为Spring Boot Admin提供了支持条件。management还支持port和ip的方式,但这两种方式有局限性,如果在同一台机器上部署多个服务,就会存在端口占用或者其他问题。这种方案还有一个好处,以上配置一旦确定以后,所有服务都不需要进行特殊化处理,可以直接使用。

问答:

问题:Full authentication is required to access this resource

参考链接:https://github.com/joshiste/spring-boot-admin-samples

来源:https://www.cnblogs.com/lijianming180/p/12014196.html

标签:Spring,Boot,Admin
0
投稿

猜你喜欢

  • 模拟打印机排队打印效果

    2023-12-13 13:26:22
  • java 获取日期的几天前,几个月前和几年前的实例

    2023-05-20 15:29:53
  • SpringBoot参数校验的最佳实战教程

    2023-11-28 21:13:47
  • 5步学会使用VideoView播放视频

    2023-09-12 05:51:07
  • Java信号量Semaphore原理及代码实例

    2021-10-02 21:55:08
  • 创建execl导入工具类的步骤

    2022-03-11 11:41:09
  • ProtoStuff不支持BigDecimal序列化及反序列化详解

    2022-09-19 06:53:30
  • C#中的数据结构介绍

    2022-06-05 18:34:26
  • 线程阻塞唤醒工具 LockSupport使用详解

    2023-11-29 17:16:10
  • C#利用iTextSharp组件给PDF文档添加图片/文字水印

    2021-11-03 20:18:31
  • c#批量上传图片到服务器示例分享

    2022-09-12 10:16:24
  • Java中&和&&的区别简单介绍

    2023-02-23 12:12:23
  • Java NegativeArraySizeException异常解决方案

    2023-10-31 07:16:51
  • Android实现IM多人员组合的群组头像

    2023-05-24 06:39:54
  • Android Handler消息派发机制源码分析

    2023-12-18 17:32:55
  • Android启动相机拍照并返回图片

    2022-06-08 17:29:07
  • MyBatis中的properties配置(推荐)

    2023-06-04 20:47:58
  • Android使用PowerImageView实现播放强大的ImageView动画效果

    2022-06-16 19:55:54
  • Android Jetpack库剖析之LiveData组件篇

    2022-08-31 02:08:13
  • Java 高并发的三种实现案例详解

    2023-12-16 10:57:30
  • asp之家 软件编程 m.aspxhome.com