在现代计算环境中,信息系统和应用程序变得越来越复杂和多样化,从单一服务器到分布式系统、云计算、微服务架构,系统规模和复杂度的增加使得监控和管理这些系统变得更加具有挑战性。
日志是系统运行的详细记录,例如操作系统主机日志(Linux、VVindows、MacOS等)、网络设备日志(防火墙、交换机、路由器等)、安全设备日志(IPS、IDS等)、中间件日志(Nginx、Tomcat、WebLogic等)、数据库日志 (Oracle、MySQL等)、业务系统日志(Web流量、交易系统等)。
由于日志记录了各种事件发生的主体、时间、位置、内容等关键信息,不仅是洞察系统内部状态的窗口,更是监控系统健康状况、安全状况、诊断问题和优化性能的关键工具。
在企业高速发展的同时,同时也会带来各种数据的爆增,每天产生的日志数据也在上涨,甚至有些大企业每天新产生的日志数据在10~100 TB 级别,随之而来的也是各种新的挑战,例如存储成本的上升,日志数据查询分析的效率降低,日志系统的处理性能和实时性方面难以满足当前的需求,
如何更好的去处理这些痛点和挑战,让我们一起来看看一个日志存储分析降本提速的成功案例:
查询提速11倍、资源节省70%,网易日志和时序场景的落地实践
作为网易重要的业务线,灵犀办公和云信针对大规摸日志/时序数据处理和分析的挑战,分别构建了灵犀 Eagle 监控平台和云信数据平台。接下来将重点介绍 Apache Doris 在网易日志和时序场景中的应用,如何使用 Apache Doris 替换 Elasticsearch 和 InfluxDB ,从而实现更低的服务器资源以及更高的查询性能体验,相较于 Elasticsearch , Apache Doris 查询速度至少提升11倍,存储资源的节省高达70%。
早期架构及痛点
灵犀-Eagle监控平台:
Eagle 监控平台主要对灵犀办公、企业邮、有道云笔记、灵犀文档等业务日志数据进行存储分析,日志数据首先通过 Logstash采集并处理,然后存储到Elasticsearch中,由 Elasticsearch 进行实时日志检索及分析,并为灵犀办公提供日志搜索以及全链路日志查询等服务。
随着日志数据的增长,在使用 Elasticsearch 的过程中逐渐暴露出一些问题:
**查询延迟高:**在日常查询中, Elasticsearch 平均响应延迟较高,影响使用体验。这主要受到数据的规模、索引设计的合理性以及硬件资源等因素的制约。
**存储成本高:**在降本增效的大背景下,业务对降低存储成本的的需求日益迫切。但由于 Elasticsearch 存在正排、倒排、列存等多份数据存储,数据冗余程度较高,给降本提效带来了一定的挑战。
云信-数据平台
云信数据平台主要是对 IM、RTC、短信等服务所产生的时序数据进行分析。早期数据架构主要基于时序数据库InfluxDB 搭建,数据源首先通过 Kafka 消息队列进行上报,经字段解析和清洗之后,存储到时序数据库 InfluxDB 中,以提供在线和离线查询。离线侧支持离线T+1数据分析,实时侧需提供指标监控报表及账单的实时生成。
在客户规模的快速覆盖下,上报的数据源也持续增加, InfluxDB 同样面临一系列新的挑战:
内存溢出 OOM:随着数据源的增多,需要基于多个数据源进行离线分析,分析难度随之增加。受限于 InfluxDB 的查询能力,当前架构在面对多个数据源的复杂查询时,可能会导致内存溢出(OOM),这给业务的可用性及系统的稳定性带来巨大的挑战。
存储成本高:业务的发展也带来集群数据量的不断增长,而集群中较大比例数据为冷数据,冷热数据采用同一种方式进行存储,导致了高昂的存储成本,这与降本增效的企业目标相悖。
基于Apache Doris的统一日志存储和分析平台
灵犀-Eagle监控平台
在灵犀办公-Eagle监控平台中,网易成功将 Elasticsearch 全面升级为 Apache Doris ,从而构建了统一的日志存储和分析平台。这一架构升级不仅显著提升了平台的性能与稳定性,更为其提供了强大且高效的日志检索服务。具体收益体现在:
存储资源节省70%:得益于 Doris 列式存储和 ZSTD 高压缩痛比,存储同样的日志数据,Elasticsearch 需要100T存储空间,而存储到 Doris 中仅需要30T存储空间,存储资源节省70%。由于存储空间大幅节省,在同样的成本下可以使用 SSSD 代替HD存储热数据,又带来更大的查询性能提升。
查询提速11倍:新架构以更低的 CPU 资源消耗带来了数十倍的查询效率提升。从下方示意图可知,最近3小时、1天、7天的日志检索,Doris 查询耗日时保持稳定且均低于4s,最快可在1s内响应。而Elasticsearch查询耗时呈现出较大波动,最长耗时高达75s,即使最短耗时也要6-7s。在更低的资源占用下,Doris的查询效率至少是 Elasticsearch的11倍。
云信-数据平台
在云信数据平台中,网易同样使用 Apache Doris 替代了早期架构中的时序数据库 InfluxDB,将其作为数据平台核心存储和计算引擎,由 Apache Doris 统一提供离线和实时查询服务。
支持高吞吐写入:线上平均500M/s、峰值1GB/s的写入流量,InfluxDB 使用22台服务器,CPU 资源使用率约50%,而 Doris 仅使用11台机器,CPU使用率约50%,整体资源消耗仅仅为之前的1/2。
存储资源节省67%:使用11台Doris物理机替换了22台 InfluxDB,存储同样的数据规模,InfluxDB 需要150T存储空间,而存储到 Doris 中仅需要要50T存储空间,存储资源节省67%。
查询响应快且更稳定:为验证其查询响应速度,随机挑选一个线上SQL(最近10mins匹配一个字符串),对该SQL连续查询99次。结果显示,Doris 的查询性能比 InfluxDB 更稳定,99次查询均比较平稳、没有明显波动,而 InfluxDB 出现多次异常波动,查询耗时直线上升,查询稳定性受到严重影响。
选择 Apache Doris 的四大理由:
存储成本优化:Apache Doris 在存储结构上面进行了许多优化,减少了冗余存储。具有更高的压缩比,且支持基于S3、NOS (网易对象存储服务NetEase Object Storage)的冷热分层存储,可有效降低存储成本,提高数据存储效率;
高吞吐高性能:Apache Doris 支持列式存储高性能磁盘写入、时序 Compaction 以及 Stream Load 高效流式导入,能够支持每秒数十 GB的数据写入。这样既能保证日志数据的大规模写入,同时还能够提供低延迟的查询可见性;
实时日志检索:Apache Doris不仅能够支持日志文本的全文检索,还能够实现实时查询响应。Doris支持在内部增加倒排索引,可以满足字符串类型的全文检索和普通数值/日期等类型的等值、范围检索,同时可进一步优化倒排索引的查询性能、使其更加契合日志数据分析的场景需求;
支持大规模租户隔离:Doris可承载数千数据库以及数万数据居表,并能够实现一个租户独立使用一个数据库,满足多租户数据隔离的需求,保证了类故据的隐私性和安全性。
案例服务商介绍
北京飞轮数据科技有限公司是一家基于开源分析型数据库 Apache Doris 的商业化公司,由 Apache Doris 原创团队于2022年1月创建,公司总部位于北京,面向全球提供实时数据仓库的产品与解决方案,满足各类场景的实时数据分析需求。
飞轮科技的创始团队来自于原百度智能云初创人员和 Apache Doris 项目核心成员,公司 70% 员工为技术人员,且均来自于全球顶级数据库、云计算和互联网企业,拥有深厚的技术研发和服务经验。近几年,随着飞轮科技在技术、产品上不断钻研,SelectDB 商业化产品被越来越多的企业和用户使用以及借鉴,以提升企业在各种数据处理上的效率。