小麦带你学架构八

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 架构学习

微服务分层监控

分层监控

  • 基础设施监控

    一般是由运维人员进行负责,涉及到的方面比较接近硬件体系,例如网络,交换机,路由器等低层设备,这些设备的可靠性稳定性就直接影响到上层服务应用的稳定性,所以需要对网络的流量,丢包情况,错包情况,连接数等等这些基础设施的核心指标进行监控。

  • 系统层监控

    涵盖了物理机,虚拟机,操作系统这些都是属于系统级别监控的方面,对几个核心指标监控,如cpu使用率,内存占用率,磁盘IO和网络带宽情况。

  • 应用层监控

    涉及到方面就跟服务紧密相关,例如对url访问的性能,访问的调用数,访问的延迟,还有对服务提供性能进行监控,服务的错误率,对sql也需要进行监控,查看是否有慢sql,对与cache来说,需要监控缓存的命中率和性能,每个服务的响应时间和qps等等。

  • 业务监控

    比方说一个典型的交易网站,需要关注它的用户登录情况,注册情况,下单情况,支付情况,这些直接影响到实际触发的业务交易情况,这个监控可以提供给运营和公司高管他们需需要关注的数据,直接可能对公司战略产生影响。

  • 端用户体验监控

    一个应用程序可能通过app,h5,pc端的方式交付到用户的手上,用户通过浏览器,客户端打开练到到我们的服务,那么在用户端用户的体验是怎么样,用户端的性能是怎么样,有没有产生错误,这些信息也是需要进行监控并记录下来,如果没有监控,有可能用户的因为某些原因出错或者性能问题造成体验非常的差,而我们并没有感知,这里面包括了,监控用户端的使用性能,返回码,在哪些城市地区他们的使用情况是怎么样,还有运营商的情况,包括电信,联通用户的连接情况。我们需要进一步去知道是否有哪些渠道哪些用户接入的时候存在着问题,包括我们还需要知道客户端使用的操作系统浏览器的版本。

监控点

可以通过以下几点进行监控:

  • 日志监控
  • Metrics监控
  • 调用链监控
  • 报警系统
  • 健康检查

典型主流的监控架构

在微服务运行的体系下,我们一般把监控的agent分散到各个服务身边,agent分别是收集机器和服务的metrics,发送到后台监控系统,一般来说,我们的服务量非常大,在收集的过程中,会加入队列,一般来说用kafka,用消息队列有个好处就是两边可以进行解耦,还好就是可以起到庞大的日志进行一个缓存的地带,并在mq可以做到高可用,保证消息不会丢失。

日志收集目前比较流行的是ELK的一套解决方案,(Elasticsearch,Logstash,Kibana),Elasticsearch 分布式搜索引擎,Logstash 是一个日志收集的agent,Kibana 是一个查询的日志界面。

metrice会采用一个时间序列的数据库,influxDB是最近比较主流时间数据库。

微服务的agent例如springboot也提供了健康检查的端点,可以检查cpu使用情况,内存使用情况,jvm使用情况,这些需要一个健康检查机制,能够定期对服务的健康和机器的健康进行check,比较常见的是nagios,zabbix等,这些开源平台能够定期去检查到各个微服务的检查程序并能够进行告警给相关人员,在服务未奔溃之前就可以进行提前的预先接入。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
调度
【SCI】综合能源系统中热电联产、电制气和碳捕集系统的建模与优化(Matlab代码实现)
【SCI】综合能源系统中热电联产、电制气和碳捕集系统的建模与优化(Matlab代码实现)
103 1
|
Unix 数据处理 区块链
量化对冲搬砖套利开发详情丨量化对冲搬砖套利系统开发(成熟及案例)丨量化对冲搬砖套利源码功能
  App是一个互联网应用程序。与传统App最大的区别在于DApp运行在去中心化的网络上,即区块链网络。网络中没有可以完全控制DApp的中心化节点。而App,众所周知,是中心化的。需要请求服务器来获取数据、处理数据等。
|
域名解析 运维 自然语言处理
|
存储 移动开发 运维
|
缓存 运维 监控
|
消息中间件 设计模式 自然语言处理
|
存储 运维 资源调度
|
SQL 前端开发 语音技术
|
前端开发 应用服务中间件