实时数仓的日志管理与分析旨在有效地收集、处理、存储和分析来自各种系统和应用程序的日志数据,为实时决策提供有力支持。另外对于保障系统、业务稳定性至关重要,常用于故障排查、监控告警等,企业需要构建统一的日志管理与分析平台。常见的日志种类有服务器日志、网络设备日志、物联网日志、业务日志等。
日志分析的主要场景:
网络安全:日志分析在网络安全领域起着至关重要的作用。通过分析防火墙、入侵检测系统(IDS)、安全信息和事件管理(SIEM)等安全相关组件的日志,可以发现潜在的恶意攻击、未经授权的访问以及系统漏洞。例如,通过分析防火墙日志,可以识别出恶意软件的行为模式,从而及时采取防御措施。
系统运维:系统运维人员通过日志分析可以实时监控系统的运行状态,及时发现并解决潜在问题。日志中包含了系统运行的详细信息,如进程状态、资源使用情况、错误信息等。通过对这些数据的分析,运维人员可以了解系统的整体健康状况,预测并避免潜在的系统故障。
业务分析:日志分析在业务分析中也具有重要价值。通过对业务系统的日志进行分析,可以了解用户的行为习惯、需求偏好以及业务流程的执行情况。例如,通过对网络访问日志的分析,可以了解用户的访问来源、访问路径以及停留时间等信息,进而优化网站结构、提升用户体验。此外,日志分析还可以帮助企业追踪用户的转化路径,发现潜在的用户留存和流失问题,为制定个性化的营销策略提供数据支持。
性能优化:日志中包含了大量关于系统性能的信息,如响应时间、吞吐量、资源利用率等。通过对这些数据的分析,可以找出性能瓶颈,优化系统配置,提升整体性能。
故障排查:当系统出现故障时,日志是排查问题的关键线索。通过分析故障发生前后的日志信息,可以定位问题的根源,快速恢复系统正常运行。
日志数据有写多读少、成本敏感、时效性要求高的特点,当前基于 Loki、ES 等产品的解决方案, 往往面临以下的问题:
写入吞吐量与实时性差 大规模系统中,日志数量庞大,每秒钟产生的日志消息数量可能达到数千万。既要高吞吐写入,又要实时可见,当前常见的解决方案难以满足数据实时写入可查的需求。
存储成本高 随着时间的推移,日志数据规模会不断增长,存储量会达到非常巨大的规模,当前常见的解决方案存储成本高,难以满足日志数据长周期存储需求。
查询响应速度低 日志场景需要快速文本检索,查出匹配关键字的日志,以满足故障排查等场景的快速响应,当前常见的方案的查询响应速度往往不尽人意。
为了解决以上难题,通过接入SelectDB 的倒排索引能力、Variant 数据类型、冷热数据分层存储等特性,为实时数仓日志存储和分析场景服务注入强大的动力,相对于使用ES产品,SelectDB可以实现存储成本降低 70% 的同时,查询性能提升 2-4 倍,最终实现整体性价比 10 倍提升!
成本的大幅降低主要得益于两个因素: SelectDB 写入性能高于 Elasticsearch :在应对 1GB/s 的持续高吞吐写入时,SelectDB 所占用 CPU 保持在 20% 以下,折合约占 2.6 台云主机的成本,仅为 Elasticsearch 索引写入服务成本的 13%。这一优势可以在降低写入成本的同时应对更大的突发流量,保障系统的稳定性。
SelectDB 数据和索引压缩率高于 Elasticsearch:SelectDB 数据和索引采用列式存储和 ZSTD 压缩技术,使得线上集群整体压缩比可达 1:8 ,而 Elasticsearch 压缩比只有 1:1.5,因此使用 SelectDB 时,所占用存储空间仅是 Elasticsearch 的 20% 左右。
SelectDB 支持冷热数据分层存储,这样我们就可以将近期较频繁查询的热数据存储在本地盘,长时间不使用的冷数据自动上传至对象存储中,这样可大幅降低数据存储成本。同时,SelectDB 支持根据存储策略的配置自动进行冷热数据迁移,并且数据生命周期管理和查询对上层应用透明,使用起来更加灵活方便。此外,SelectDB 还可通过本地 Cache 加速对冷数据的访问,从而提升用户查询冷数据的使用体验。
在减少机器数量以后,我们对比了相同的查询在两个集群下的性能,实践表明 SelectDB 的点查和列表查询速度比 Elasticsearch 快近 2 倍,在聚合查询不进行采样的情况下,SelectDB 相比 Elasticsearch 快将近 4 倍。