1、为何要自研搜索分析引擎?
在现有的日志分析解决方案中,基于搜索引擎进行日志分析,可实时接收最新产生的日志数据并进行索引,供用户进行实时搜索和统计分析。
实时日志搜索引擎技术相对一些传统技术(如数据库等),主要特点是支持全文检索,搜索更快,处理数据的性能更强,实时性也更好。
然而,业界通用的开源日志搜索引擎存在很多问题。首先,开源引擎是一个通用的搜索引擎,难以满足日志处理的一些特殊需求;其次使用 Java 开发,内存消耗及性能上存在较多优化空间;再者代码量大,代码维护优化难度较大;且由于开源原因,人力维护成本较高。
基于以上若干原因,日志易团队自研了一套搜索分析引擎,命名为 Beaver。这个自研引擎是用 C++ 开发的,主要是速度更快,内存控制更优,可节省 50% 以上的开发维护成本。
2、自研搜索分析引擎优势
自研搜索分析引擎 Beaver 实时性高。开源引擎是准实时搜索引擎,需要把数据刷新到文件系统缓存上才可以看到数据,如果刷新频繁,则会造成内存压力过大,I/O 压力过大。而 Beaver 是个实时文件系统,内存控制借鉴了 Linux 内核的内存管理算法,只要有数据接入就可以搜索,灵活的同时又保证了速度。
自研搜索分析引擎 Beaver 并发写入效率提升了 500%。开源引擎为了防止数据紊乱,Segment 写时由单个线程写入。Beaver 则是全程异步,且并发度可以调节,I/O 和 CPU 消耗更低,写入速度大大增加。
此外,由于 Global ordinal 优化,自研搜索分析引擎 Beaver 搜索性能提升了 50%,统计性能提升了 200%;自研引擎 Beaver 对 Replica 策略进行调整,大大减小了因副本导致的资源消耗,同时保证了数据的可靠性;自研引擎 Beaver 在搜索的同时进行分层 Merge,降低单节点的压力,以及 OOM 的可能性,集群的扩展性得到有效提升;由于采用了更严格有效的内存控制策略,自研引擎 Beaver 能同时打开更多索引;自研引擎 Beaver 还采用了更有效的冷热索引分级控制,降低了索引的膨胀率。
根据测试环境和生产环境的使用数据,同样入库和查询条件下, Beaver 比开源引擎节省了一半的硬件成本。
◆ ◆ ◆ ◆ ◆
3.0 除了全面采用自研引擎之外,搜索页面也进行了优化,语法高亮和缩进使得 SPL 语句显示更加友好清晰;Agent 采集端也增加了一些更加强大的功能,能够支持对 SQL Server 事件日志的解析;新版本中,告警类型支持设备切分;另外,新版本中可视化及 Galaxee 大屏展示也新增了很多控件。
欲了解 3.0 版本更多惊喜新功能,联系您的专业服务支持人员,免费咨询热线:400-085-0159
Beaver 来袭,高性能日志分析走起!
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!