全新低成本高性能日志分析方案,实现10倍性价比提升

实时数据仓库分享
2024/7/12
SelectDB

在现代计算环境中,信息系统和应用程序变得越来越复杂和多样化,从单一服务器到分布式系统、云计算、微服务架构,系统规模和复杂度的增加使得监控和管理这些系统变得更加具有挑战性。

日志是系统运行的详细记录,例如操作系统主机日志(Linux、VVindows、MacOS等)、网络设备日志(防火墙、交换机、路由器等)、安全设备日志(IPS、IDS等)、中间件日志(Nginx、Tomcat、WebLogic等)、数据库日志(Oracle、MySQL等)、业务系统日志(Web流量、交易系统等)。

日志分析的三大关键场景:

在运维和可观测性领域,用于监控和故障排查,提升服务稳定性和用户体验:日志是三大基石(Log,Trace,Metrics)之一,是最详细的事实数据,常用于监控告警、故障排查、Trace 关联等,是保证系统稳定运行、提升运维效率的基础对于提升用户体验非常重要。

在网络安全领域,用于安全审计、溯源和分析,确保安全合规:安全日志记录了网络和主机上发生的事件和行为,用于安全分析、调查取证、安全检测等,是提升系统安全性、降低被攻击风险的重要手段。《中华人民共和国网络安全法》第二十一条第三款明确规定"采取监测、记录网络运行状态、网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月"。

在业务分析领域,用于支持业务发展和增长:业务日志记录了业务系统中的各种行为和事件,是业务指标统计分析、用户画像与行为分析、运营优化的基础,帮助企业精准掌握业务核心指标、提升用户粘性、促进用户和业务持续增长。

7121.PNG

常见的日志分析解决方案:

由于单一系统很难应对上述挑战,很多企业采用 Elasticseardch +数据湖结合的混合架构来构建日志存储和分析平台,详见下图。

7122.PNG

在该方案中,Elasticsearch 支持倒排索引和全文检索,同时具备一定的灵活 Schema 能力,能够应对实时文本检索、Flexible Schema 的挑战。但是,有着以下明显的缺点:

写入吞吐低

原因:Elasticsearch 在写入时要构建倒排索引,这涉及到分词、倒排表排序等计算密集型操作,导致CPU资源占用较大。单个节点的写入性能有限,当遇到大量日志数据写入时,容易成为瓶颈。

影响:在高写入流量的情况下,Elasticsearch 集群可能因资源不足而触发写入拒绝,导致数据延迟变长、查询速度变慢。

存储成本高

原因:为了加速检索和分析速度,Elasticsearch 存储了原始数据正排、倒排索引、Docvalue 列存等多份数据,导致存储空间需求显著增加。此外,Elasticsearch 的存储压缩率相对较低,远低于日志数据常见的压缩比。

影响:高昂的存储成本成为企业部署和扩展 Elasticsearch 集群的一大障碍。随着数据和集群规模的增长,存储成本将进一步上升。

不支持复杂查询

原因:Elasticsearch 的查询能力相对较弱,主要支持简单的单表分析和文本搜索,不支持多表 JOIN、子查询、视图等复杂SQL查询操作。

影响:这限制了Elasticsearch在需要复杂数据分析场景下的应用。对于需要进行复杂业务分析的企业来说,可能需要依赖其他数据库或分析工具来补充 Elasticsearch 的不足。

学习和使用门槛高

原因:Elasticsearch的DSL(Domain Specific Language)与大多数工程师、数据分析师熟悉的技术栈差异较大,用户需要学习大量的新概念和语法才能正确使用。

影响:这增加了用户的学习成本和上手难度,可能导致企业在推广和使用 Elasticsearch 时遇到阻力。

生态封闭,与其他系统打通困难

原因:Elasticsearch 的生态相对封闭,与其他系统的集成和打通存在一定难度。

影响:这限制了 Elasticsearch 在企业IT架构中的灵活性和可扩展性。企业可能需要投入额外的资源和时间来解决与其他系统的集成问题。

性能和稳定性问题

写入不稳定:当遇到写入高峰时,Elasticsearch 集群可能因负载过高而影响写入的稳定性。

查询不稳定:大查询容易触发 JVM 内存溢出(OOM),进而影响整个集群的写入和查询稳定性。

故障恢复慢:Elasticsearch 集群在故障后恢复时需要进行 Index 加载等资源占用较大的操作,导致故障恢复时间较长。

基于 SelectDB 的日志存储与分析解决方案:

SelectDB 是基于 Apache Doris 构建的现代化数据仓库,采用 MPP 分布式架构,结合向量化执行引擎、CBO 优化器、丰富的索引以及物化视图等先进技术,支持大规模实时数据上的极速查询分析,为用户提供极速的查询分析体验。经过持续的技术创新和迭代, SelectDB 已经在单表 ClickBench、多表TPC-H、TPC-DS 等多个权威分析型数据库性能评测中获得全球领先甚至第一的成绩。

高性能、低成本

经过 Benchmark 测试及生产验证,基于 SelectDB 的日志存储与分析平台,性价比相对于 Elasticsearch 具有5-10倍的提升。为直观对比其性能,我们基于不同的数据库对 SelectDB 和 Elasticsearch 分别进行了测试对比。

基于 Elasticsearch 提供的官方性能 Benchmark Rally 的 HTTP Logs 数据集进行测试,如下图左侧。Doris 写入速度是 Elasticsearch 的5倍,存储空间减少了80%,达到550MB/s,写入后的数据压缩比接近1:10、存储空间节省超80%,查询耗时下降57%、查询性能是 Elasticsearch 的2.3倍。加上冷热数据分离降低冷数据存储成本,整体相较 Elasticsearch 实现10倍以上的性价比提升;

