对微服务监控系统分层和监控架构的理解

对微服务监控系统分层和监控架构的理解

目录

1. 简介

监控的重要性不言而喻, 微服务架构的特点决定了其监控实现更具有挑战性与难度,从以下方面理解微服务的监控相关(非特别指明的监控都是指的微服务架构体系下的监控): 
1. 简介 
2. 为什么需要监控体系 
3. 与单体应用有什么区别 
4. 要监控什么 
5. 监控体系和分层 
6. 监控架构和主流技术栈

2. 为什么需要监控体系

以问题的形式来理解为什么需要监控体系,也是我们需要监控体系的理由

  • 分散在各个服务器上的日志如何处理
  • 业务流程出现问题,如何快速的定位问题发生在哪个环节、哪个点
  • 如何跟踪业务流的处理顺序和处理结果
  • 如何实现事故的预警,如资源不足
  • 如何分析系统的性能瓶颈

3. 与单体应用有什么区别

  • 单体应用环境下,所有的业务都在同一个服务器上,如果出现错误和异常,只需要聚焦于服务器这一点,往往就可以快速定位和解决问题

  • 微服务架构下,大部分功能模块都是单独部署、独立运行的,彼此通过接口交互,都是无状态的服务,业务流会涉及多个服务,复杂度会高很多

4. 要监控什么

  • 服务概览信息:如服务名称、服务部署所在机房、主机、服务包含的API、服务相关配置信息、服务负责人、开发人员、运维人员信息等
  • 服务性能指标:如响应实现、流量、成功、失败数、请求频率等
  • 服务拓扑关系:服务之间的调用关系
  • 服务调用链:服务的整个调用链监控
  • 服务版本信息:服务版本,客户端版本等
  • 服务治理状态:服务注册情况、服务状态、熔断等
  • 组件内部状态:活跃线程数、处理请求数等

5. 监控体系和分层

从底到上分为:基础设施监控、系统层监控、应用层监控、业务层监控、端用户体验监控

监控体系

6. 监控架构和主流技术栈

暂时没有具体的实践和使用,先做理解

监控架构

架构理解

  • 对主机的监控包括基础设施层监控、系统层监控
  • 对微服务监控包括应用层监控、业务监控,以及部分端用户体验监控
  • 端用户体验监控需要埋点方式搜集信息补充完善

技术栈理解

  • kafka:基于发布订阅模式的分布式消息队列,将信息的搜集与处理解耦
  • sensu:由 Sonian 公司开发的一种监控框架,主要用于拥有大规模节点的云计算平台的检查与监控。可与时序数据库以及Grafana结合实现基础设施、系统监控从数据收集到图形化展示
  • ELK(Elasticsearch + Kibana + Logstash) 
    • ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
    • Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在
    • Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据、转换数据,然后将数据发送到您最喜欢的 “存储库” 中。 
      Elasticsearch索引里的数据,使用各种不同的图表、表格、地图等kibana能够很轻易地展示高级数据分析与可视化。
  • InfluxDB:是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及执行分析。
  • Grafana:是用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。dashboard中显示了你不同metric数据源中的数据。一般与时序数据库(InfluxDB)结合使用

猜你喜欢

转载自blog.csdn.net/zhangbijun1230/article/details/84565931