赞
踩
1、ELK是什么?
2、ELK踩过的坑
3、秒云日志分析系统如何解决问题
4、总结
ELK是什么?ELK 是一套开源的日志分析解决方案,是三个工具的首字母缩写:ElasticSearch、Logstash 和 Kibana。ElasticSearch简称ES,是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。Logstash是一个具有实时传输能力的数据收集引擎,用来进行数据收集、解析,并将数据发送给ES。Kibana为 Elasticsearch 提供了分析和可视化的 Web 平台。传统意义上,ELK是作为替代Splunk的一个开源解决方案(Splunk 是日志分析领域的领导者)。
媲美Splunk,还开源?相信大多数有日志分析需求的开发者和运维工程师都兴奋起来了。没错,我们也不例外。于是,一众小伙伴研究官网,奔走各大论坛,阅读大量相关文档,搭建环境,测试指标,调研对比。的确,ELK非常强大,不愧为目前最好的开源日志解决方案。
But,想要把ELK用起来,用好,还要长期稳定可靠,却非易事。它是一套很好的解决方案,但不是企业级的产品,如果你是想搭个环境玩玩--那没问题,如果你想直接把他用作生产环境(除非你有一个强大的支撑团队)劝你还是趁早另谋出路吧。
好吧,下面根据团队的亲身经历来个现身说法,聊聊我们曾踩过的关于ELK的坑。
ELK踩过的坑 Logstash性能问题如果将Logstash作为纯粹的日志收集,而不做泛化处理(啥是泛化?简单说就是将日志字段提取出来,规则化,通用化,标准化)。单节点性能可以达到80-100KEPS。但是当加入泛化功能后,性能直线下降。泛化规则越复杂,性能越受影响。通过实测,使用泛化和不使用泛化,性能差距在10倍左右。Logstash的泛化功能简直就是超级拖油瓶。
(当然泛化慢是有其客观原因的,毕竟它要提取、修改日志内容,又要马儿跑又不给吃草不现实。如果要优化泛化性能,则需要对ruby和logstash比较熟悉(至少熟练使用)。您可能会问为啥是ruby?因为泛化功能插件是jruby实现的。动态语言在满足了灵活性和易用性时,是以牺牲性能为代价的。)
当然如果对性能要求不高,几百几千EPS,Logstash还是可以勉强搞定的,实在不行只能加设备。
Logstash的硬伤:泛化太太太复杂话接上回,Logstash的泛化功能由Filter模块实现,不得不承认Filter
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。