写点什么

基于云的技术架构设计实践 - 第 2 篇

作者:hackstoic
  • 2021 年 12 月 03 日
  • 本文字数:1555 字

    阅读完需:约 5 分钟

业务监控

业务部署上去了,要想知道业务是不是正常,需要怎么做? 这时候监控就很重要。监控是业务的眼睛,如果没有监控,我们就会抓瞎。

一开始没有监控的时候,我们会遇到下面的场景👇:

  • 业务系统出问题,客户总是比我们先发现,或者是用户投诉了才发现

  • 业务系统出问题,没有足够的信息评估问题严重性

  • 业务系统出问题,找了半天问题,不知道从何定位,从而延长了故障时间

虽然监控不是万能的,但是完善的监控,可以帮助我们及时发现系统问题,协助我们快速定位,缩短故障时间。

如何做好监控呢, 我觉得可以分两个大的维度来做。

  • 一个维度是从业务的维度出发,是业务的监控, 包括但不限于业务的日志的监控,网站可用性监控,API 监控,前端页面监控

  • 一个维度是从底层资源出发,对底层资源做监控,包括但不限于 K8S 应用监控,容器监控,服务器监控,数据库监控等

底层资源的问题会传导到业务层,底层资源如果有问题,比如说数据库挂了,反映到业务层就是一堆的连接数据库的各种报错,API 不可用等等

另外一方面,底层资源没有问题,不代表业务不会出问题,比如代码有严重 bug,这时候也是导致业务出问题,业务日志要对这种情况有反馈。

业务监控

【业务日志监控】

前提是在写代码的时候要先能准确捕捉到报错,另外在报错的时候要能准确记录有效信息帮助定位,这点很重要(痛的领悟)。

日志的生命周期我分为三个阶段: 采集-处理-监控

首先是采集阶段,我们的日志会采集到阿里云的日志服务产品 SLS(关于阿里云日志服务的描述,可以阅读这里 日志服务[1])

其次是处理阶段,我们对日志进行切割,把对应的字段进行拆解,还有就是建立索引,这些操作,可以方便我们后期的日志检索和设置监控。

最后是监控阶段,在采集之前对日志进行分级,对重要的日志设置监控,有问题会打电话和发邮件。 另外我们每次 Code Review 也会检查下日志的报错情况。及时发现我们没有遇到的错误情况。 同时我们也会建立监控面板。

【API 监控】API 监控上我们目前主要监控核心 API 的接口响应的时间,很多时候业务出问题,API 接口的响应时间会有比较明显的变化。目前我们核心的几个接口响应时间基本都是在 100ms 以内。我们设定了超过一定的阀值,就会告警。 API 监控是阿里云 API 网关自带的功能。

具体的 API 网关监控配置可以参考 API 监控配置[2]

另外 API 的监控还有一些高级的玩法,比如链接跟踪监控.这块我们也还在探索之中.

【前端页面监控】主要是获取前端访问的情况,页面的报错信息,行为轨迹. 这个对前端的监控和排障很有用.

这里我们用到的是阿里云的 ARMS,具体的,请参考应用实时监控服务 ARMS[3]

【网站监控】主要是监控网站是否能够正常打开,网站的响应速度. 阿里云也有一个对应的产品功能,叫站点监控,大家可以自行搜索。

底层资源监控

【K8S 监控】主要监控了容器的异常事件,比如容器启动异常,调度异常等

特别的,在应用容器监控上, 我们针对容器添加 readiness 和 liveness 的探针,方便做容器的健康检测。

【数据库监控】数据库的监控重点监控的数据库同步延时,CPU 使用率等等,另外一个需要重点关注的是慢查询 SQL, 一般索引没加好,数据量一大,就会有一堆慢 SQL,很容易导致业务阻塞。

【服务器监控】常规的服务器告警,比如重启事件,内存使用率, CPU 使用率,磁盘使用率等,比较常规,告警阀值的设置,云监控都有对应的模板,一般用默认模板就够了,再设置下告警联系人就行了。 这里不做赘述。


<未完待续...>

参考资料

[1]

日志服务介绍: https://help.aliyun.com/document_detail/48869.html?spm=5176.55536.J_7614544130.1.2b126bf6EqgY9i

[2]

API 网关监控: https://help.aliyun.com/document_detail/193744.html?spm=5176.12818093.help.dexternal.5adc16d07j3XGc

[3]

什么是应用实时监控服务 ARMS?: https://help.aliyun.com/document_detail/42781.html?spm=5176.12818093.help.dexternal.5adc16d07j3XGc

发布于: 2 小时前阅读数: 9
用户头像

hackstoic

关注

还未添加个人签名 2017.11.24 加入

还未添加个人简介

评论

发布
暂无评论
基于云的技术架构设计实践-第2篇