基于Doris的日志云系统


发布于 2024-09-05 / 58 阅读 / 0 评论 /
通过Doris搭建一套日志云系统

可参考官方推荐的时间方案:https://doris.apache.org/zh-CN/docs/gettingStarted/tutorials/log-storage-analysis/

1.日志云系统需求介绍

日志是系统运行的详细记录,包含各种事件发生的主体、时间、位置、内容等关键信息。出于运维可观测、网络安全监控及业务分析等多重需求,企业通常需要将分散的日志采集起来,进行集中存储、查询和分析,以进一步从日志数据里挖掘出有价值的内容。

2.Doris日志云系统方案

针对日志云系统的需求,Apache Doris 提供了相应解决方案,针对日志场景的特点,增加了倒排索引和极速全文检索能力,极致优化写入性能和存储空间,使得用户可以基于 Apache Doris 构建开放、高性能、低成本、统一的日志存储与分析平台。

2.1.方案特点和优势

基于 Apache Doris 构建的日志存储与分析平台的特点和优势如下:

(1)高吞吐、低延迟日志写入:支持每天百 TB 级、GB/s 级日志数据持续稳定写入,同时保持延迟 1s 以内。

(2)海量日志数据低成本存储:支持 PB 级海量存储,相对于 Elasticsearch 存储成本节省 60% 到 80%,支持冷数据存储到 S3/HDFS,存储成本再降 50%。

(3)高性能日志全文检索分析:支持倒排索引和全文检索,日志场景常见查询(关键词检索明细、趋势分析等)秒级响应。

(4)开放、易用的上下游生态:上游通过 Stream Load 通用 HTTP APIs 对接常见的日志采集系统和数据源 Logstash、Filebeat、Fluentbit、Kafka 等,下游通过标准 MySQL 协议和语法对接各种可视化分析 UI,比如可观测性 Grafana、BI 分析 Superset、类 Kibana 的日志检索 Doris WebUI。

3.Doris方案 vs ELK方案

基于 Apache Doris 构建的日志存储与分析平台,性价比相对于 Elasticsearch 具有 5~10 倍的提升。主要表现在以下方面:

(1)写入吞吐提升:Elasticsearch 写入的性能瓶颈在于解析数据和构建倒排索引的 CPU 消耗。相比之下,Apache Doris 进行了两方面的写入优化:一方面利用 SIMD 等 CPU 向量化指令提升了 JSON 数据解析速度和索引构建性能;另一方面针对日志场景简化倒了排索引结构,去掉日志场景不需要的正排等数据结构,有效降低了索引构建的复杂度。同样的资源,Apache Doris 的写入性能是 Elasticsearch 的 3~5 倍。

(2)存储成本降低:Elasticsearch 存储瓶颈在于正排、倒排、Docvalue 列存多份存储和通用压缩算法压缩率较低。相比之下,Apache Doris 在存储上进行了以下优化:去掉正排,缩减了 30% 的索引数据量;采用列式存储和 Zstandard 压缩算法,压缩比可达到 5~10 倍,远高于 Elasticsearch 的 1.5 倍;日志数据中冷数据访问频率很低,Apache Doris 冷热分层功能可以将超过定义时间段的日志自动存储到更低的对象存储中,冷数据的存储成本可降低 70% 以上。同样的原始数据,SelectDB 的存储成本只需要 Elasticsearch 的 20% 左右。

(3)查询性能提升:Apache Doris 将全文检索的流程简化,跳过了相关性打分等日志场景不需要的算法,加速基础的检索性能。同时针对日志场景常见的查询,比如查询包含某个关键字的最新 100 条日志,在查询规划和执行上做专门的 TopN 动态剪枝等优化。