谈谈系统监控应该怎么做

  • 2019 年 10 月 4 日
  • 筆記

什么样的系统才算成功的呢?很显然,能让系统关联方满意的系统才算是成功的,想要做好这点,必须做好监控。监控是系统的眼睛,它能让我们及时发现问题,不至于被动地等着用户来反馈,但是监控不能过多过杂。否则,当真的发生异常时反而会使重要的信息石沉大海,不管是在告警列表里还是在系统日记中。

一个系统关联方可能有外部用户、运营人员、研发、运维、客服等等,想让他们能满意,我们可以以总分总的思想方针尽量做到下面几点,总分总的意思就是将目标分成子目标,每个子目标的实现方法、验证方法可能是有交集的。刚刚说的关键点如下,保证外部用户随时可以看到非错误页面、操作总是可用的,保证运营人员关心的数据是无安全问题的、流转是实时的、计算是准确的,保证运维关心的应用服务、数据库是正常的,保证客服反馈给产品或者运营的问题能够准确及时得到响应。

我们有很多方法能验证自己的系统能否让系统关联方都满意。其一,可以通过可用率监控验证我们是否能提供一个高可用的平台,这个可用率监控针对点可以是概括性的,也可以针对某个URL页面访问进行监控,还可以针对重要流程节点都进行监控。不过随着微服务架构的盛行,一个完整流程功能可能分别部署到不同的节点上,那我们就需要有一个大屏监控,保证能及时发现节点问题。其二,可以通过调用次数(成交量)监控验证功能是否总是可用的,验证依赖上游出现问题时托底方案是否生效。其三,前面有说到数据要具备安全性、实时性、准确性,那我们可以实现具备审批流、对账、补账的系统,通过检查正确度、准确度验证这些功能是否生效。当然,性能监控也是不可或缺的。

不过我不得不泼冷水,想要实现让关联方都满意的系统很难,但是我们可以使用归纳法查漏补缺慢慢实现这个远大的目标,当出现问题时,同问题反馈方积极沟通,了解清楚复现步骤,然后进行工单分析处理,最后再做问题复盘。