提升高吞吐ELK实践:携程吴晓刚的策略与优化

需积分: 12 17 下载量 89 浏览量 更新于2024-07-19 收藏 1.64MB PPTX 举报
高吞吐ELK实践是携程旅行网的吴晓刚在2015年10月25日分享的主题,关注于如何在大规模的ES(Elasticsearch)集群中实现高效的数据处理和监控。ES集群由30个节点组成,主要关注监控系统的性能优化和吞吐量提升。 系统架构方面,设计了一个独立的ClientNode,它的配置中将node.data设置为false,这使得它专门处理index和bulk request,避免了与DataNode资源的竞争,提高了资源利用率。同时,ClientNode还负责接收查询请求并汇总结果,这种分离有助于故障排查,因为问题更容易定位到特定节点。 监控工具的选择上,团队倾向于使用Ganglia,一个轻量级且易于操作的监控工具,它能够实时监控节点状态,包括健康状况(通过GET/_cat/health和GET/_cat/nodes)以及节点统计信息(通过GET/_nodes/stats和nodeID1,nodeID2/stats)。此外,为了应对Windows平台的限制,团队开发了基于Go语言的Logstashforwarder,这是一个更轻量级的代理,可以在Windows上运行,并支持Lumberjack协议输出,后来通过二次开发使其支持Kafka输出,以利用Kafka的压缩功能节省网络带宽。 对于提高写入吞吐量,分享者提到了几个关键策略:首先,减少Grokfilter的使用,因为它对CPU资源需求较高;其次,通过调整LogstashOutputplugin的参数,如idle_flush_time(默认1秒,应根据延迟容忍度适当延长)、flush_size(直到单个worker达到最大吞吐量不再增长)以及workers数量(通常1到2个就足够),以优化性能。此外,还提到使用HangOut(https://github.com/chi)这样的工具进行进一步的性能优化和管理。 在整个实践过程中,团队也引入了KibanaAuthProxy,这是一个基于Django开发的认证网关,它与CtripSSO(基于JasigCAS)集成,提供了用户认证和单点登录功能,确保了数据的安全性和访问控制。 吴晓刚的分享强调了在高吞吐量的ELK实践中,从系统架构设计、监控工具选择、参数调优到安全性考虑的全面策略,旨在实现一个健壮、高效并且适应企业级需求的ELK解决方案。