SpringBoot核心技术:Actuator自定义节点路径 & 监控服务自定义配置

既然Actuator给我们内置提供了节点映射,我们为什么还需要进行修改呢?

正因为如此我们才需要进行修改!!!

路径都是一样的,很容易就会暴露出去,导致信息泄露,发生一些无法估计的事情,如果我们可以自定义节点的映射路径或者自定义监控服务的管理信息,这样就不会轻易的暴露出去,Actuator已经为了们提供了对应的方法来解决这个问题,下面我们来看下吧。

本章目标

自定义Actuator节点映射路径、监控服务配置信息等,提高监控服务的安全性。

构建项目

最近这几篇有关Actuator的文章使用的源码都是同一个,源码已经上传了码云,点击下载源码汇总
,源码位置:SpringBoot2.x/hengboy-spring-boot-actuator,本章也使用之前创建的项目,下载后通过idea工具打开,在原来基础上进行修改。

自定义监控节点映射路径

之前章节讲到了Actuator为我们提供了org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties类,用于配置监控管理web端的信息,映射路径也在该配置类中,通过修改management.endpoints.web.path-mapping配置来修改指定的节点映射路径,如下所示:

1
2
3
4
5
6
7
8
# 管理节点配置
management:
endpoints:
web:
# 自定义路径映射
path-mapping:
# key=>value形式,原映射路径=>新映射路径
health: healthcheck

path-mapping参数值需要key->value形式接收,在WebEndpointProperties类内是以Map<String, String>类型定义的。

  • key:原监控节点映射路径,如:health
  • value,新的监控节点映射路径,如:healthcheck

修改后我们就可以通过访问/actuator/healthcheck访问监控的健康信息。

如果你修改了management.endpoints.web.base-path,那么前缀为你修改后得值,具体可以访问SpringBoot核心技术:探究Actuator的默认开放节点 & 详细健康状态#自定义节点访问前缀了解详情。

运行测试

启动本章项目,打开浏览器或者终端,如下为终端示例:

1
2
➜ ~ curl http://localhost:8080/healthcheck
{"status":"UP","details":{"diskSpace":{"status":"UP","details":{"total":250790436864,"free":75346001920,"threshold":10485760}}}}

通过访问/healthcheck可以查询到详细的信息。

自定义监控端口号

默认Actuator监控服务的端口号项目端口号一致,本章项目的端口号为8080所以我们通过http://localhost:8080前缀就可以访问到监控节点,那我们该怎么修改监控节点端口号呢?

ManagementServerProperties

Acutator内置了配置类org.springframework.boot.actuate.autoconfigure.web.server.ManagementServerProperties来进行自定义设置监控服务基本信息,该配置类内包含了端口号(port)服务地址(address)安全SSL(ssl)等。
我们通过修改management.server.port进行自定义监控端口号,如下所示:

1
2
3
4
5
# 管理节点配置
management:
# 修改监控服务端的端口号
server:
port: 8001

运行测试

修改完成后,重启本章项目,然后通过如下命令访问:

1
2
➜  ~ curl http://localhost:8001/healthcheck
{"status":"UP","details":{"diskSpace":{"status":"UP","details":{"total":250790436864,"free":75105476608,"threshold":10485760}}}}

通过8001端口已经可以访问到开放的监控节点,修改后再次访问同项目端口号的地址会出现404错误信息。

总结

本章介绍了自定义Actuator开放的监控节点映射路径,还简单介绍了通过修改management.server.port参数进行自定义监控服务管理端口号

源码位置

我在星球等你提问

如果你有技术相关的问题想要咨询恒宇少年,请去博客http://blog.yuqiyu.com首页左侧导航栏,点击`知识星球`微信扫码加入我的星球。

与恒宇少年面对面

如果你喜欢恒宇少年的相关文章,那么就去微信公众号(恒宇少年)关注我吧!!!
当然你也可以去 SpringCloud码云源码 项目底部扫描微信公众号二维码关注我,感谢阅读!!!

恒宇少年的干货系列

恒宇少年的开源框架

这段时间一直在编写开源的相关框架,致力于公司使用的框架升级以及开源计划,将公司使用到的工具以及插件进行升级重构并且开源。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×