Elasticsearch(后称ES)作为日志管理、数据搜索与分析工具,在各行各业都有广泛且深入的应用,2021年初Elastic公司不再提供ES的Apache license开源版本,AWS为此推出了基于ES 7.10.2开发的OpenSearch。OpenSearch自2022年发布至今,在DB-Engine的搜索引擎分类的排名迅速攀升到第4,由于与ES同源,OpenSearch成为ES完美的商业替代产品。
图1 DB-Engines搜索引擎分类排名
G行在应用系统全面上云的背景下,进行了基于容器化OpenSearch的全栈云日志平台设计与实践,并开展了一系列性能优化,探索适合全栈云的日志处理、数据分析与数据搜索替换路线。下文详细介绍G行基于OpenSearch开展的日志平台设计与优化工作。
G行全栈云日志平台以收集并处理全栈云底座管理服务日志为目标,并对管理员提供日志查询视图、日志分析看板等功能。考虑到接入组件服务多、日志量分时差异大、日志查询时间长等实际情况,平台需满足如下几点要求:
在日志量大且集中的时段,OpenSearch可能无法及时处理所有数据,通过日志缓存确保未及时处理的数据可以在后期追溯。
避免直接对客户端服务暴露写入端口,降低对OpenSearch集群的冲击,确保平台的运行稳定性。开放适当权限的数据查询视图。
持续写入的索引作为热数据存放在热节点,不再更新的索引作为温数据存放在温节点,不需查询的数据作为备份存放在对象存储。确保数据读写性能得到保障。
通过kafka实现日志的集中接入与缓存,并且实现对OpenSearch的平滑写入;通过logstash实现日志数据的集中处理,对数据流开展解析与二次加工工作;通过OpenSearch的ISM(Index State Management,索引状态管理)机制实现索引数据的热、温、冷自动化处理,冷数据存储备份于对象存储中;通过Dashboard实现可视化数据查询与看板定制。下图为日志平台架构展示。
图2 全栈云日志平台服务架构
基于上述架构实现日志处理平台后,随着服务接入变多,接入日志量变大,平台出现kafka端消息积压的情况,经过调试分析,分别从kafka、logstash和OpenSearch三个部分开展优化,并实现了消息数据的实时消费与写入。
通过kafka集群节点的磁盘io曲线可以看出磁盘的写入速度约是读取速度的8倍,即消息的消费速度明显跟不上消息的生产速度,这也符合kafka消息积压的现象。
图3 kafka节点的磁盘io曲线
通过logstash节点的监控曲线,发现logstash的cpu利用率和出入站流量较低,而OpenSearch的cpu利用率和吞吐量同样不高。为此考虑从日志平台的整个路径上开展优化以提升消息处理性能。
kafka通过磁盘顺序写入、操作系统页缓存、零拷贝、消息批量处理和压缩等一系列精妙设计,确保了服务的高性能,但仍需做一些配置调整以应对实际使用环境。如下列出一些当前环境下所做的配置调整。
本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-79301-0.htmlG行基于OpenSearch的日志平台设计与实践
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com
上一篇: 我们一起聊聊什么是正向代理和反向代理