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

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

相关文章
|
24天前
|
监控 网络协议 Go
应用监控 eBPF 版:实现 Golang 微服务的无侵入应用监控
应用监控 eBPF 版:实现 Golang 微服务的无侵入应用监控
109459 118
|
1月前
|
Java Nacos Maven
从零搭建微服务架构:Spring Boot与Nacos完美整合
从零搭建微服务架构:Spring Boot与Nacos完美整合
81 0
|
2月前
|
JSON Dubbo Java
微服务框架(二十)Dubbo Spring Boot 生产就绪特性
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Dubbo Spring Boot 生产就绪特性
|
2月前
|
Dubbo Java 应用服务中间件
微服务框架(十六)Spring Boot及Dubbo zipkin 链路追踪组件埋点
此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。 本文第一部分为调用链、OpenTracing、Zipkin和Jeager的简述;第二部分为Spring Boot及Dubbo zipkin 链路追踪组件埋点
|
2月前
|
Dubbo Java 应用服务中间件
微服务框架(十四)Spring Boot @ControllerAdvice异常处理
此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Spring Boot使用@ControllerAdvice进行自定义异常捕捉
|
2月前
|
JSON Java 数据格式
微服务框架(十三)Spring Boot Logstash日志采集
  本文为Spring Boot中Log4j2对接Logstash,进行日志采集。Logstah只支持log4j,使用log4j2时需要通过TCP插件调用 此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。
|
2月前
|
Dubbo Java 应用服务中间件
微服务框架(九)Spring Boot 通用Dubbo Parent POM
此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为通用Dubbo Maven POM的集成,只需集成Parent POM即可使用
|
2月前
|
缓存 NoSQL Java
微服务框架(十二)Spring Boot Redis 缓存
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现。 本文为Spring Boot集成Redis。 在这篇文章中,我们将配置一个Spring Boot应用程序示例,并将其与Redis Cache 集成。虽然Redis是一个开源是一个开源内存数据结构存储,用作数据库,缓存和消息代理,但本文仅演示缓存集成。
|
9天前
|
开发框架 移动开发 JavaScript
SpringCloud微服务实战——搭建企业级开发框架(四十六):【移动开发】整合uni-app搭建移动端快速开发框架-环境搭建
正如优秀的软件设计一样,uni-app把一些移动端常用的功能做成了独立的服务或者插件,我们在使用的时候只需要选择使用即可。但是在使用这些服务或者插件时一定要区分其提供的各种服务和插件的使用场景,例如其提供的【uni-starter快速开发项目模版】几乎集成了移动端所需的所有基础功能,使用非常方便,但是其许可协议只允许对接其uniCloud的JS开发服务端,不允许对接自己的php、java等其他后台系统。
124 2
|
10天前
|
XML Java 数据格式
springboot 微服务项目如何集成 html 页面
springboot 微服务项目如何集成 html 页面
18 0

相关产品

  • 微服务引擎
  • 服务网格