这段时间负责公司一个软件系统的巡检工作,从最开始的小看,到后来被各种概念、图表趋势搞懵,再到现在懂得一些做巡检工作的门道,了解它的价值所在。
最近越发感受到做阶段总结的重要性,所以就把这阶段的工作经验做了以下总结。
巡检的本质
对于运维工作中的巡检,最准确的英文表达是 proactive monitoring
。看到这个单词你也知道了,巡检就是一种积极主动的监控,而我们平常那种部署监控系统然后设置告警的方式,叫做响应式的监控(reactive monitoring
)。
所以,巡检的本质就是主动式的监控。至于这个主动,我目前的理解就是要人肉参与了。
巡检/监控的层次
根据巡检的对象,可以把巡检分为四个层次:
系统巡检
,或者称为基础设施巡检。主要是对服务所在的物理主机或者虚拟机的状态检查。平台巡检
,或者称为基础服务/中间件巡检。主要是对业务相关的应用所依赖的底层服务进行巡检,比如数据库、消息队列、注册中心。应用巡检
。应用巡检其实可以和上面的平台巡检合并为 服务/应用巡检。只是这里的应用主要针对那些跟业务相关的。业务巡检
。业务巡检的对象应该是支撑系统运行的那些关键流程。下面细讲。
巡检的目的
对于系统巡检来说,巡检的目的在于发现系统潜在的 缺陷 和 优化点(如资源使用不饱和),并根据这些信息在下次软件的开发、测试和部署环节进行优化调整。
比如通过检查 内存使用率
发现某个服务存在内存泄露的问题,就可以反馈给开发人员去排查和解决。
比如对于云上的服务器,有些区域的服务器的资源使用率低,或者长期空载,下次部署时就可以做相应的调整。
而对于业务巡检来说,巡检的目的则在于判断业务相关的工作流是否符合预期运行。
正式巡检工作前的准备
熟悉和掌握现有的监控资源
开发人员常提到一句话,“不要重复造轮子”,这句话在做监控时同样适用。
很多情况下,当