当前位置: 首页 > 科技观察

手机微博运维监控系统实战

时间:2023-03-15 20:08:22 科技观察

业务是迎接公司资本发展的生力军,它的脚步永远不应停止。与直接参与架构的设计开发人员相比,技术支持人员是一群默默无闻的幕后英雄。完美的架构是不存在的,需要技术支持人员不断发现和解决问题,规避架构风险,完善业务和开发所需的基础设施,为业务架构的稳定运行提供强有力的支持,为业务线提供支持专业架构设计开发人员做后勤保障。现在,各种技术会议层出不穷,技术人员有了更多的渠道学习前沿技术和设计思想。但是学到的点子真的适合公司的业务吗?要解决业务结构的其他缺陷,是否必须推翻重做?作为技术支持人员,如何在不重建系统的情况下降低系统的故障率?,让它运行得更好?王春生秒拍网架构师/原新浪系统架构师,高照主办的“CTO训练营”活动研发技术支持部总监,原手机微博技术支持系统负责人,现秒拍网架构师分享并与现场同学就上述问题进行了探讨。这位拥有十多年系统设计和技术架构经验的老手认为,在大多数情况下,我们目前在线上运行的架构是最适合公司业务线的架构。面对现实中的一些问题,我们根本不需要去推翻现有的系统,而是去寻找一些能够实时检测或者监控线上问题的方法和解决方案;同时,我们可以通过相应的技术指标来预测和避免可能出现的问题。出现的风险。手机微博结构分析2014年,手机微博业务成倍增长,促使手机微博结构发生重大变革。主要方法是将PHP的Scribe,包括自己定义的PHP模板引擎,替换成鸟哥写的Yaff;将许多PHP操作转换为PHP模块,等等。王春生首先对手机微博架构做了简单的分析。微服务包括开放平台的核心池和非核心池,用于隔离不同的服务。用户可以通过手机客户端直接访问CDN获取图片,直接访问“图床”服务上传图片;MAPI将请求微服务。王春生坦言,整个架构在平台体系和业务体系上与很多互联网应用的架构非常相似。无非就是接入层、业务层、数据层。当然,也可能有多个接入层和多个数据层。层和多个业务层。那么这么简单的结构,它的问题可能出在哪里呢?上图是王春生整理的手机微博最常遇到的问题,并将这些问题从业务与体验、架构与技术支持三个层面进行了划分。挑出来。从分析的角度来看,这些架构遇到的问题基本都是一样的。主要包括容量和容错方面的一些问题;一些不合理的结构;监控告警不够及时,响应和解决问题的速度不够快;技术债和技术风险等。要挖掘出这些技术债和技术风险,包括一些影响架构的外部因素,首先要解决的问题就是监控。因为无法衡量问题,所以无法讨论管理和优化。实际监控系统技术选择:Zabbix手机微博监控选择Zabbix。王春生表示,其实目前主流的任何一款开源监控产品,如Nagios、Zabbix、Ganglia、Bosun等几乎都可以满足监控需求。监控系统的选型不需要你花太多心思,真正花时间和精力的是监控项的设计,因为监控项的设计是整个系统中最重要的环节。监测工作。话虽如此,王春生指出了很多公司运维工程师陷入的一个误区。虽然他们同时采用了多套不同的监控系统,甚至自己编写了一些shell脚本,但一些常见的网络问题并没有及时报警。于是,新的监控项目不断堆积。但是,往往很难定位到问题的具体细节。监控项设计:最小粒度原则因此,手机微博在设计监控项时首先考虑的是采用最小粒度原则,任何与单机相关的监控项都会位于单机上。在数千台机器中,只要其中一台机器出现问题,就能快速定位出问题的机器。这台机器在哪个IDC,影响什么样的用户群,也能很快知道。但是,在监控中经常遇到的问题之一就是收到的告警太多。当某个区域或某个功能特性的系统出现问题时,往往会一下子收到几十条或上百条报警短信。所以在总结的时候会考虑一些收敛函数的设计。此外,在设计监控项时,还必须考虑其覆盖的广度和深度,因此手机微博监控系统有一个简单的分层:操作系统层、服务器层(服务软件层)、业务层。所有的操作系??统日志和业务日志都发送到Rsyslog,并通过Rsyslog进行转发,比如转发到HDFS、Elasticsearch。这基本上是目前互联网公司的普遍做法。值得一提的是,手机微博的整体监控使用了Rsyslog,它根据日志进行实时计算。ELK/ERK:定位复杂问题虽然监控系统可以帮助我们快速发现问题,但是如果只靠监控,还是没办法深入挖掘问题出在哪里。通过监控,我们只能得到一些计算值,所以它得到的结果很一般。当故障发生时,尤其是在复杂的行为中,我们很难快速定位到问题的真正位置。此外,还需要提前挖掘监控项之间的关系。比如Feed接口所依赖的十几个微服务的接口,需要花费大量的时间和精力去定义。而且,一旦业务发生变化,监控系统也要相应调整,比较麻烦。因此,微博采用了ELK和ERK系统,并做了一些优化,比如将Logstash替换为Rsyslog。大量记录的日志需要进行格式化和分析,以便开发工程师和架构师更好地优化系统。通过ELK系统可以做成这样的饼图,直观定位监控系统告警的问题,找出哪一行代码性能最差,影响全局。综合来看,手机微博技术支持系统监控系统的作用主要是能够以最快的速度快速发现和定位问题。通过ELK和ERK套件,更精准的定位问题,发现一些更复杂的问题。ELK和ERK套件的优点是日志是实时的,存在感强,支持的日志类型非常丰富。几乎在问题发生的同时,我们就可以知道在线系统的哪个环节出了问题,发生了什么问题。此外,它还提供了大量的关联分析。但其缺点是日志的存储需要一定的成本,效率不高,历史追溯能力不强。保障业务前进的后勤力量当然,技术支撑体系不仅限于监控。总的来说,技术支持就是给冲锋在前的业务架构师和开发工程师提供相应的支持和更好的素材,从而保证整体业务的快速推进。我们的业务需要向前发展。除了开发工程师和架构师,设计和代码编写之后的一切都需要专门的技术支持团队为大家提供服务和支持。一方面,技术支持为业务线提供支持,帮助架构设计和代码实现快速部署,让产品尽快上线。此外,一些技术债务可以通过一些基础的监控数据分析和一些基础设施的开发来偿还。讲师简介王春生秒拍架构师秒拍网架构师,曾任新浪系统架构师、研发技术支持部总监,拥有10余年系统设计和技术架构经验,尤其擅长高性能、高并发、大数据业务架构设计。具有丰富的技术团队管理经验。多项基于Rsyslog的技术著作已经被Rsyslog正式引入并使用。《Puppet 3实战手册》、《NoSQL权威指南》的个人翻译。更多训练营内容,请登录http://x.51cto.com/act/