基于 Azurelogsbench 测试集进行的测试:如下图右侧。该测试集中拥有1TB、40亿条的庞大日志,虽数据量大,但测试结果表明,查询性能相比 HTTP Logs 数据集来说,提升更为明显;

7123.png

分析能力强

SelectDB 支持标准 SQL、兼容 MySQL 协议和语法,因此基于 SelectDB 的日志系统能够使用 SQL 进行日志分析。

下面是 Elasticsearch 和 SelectDB 在分析能力上的详细对比,SelectDB 支持倒排索引,用户不再需要因全文检索的需求额外引入一个 Elasticsearch 组件,在 SelectDB 中可以同时满足分析和检索的需求。

7124.png

简单易用,提升开发效率:

ApacheDoris学习成本低、轻松上手。ApacheDoris兼容容MySQL协议,支持使用标准 SQL 语言进行数据查询和操作,使得开发人员可以方便地进行复杂的数据查询和聚合操作。相比之下, Elasticsearch 的 DSL 是一种基于JSON的查询语言,对于不不熟悉DSL开发人员来说,完全掌握该语法需要一定的学习曲线,具有较高的学习和使用门槛。

灵活扩展:

SelectDB支持云原生存算分离的架构,存储与计算可以独立扩缩容、按需扩缩容。此外,其提供的Multi-Cluster特性允许用户按需创建多个计算集群但共享同一份数据,从而更好地满足不同负载间的资源隔离需求。这些特性使得SelectDB在扩展性方面表现出色。

常见日志解决方案与SelectDB解决方案的区别主要体现在技术架构、性能表现、成本效益、易用性以及扩展性等多个方面。以下是对这些区别的详细分析:

一、技术架构

常见日志解决方案:

  • ELK Stack(Elasticsearch、Logstash、Kibana):ELK是最流行的集中式日志解决方案之一,由Elasticsearch(日志存储和搜索引擎)、Logstash(数据收集、过滤和处理引擎)、Kibana(数据可视化平台)组成。这种架构通过各组件的协同工作,实现日志的收集、存储、分析和可视化。
  • 其他组合:如Fluentd与Elasticsearch结合、Filebeat与Logstash结合等,这些方案根据具体需求灵活组合不同的组件,以适应不同的日志处理场景。

SelectDB解决方案:

  • 基于Apache Doris打造:SelectDB是一个现代化数据仓库,它不拘泥于传统数仓的限制,针对日志数据的特点引入了多项创新性技术。这些技术包括高性能的倒排索引、列式存储、自适应的并行执行引擎等,共同构成了SelectDB独特的日志存储与分析平台。
  • 统一解决方案:SelectDB提供了从日志采集、存储、分析到可视化的全链条解决方案,用户可以在一个系统中完成所有日志处理任务,无需依赖多个独立组件。

二、性能表现

常见日志解决方案:

  • 写入与查询性能:ELK等常见解决方案在写入和查询性能上表现良好,但可能受到数据量、查询复杂度等因素的影响。在大数据量和高并发场景下,可能需要通过优化配置或增加硬件资源来提升性能。

SelectDB解决方案:

  • 高性能优化:SelectDB针对日志数据的特点进行了多项性能优化。例如,其高性能的倒排索引写入速度是ES倒排索引的4倍;服务端group commit机制保证秒级实时可见前提下写入吞吐到GB/s;采用列式存储、精简倒排索引、高压缩比压缩等技术降低存储空间占用等。这些优化措施使得SelectDB在日志存储与分析方面表现出色。

三、成本效益

常见日志解决方案:

  • 成本考量:ELK等常见解决方案在成本上可能因组件众多、资源消耗大等因素而相对较高。特别是在大数据量和高并发场景下,可能需要投入更多的硬件资源来支撑系统的稳定运行。

SelectDB解决方案:

  • 高性价比:SelectDB通过采用列式存储、高压缩比压缩等技术大幅降低存储空间占用,从而降低存储成本。同时,其高效的并行执行引擎和自适应的查询优化器能够提升查询性能并减少资源消耗,进一步降低运行成本。综合来看,SelectDB在日志存储与分析方面具有较高的性价比。

四、易用性

常见日志解决方案:

  • 学习与部署难度:ELK等常见解决方案虽然功能强大但组件众多,用户需要学习并掌握多个组件的使用方法和配置技巧。此外,系统的部署和调试也可能相对复杂。

SelectDB解决方案:

  • 简易易用:SelectDB提供了丰富的导入方式和便捷的查询接口,用户无需深入了解底层技术细节即可轻松上手使用。同时,其一体化的解决方案简化了系统搭建和运维过程,降低了使用门槛。

五、扩展性

常见日志解决方案:

  • 扩展能力:ELK等常见解决方案通常具有较好的扩展性,可以通过增加节点等方式来应对数据量和查询负载的增长。然而,在扩展过程中可能需要考虑数据一致性、负载均衡等问题。

SelectDB解决方案:

  • 灵活扩展:SelectDB支持云原生存算分离的架构,存储与计算可以独立扩缩容、按需扩缩容。此外,其提供的Multi-Cluster特性允许用户按需创建多个计算集群但共享同一份数据,从而更好地满足不同负载间的资源隔离需求。这些特性使得SelectDB在扩展性方面表现出色。

综上所述,常见日志解决方案与SelectDB解决方案在技术架构、性能表现、成本效益、易用性以及扩展性等方面存在显著差异。用户可以根据自身需求和实际情况选择合适的解决方案。

日志分析倒排索引列式存储数据分析