基于spring boot框架的云上微服务整体监控方案

简介: 从各个层面介绍了阿里云上监控基于spring boot框架的微服务的产品和服务。这是一种快速有效的搭建整体监控体系的方案。对于中小企业,可以快速搭建起一套完整的体系以对服务运行环境从基础设施到应用性能进行运行态掌控、数据分析、监控报警、故障定位。

背景

spring boot是一个轻量级的java开发框架,其不仅提供了开箱即用的默认设置,简化了应用开发,还提供了一些大型项目中常见的非功能性特性,如内嵌服务器、安全、指标、健康检测、外部化配置等。而在云上,阿里云有云监控、应用实时监控、日志服务等。在这样的背景下,我们构建基于spring boot框架的云上微服务全面监控方案相对方便很多。

主机监控

对于云主机ECS,在购买后,就会默认提供ECS自带的默认基础监控。不过,ECS基础监控指标只有CPU使用率、网络流量和速率以及磁盘读写次数和字节数,缺少了常用的一些监控项目和指标,比如内存使用情况和磁盘空间占用情况。所以不能满足日常的主机监控需求。
image

云监控提供了云上几乎所有产品的默认监控服务。 对于云主机ECS,只要安装好云监控插件,就会从操作系统内部获取主机运行时的各种数据,并提供图表查看和报警功能。对于云主机,云监控提供了CPU、内存、系统平均负载、磁盘、网络、进程的详细监控指标和数据,几乎涵盖了主机监控需求的各个方面。同时,云监控插件的采集频率为15秒一次,可完全满足监控报警实时性的要求。

服务存活监控

对于自研服务存活状态的监控,一直是比较麻烦的事情。一般通过调用服务的某个接口然后判断返回值来确认服务是否存活。而基于spring boot框架的应用服务,就相对方便多了。
spring boot admin,简写sba,是用于管理和监控Spring Boot应用的开源项目。 应用可以通过sba client注册或者使用Spring Cloud(如Eureka、Consul)发现。sba在Spring Boot Actuator基础上提供了简洁的可视化WEB UI。
我们使用eureka发现的方式对基于spring boot的服务存活状态进行监控非常方便。服务本身不需要进行任何变更和配置(前提是已经正确使用了相关依赖,比如actuator等),spring boot admin即可直接发现并采集相关应用指标。作为管理和监控Spring Boot应用的开源项目,sba当然不仅仅是监控服务存活状态,它可以查看自动配置的使用情况、查看配置属性、查看bean及其关系列表、打印线程栈、查看所有环境变量、查看具体变量值、查看应用信息、查看所有url映射、查看基本追踪信息,甚至还可以在线修改运行参数并调试、重启和关闭应用程序。就算仅仅是监控服务存活状态,spring boot暴露的应用健康接口指标也非常全面,spring boot admin也提供了详细的信息和直观的展示。其不仅仅是应用健康监控接口本身的状态,而且包含了服务依赖项的可访问状态。
image

日志监控

传统的日志监控也是非常棘手的事情。著名的ELK,集数据收集、存储、搜索、展示与一体,功能强大,但其部署、运维均较复杂,要在生产环境大规模的使用,并不是看上去那么简单。当然,现在也有很多专门提供日志数据处理类的厂商产品,比如日志易、splunk等。不过,在阿里云上,我们有一种更简单的方式来收集存储处理日志数据。
日志服务(Log Service)是阿里云提供的针对海量日志收集、存储、查询的平台化服务。日志服务可以用来集中收集服务集群中所有的日志,并支持实时消费,实时查询和投递到OSS、MaxCompute等其他云产品做进一步分析。而如果要对日志进行监控,使用日志服务当然是首选方案。在已经配置好日志服务将日志收集到日志服务后,我们就可以用日志查询功能检查日志情况。阿里云的日志服务在首次查询后即可按需创建报警。报警规则将在云监控自动建立,后续即可自动查询分析统计日志情况,并按照规则进行监控报警。日志服务也提供了强大的api支持,在服务标准化程度较高,报警规则也相对统一的情况下,可编写程序调用api接口,快速创建日志监控报警规则。
image

应用性能监控

