不想再为线上问题担惊受怕了?监控系统了解一下
作者:互联网
在互联网应用中,当出现线上问题的时候,由于应用涉及到的功能模块非常多,在排查和定位问题的时候非常艰难。这也就导致了在上线之后工程师们担惊受怕夜不能寐。其实要从根源上解决这类问题,最好的办法就是搭建一套完善的监控预警系统让工程师能实时的查看系统的运行状态。
搭建一套监控系统需要考虑的监控点根据系统的不同略有差异,但一般主要分为以下几个方面。
1.用户体检感的监测
发布之后我们要能监测到用户端的数据。比如访问速度怎么样,是否会出现超时等现象。针对用户的监控我们可以通过添加埋点的方式来进行监控,也可以通过定时任务收集程序的日志来进行处理。需要获取的信息一般分为如下几类:
<1>收集客户端针对服务的访问次数,访问成功的次数,响应时间等等,然后依据设备的类型、客户端的版本号、所属地理区域以及采用的网络类型对数据进行分类。通过这样多维度分类我们的监控系统能够全方位多角度的感知用户的体验。
<2>收集客户端的崩溃信息以及对应的dump文件,这些信息主要用来分析崩溃问题以及定位代码中的bug.
<3>用户设备的硬件状态,包括CPU的占用,内存的占用,显卡的问题等等,通过这些信息来判断设备硬件是否出现了故障。
<4>针对唯一用户指纹的监控,我们可以通过hash技术生成单个用户的指纹,通过指纹可以获得单一用户的具体运行状况。
2.网络监测
针对网络的监控主要用来判断网络是否会出现堵塞的现象,带宽是否够用。
网络的监控可以分为对内网的监控和外网的监控,针对外网的监控可以通过模拟请求的方式来进行监控,通过模拟请求获取对应的网络资源,然后查看网络响应速度和响应成功率。
对内网的监控主要是对机房内部服务器和路由器之间的数据进行监控。如果你能打造全局的设备地图,形成直观的路由拓扑,可以大幅提升监控效率。
3.业务监测
业务是否正常运转,是否会出现业务请求失败,或者响应速度慢的情况。针对关键业务还要设立关键指标,比如请求响应时间,业务并发数量等等,通过监测这些指标来确定业务是否正常。
由于不同的系统业务分类不同,调用流程也不同,所以每个系统应该根据自己系统的特点搭建对应的业务监控系统。
4.业务调用流程监测
针对单体应用我们只需要解决自身的监控就够了,但是在分布式系统以及微服务架构的系统中,我们还要监控服务之间的调用关系调用速度以及调用结果。这种监控过程也称作调用链监控。调用链监控需要考虑的信息包括:调用关系、响应速度、调用的成功率。监控的系统包括:业务服务、中间件、数据库、NoSql等等。
5.基础设备的监控
我们要对服务器、数据库等基础设施自身进行监控判断设备本身是否运行正常。
我们通常会收集 CPU、内存、I/O、磁盘、网络连接等作为监控指标。对于系统监控的指标,通常采用定期采样的方式进行采集,采样间隔一般选取 1 分钟、3 分钟或 5 分钟,一般不会超过 5 分钟,否则监控效果会因为间隔时间过长而大打折扣。在新版本上线的前一个小时之内,是基础设备监控的重要阶段,因为新版本出问题的概率比较大。
通过搭建上面一些列的监控系统,我们就可以全方位的对系统进行实时体检了,当出现问题的时候我们能够第一时间发现定位和解决问题。有了这样的监控系统,产品上线的时候工程师也就不用再担惊受怕了。
标签:调用,监控,系统,用户,业务,不想,担惊受怕,监测 来源: https://blog.csdn.net/yang1fei2/article/details/123168191