Spring Boot 应用监控常见方案梳理

[[380259]]

应用监控是我们在生产环境下一个非常重要的东西,运维人员不可能 24 小时盯着应用,应用挂了及时解决,这不现实。我们需要能够实时掌握应用的运行数据,以便提早发现问题,同时在应用挂掉的时候还能够自动报警,这样才能解放开发人员。

Spring Boot 中也提供了生产级的应用监控方案,对于单体应用、微服务应用都有相应的解决方案,今天松哥就想来和大家捋一捋 Spring Boot 中的应用监控方案都有哪些。

首先我们来捋一下应用监控都需要哪些东西?其实就两点:

  1. 信息采集器
  2. 数据可视化 UI

信息采集器会收集应用的健康、审计、指标、HTTP 请求等信息,并将之暴露出来,数据可视化 UI 则会通过仪表盘、图形等展示这些数据,并对数据进行分析、报警等处理。我们分别来看。

Spring Boot Actuator在 Spring Boot 项目中,我们使用的信息采集器主要就是 Spring Boot Actuator,这个模块由 Spring Boot 官方提供,它包含了许多生产级别的功能,例如健康检查、审计、指标收集、HTTP 请求追踪等,Spring Boot Actuator 将这些信息收集起来后,通过 HTTP 和 JMX 两种方式暴露给外部模块。例如 Spring Boot Actuator 通过 /health 端点(endpoints)提供了应用的健康信息,开发者只需要访问该端点就可以看到应用的健康信息,但是这些端点返回的数据是 JSON 格式的,不方便查看,也不方便分析,所以一般情况下,Spring Boot Actuator 都是和一些外部模块一起使用。

Spring Boot Actuator

支持的端点主要有如下一些:

如果是 Web 应用,则再次基础上还支持如下端点:

提到 Spring Boot Actuator,就还有一个东西需要和大家介绍,那就是 Micrometer,从 Spring Boot2.0 开始,Actuator 底层改为了 Micrometer。

当我们在一个 Spring Boot 项目中引入 Actuator 依赖之后,我们会发现它里边包含了 Micrometer:

这个依赖又是干什么的呢?

Micrometer 为 Java 平台上的性能数据收集提供了一个通用的 API,应用程序只需要使用 Micrometer 的通用 API 来收集性能指标即可,而 Micrometer 则会负责完成与不同监控系统的适配工作,类似于一个 Adapter,有了这个 Adapter,切换监控系统就变得非常容易。同时 Micrometer 还支持推送数据到多个不同的监控系统。

而 Spring Boot Actuator 使用 Micrometer 与外部应用监视系统进行集成,这样一来,开发者只需要稍微配置一下就可以使其和外部应用监视系统进行整合了。Micrometer 支持的监控系统有:

  • AppOptics
  • Atlas
  • Datadog
  • Dynatrace
  • Elastic
  • Ganglia
  • Graphite
  • Humio
  • Influx
  • JMX
  • KairosDB
  • New Relic
  • Prometheus
  • SignalFx
  • Simple (in-memory)
  • StatsD
  • Wavefront

信息采集器这块,老实说松哥见到的大部分项目都是用的 Spring Boot Actuator,似乎没有其他更好的选择。如果小伙伴们有用到其他方案,也可以留言讨论。

接下来我们来看看一些常用的应用监控可视化工具。

Spring Boot Admin

这个算是 Spring Boot 中最最正宗的应用监控可视化工具了,看名字就知道有多正宗,当我们创建一个 Spring Boot 项目时,选择依赖时候就有这个选项:

如果是单体应用很多人可能会选择 Spring Boot Admin 作为监控数据可视化工具,不过它也支持微服务应用的(可以通过 Eureka、Consul 等注册中心获取应用信息),只不过在微服务中,我们可能会更多的选择 Grafana+Prometheus 组合。

Spring Boot Admin 主要包含如下功能:

  • 显示应用健康信息。
  • 显示应用运行的详细信息,例如 JVM 和内存指标、数据源指标、缓存指标等等。
  • 显示应用的构建信息。
  • 查看 JVM 系统和环境属性
  • 查看 Spring Boot 配置属性
  • 支持 Spring Cloud 中的端点刷新功能 /refresh-endpoint
  • 方便的日志级别管理功能
  • 可以与 JMX-beans 进行交互
  • 查看 Thread dump
  • 查看 http 请求
  • 查看计划任务
  • 查看和删除活动会话
  • 查看 Flyway/Liquibase 数据库迁移
  • 下载 heapdump
  • 状态更改通知

可以看到,Spring Boot Admin 不仅仅是将 Actuator 接口中的数据进行可视化,还在此基础上提供了分析、报警等功能。

Spring Boot Admin 的显示界面如下:

Grafana+Prometheus

这个组合在微服务项目中比较常见,松哥之前录制的 Spring Cloud 视频里边也有讲到。

Prometheus 是一款开源的监控 + 时序数据库 + 报警软件,由SoundCloud 公司开发的,在 CNCF 基金会托管并已成功孵化,不过这个 Prometheus 的 UI 比较简单,用户体验不怎么好,现在都流行大屏监控页面,上面展示各种炫酷的图表。所以在实际应用中,Prometheus 一般都是结合 Grafana 一起来使用,Grafana 也是一个开源的跨平台度量分析和可视化 + 告警工具,它支持多种数据源,包括 Prometheus,Grafana 的 UI 就比较炫酷,如下:

当然,使用这套组合也离不开 Spring Boot Actuator。

小结

前面跟小伙伴们分享了 Spring Boot 应用监控的主流方案,没说具体用法,后面抽空松哥会和大家聊一聊具体用法。除了这些主流的方案之后,还有很多小众的方案,松哥也见到有极少数项目团队自研应用监控方案。不过对于大多数的项目而言,这些现成的成熟方案无疑是最佳选择。

好啦,今天就先和小伙伴们聊这么多,后面我们再来看具体用法~

本文转载自微信公众号「江南一点雨」,可以通过以下二维码关注。转载本文请联系江南一点雨公众号。

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/151616.html<

(0)
管理的头像管理
上一篇2025-03-13 15:16
下一篇 2025-03-13 15:18

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注