微服务架构下服务调用关系复杂,比如一个请求会涉及多个服务,而服务本身可能也会依赖其他服务,整个请求路径会构成了一个网状的调用链,而在整个调用链中一旦某个节点发生异常,整个调用链的稳定性就会受到影响。我们必须理解和掌握系统行为,对应用程序的性能进行监测,必要时要能快速诊断确认瓶颈所在,才能保证服务应用程序良好稳定的运行。
应用性能管理和监控已经不是一个新概念了。相关的成熟产品也较多,国内商业产品有听云、博睿、OneAPM等,开源产品有SkyWalking、Cat、Pinpoint、Zipkin等。阿里云上的相关产品名为应用实时监控服务ARMS。ARMS主要包括应用监控和前端监控两部分。应用监控又叫应用性能管理,主要提供分布式应用调用链、本地调用堆栈、数据库慢SQL检测、异常捕获、各类中间件接口调用监控等功能。
使用应用性能监控需要安装探针,安装好探针后即可通过web页面查看、分析系统行为和运行情况。
image
image
image

总结

以上,从各个层面介绍了阿里云上监控基于spring boot框架的微服务的产品和服务。这是一种快速有效的搭建整体监控体系的方案。对于中小企业,可以快速搭建起一套完整的体系以对服务运行环境从基础设施到应用性能进行运行态掌控、数据分析、监控报警、故障定位。当然,这不是一个完美的方案,其中还有很多监控项可能没有涉及,有些没法做到,需要我们根据实际情况进行二次开发或者使用其他产品进行补充完善。

相关实践学习
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
本场景将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
4月前
|
安全 Java Ruby
我尝试了所有后端框架 — — 这就是为什么只有 Spring Boot 幸存下来
作者回顾后端开发历程,指出多数框架在生产环境中难堪重负。相比之下,Spring Boot凭借内置安全、稳定扩展、完善生态和企业级支持,成为构建高可用系统的首选,真正经受住了时间与规模的考验。
379 2
|
3月前
|
安全 前端开发 Java
《深入理解Spring》:现代Java开发的核心框架
Spring自2003年诞生以来,已成为Java企业级开发的基石,凭借IoC、AOP、声明式编程等核心特性,极大简化了开发复杂度。本系列将深入解析Spring框架核心原理及Spring Boot、Cloud、Security等生态组件,助力开发者构建高效、可扩展的应用体系。(238字)
|
5月前
|
XML JSON Java
Spring框架中常见注解的使用规则与最佳实践
本文介绍了Spring框架中常见注解的使用规则与最佳实践,重点对比了URL参数与表单参数的区别,并详细说明了@RequestParam、@PathVariable、@RequestBody等注解的应用场景。同时通过表格和案例分析,帮助开发者正确选择参数绑定方式,避免常见误区,提升代码的可读性与安全性。
|
3月前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
193 8
|
4月前
|
Prometheus 监控 Java
日志收集和Spring 微服务监控的最佳实践
在微服务架构中,日志记录与监控对系统稳定性、问题排查和性能优化至关重要。本文介绍了在 Spring 微服务中实现高效日志记录与监控的最佳实践,涵盖日志级别选择、结构化日志、集中记录、服务ID跟踪、上下文信息添加、日志轮转,以及使用 Spring Boot Actuator、Micrometer、Prometheus、Grafana、ELK 堆栈等工具进行监控与可视化。通过这些方法,可提升系统的可观测性与运维效率。
499 1
日志收集和Spring 微服务监控的最佳实践
|
4月前
|
监控 Kubernetes Cloud Native
Spring Batch 批处理框架技术详解与实践指南
本文档全面介绍 Spring Batch 批处理框架的核心架构、关键组件和实际应用场景。作为 Spring 生态系统中专门处理大规模数据批处理的框架,Spring Batch 为企业级批处理作业提供了可靠的解决方案。本文将深入探讨其作业流程、组件模型、错误处理机制、性能优化策略以及与现代云原生环境的集成方式,帮助开发者构建高效、稳定的批处理系统。
553 1
|
6月前
|
安全 Java 微服务
Java 最新技术和框架实操:涵盖 JDK 21 新特性与 Spring Security 6.x 安全框架搭建
本文系统整理了Java最新技术与主流框架实操内容,涵盖Java 17+新特性(如模式匹配、文本块、记录类)、Spring Boot 3微服务开发、响应式编程(WebFlux)、容器化部署(Docker+K8s)、测试与CI/CD实践,附完整代码示例和学习资源推荐,助你构建现代Java全栈开发能力。
754 0
|
5月前
|
Cloud Native Java API
Java Spring框架技术栈选和最新版本及发展史详解(截至2025年8月)-优雅草卓伊凡
Java Spring框架技术栈选和最新版本及发展史详解(截至2025年8月)-优雅草卓伊凡
1174 0
|
Java Spring
spring框架之AOP模块(面向切面),附带通知类型---超详细介绍
spring框架之AOP模块(面向切面),附带通知类型---超详细介绍
322 0
|
缓存 监控 Java
Spring框架之AOP(面向切面编程)
Spring框架之AOP(面向切面编程)
196 0