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

极光推送徐军:大数据架构下的可视化智能运维监控

时间:2023-03-19 15:18:20 科技观察

大数据作为趋势,是任何企业都逃不掉的宿命。大数据架构与传统架构有很大不同。对于运维人员来说,大数据时代的运维应该从传统运维向业务运维转变。但是业务指标的监控也不同于机器的监控,业务监控和告警的方式也有很大的不同。企业运维人员该如何应对?在WOT2016互联网运营与开发者大会上,记者独家专访了极光推送Hadoop资深工程师徐军。让我们通过这篇文章了解他是如何基于业务运维的思维导向,构建极光Push大数据架构下的运维监控告警系统;在徐军眼中,业务运维的理念和实现方式与传统运维有哪些不同。嘉宾简介许军,高级Hadoop工程师,大数据平台负责人。极光Push首位大数据工程师,见证并负责整个极光Push大数据平台的演进,目前负责Hadoop平台、流计算系统、图数据库服务、Spark算法平台等基础数据平台。在Hadoop运维开发和大型分布式计算平台领域拥有丰富的经验。极光Push大数据平台是基于Hadoop集群实现的可视化智能运维监控系统。一开始,由于集群上没有部署业务和数据,Zabbix只是用来监控机器的基本指标。往往是第二天业务部门才收到业务部门的反馈集群有问题。随着业务程序越来越复杂,对指标的监控要求也越来越高。时至今日,单纯的指标监控已经不能满足要求,出现了越来越多的“平均值”、“最大值”、“求和”等灵活多样的需求。目前极光Push使用Grafana+Graphite+Statsd+Cabot这四个组件搭建了一个更通用、功能更丰富的监控系统。Graphite作为整个架构的核心,提供源数据接收、数据存储和数据展示的功能;statsd用于数据收集和数据聚合,以及部分数据负载均衡操作;Cabot作为整个系统的报警部分,接入极光Push自带的报警系统;Grafana是监控系统UI层的解决方案。在问题监控告警和风险预估日志采集方面,极光推送主要使用Flume。徐军提到,Flume除了收集原始日志到ES之外,还可以将一些非原始文件的日志连接到Kafka数据中心。另外,通过与Elasticsearch的配合,Flume可以很方便的将数据拉取到想要的目的地,而无需像使用ES那样做一些具体的分析和挖掘,非常方便发现问题。至于如何进一步挖掘这些日志数据的价值,徐军表示,他们希望通过对业务指标的监控,及时发现问题、处理问题,甚至预见风险,这也是监控报警的目的。要实现这项工作,需要更详细地获取或提供这些业务指标,并将其接入监控系统,通过一些基础功能,让业务方更直观、更方便地掌握其各方面的具体情况。商业。这样就可以有针对性的进行一些优化和改进,比如适时扩容,负载均衡等。以Redis内存为例。传统运维可能更关注Redis使用的内存是否达到了预设值,但是通过当前的系统,业务方可以很容易的观察到整个历史时期Redis实际占用内存的增长率和占比.这样,系统可以在达到设定的预置值之前发出预警,提前进行扩容工作,而不是等到问题发生的时候,为业务发展提供有力的支持。谈及极光Push大数据架构运维的优化方向,结合业务发展需求,徐军分享,需要将大数据各组件的通用监控告警系统进行整合,实现与调度相结合等系统,并从监测、预警阶段演化为回复、预警。通用的监控报警系统就像是Java的JVM。它允许业务方基于一些通用的标准或协议编写和定制数据,然后直接与监控系统对接,减少运维各组件的重复劳动。业务运维是传统运维的有效补充。在采访***中,徐军再次强调,大数据业务的监控与传统机器、集群监控的一个显着区别在于运维的关注度更高。点比较高级,强调在问题出现之前,我们应该根据一些变化趋势来发现问题。从某种意义上说,也是对传统运维的有效补充。建议大家选择一些通用的、通用的运维监控方案,比如一些运维人员非常熟悉的基于Python语言的方案。因为Python生态非常发达,一方面我们可以以极低的成本维护和定制我们需要的组件,另一方面我们也可以很容易的找到对应的组件来满足我们的需求。