ELK指Elasticsearch/Logstash/Kibana这3个开源软件的组合,可用于日志搜索。
Elasticsearch是基于开源搜索库Lucene开发的通用开源搜索引擎,在不少垂直搜索领域应用。Elasticsearch用于日志搜索这种对实时要求比较高的场景时,需要做性能调优,甚至定制化开发,才能较好地满足大数据量、低延时的要求。一些日志关联分析的功能Elasticsearch也没有,需要做开发。
Logstash是系统管理员Jordan Sissel用脚本语言Ruby开发的日志关键字段提取及处理工具,目标用户是系统管理员,需要做大量的配置,而且开源软件需要花费时间维护,综合成本不低。
Kibana是基于Elasticsearch的Web展示界面,功能比较少,许多Elasticsearch提供的功能没有实现,需要用户做不少开发才能充分应用Elasticsearch的重要功能。日志易实现了事件计数统计、时间分段统计、数值分段统计、时间直方图统计、数值直方图统计、字段值分类统计、字段数值统计、累计百分比统计等功能,功能比Kibana丰富得多。
使用ELK有以下问题:
在日志来源多样、日志量大、延时要求短、功能要求多、希望拿来就用(不需要二次开发)的情况下,日志易是您的最好选择。
使用关系型数据库处理日志有两个问题:
对于日志这样的大数据,文档型数据库(Document Database,NoSQL的一种)是更合适的选择。 日志易采用索引文件处理、存储日志,可对各种格式的日志进行全文索引,非常灵活方便。日志易就是一个日志的搜索引擎。
Hadoop是个开发框架,用户需要开发Hadoop程序处理日志,使用门槛较高,优秀的Hadoop开发工程师不容易招到; 而且Hadoop是批处理,实时性较差。不少使用Hadoop处理日志的公司通常是每天晚上处理当天的日志,第二天出统计报表。 有些公司做得好些,每隔几小时处理一次日志,但也只能看到几小时前的日志分析。日志易采用流式实时处理框架,用户可看到10秒钟之前的日志; 而且日志易是拿来即用的Turn Key Solution,不需要用户做任何开发。
一些用户使用Hadoop框架下的Hive或Pig查询日志,延时可能达到几十分钟。使用日志易查询、分析日志,延时只有几秒。 日志易使用了性能比Hadoop快10倍的Spark Streaming架构。Hadoop的发明人Doug Cutting也认为Hadoop未来会被Spark取代。
一些用户使用HBase来存储、处理日志,HBase不支持二级索引,一旦确定好RowKey(一级索引)后, 对非RowKey的关键字搜索基本都是全表扫描,实时性比搜索引擎要差; 而日志易这样的日志搜索引擎可以针对用户设置的多个关键字自动建立索引,满足关键字实时搜索和统计分析的需求。 采用HBase,要求日志源转换成结构化数据;而日志易支持所有日志源,用户可以自己配置解析规则, 相比HBase,日志易可以减少用户在转换日志方面的工作量。
Spark SQL是Spark框架下对结构化数据进行SQL语法查询的模块,并不支持全文检索, 而日志是非结构化数据,使用日志易这样的搜索引擎对日志进行全文检索是更加方便、高效的方式。
Splunk是美国做日志搜索分析的工具软件,但有以下不足:
全球最具权威的IT研究与顾问咨询公司Gartner在2014年7月18日的Splunk市场研究报告《Vendor Insight: Splunk, Separating Hype From Reality》里提到用户对Splunk的抱怨:
"Splunk does no parsing of data before it comes into the system, providing for the most flexibility to the user, but not always the most highly performing system." "Gartner clients do complain regularly about performance as the system grows."
"Splunk Enterprise is priced based on the volume of data coming into the product per day. Linking licensing fees to data volume is the most common complaint of Gartner clients and is limiting the use cases for Splunk within many organizations."
日志易相比Splunk的优势:
一些公司的日志分散在各台服务器上,每次查找日志都要登录到各台服务器,效率低下。使用日志易统一管理日志,在一个界面上就可以查看所有日志,大大提高运维效率。
黑客在入侵服务器或网络设备时,往往会删掉日志,抹除作案证据。使用日志易统一上传、管理日志,可及时发现入侵行为,监控告警,也可以长期保存日志,方便事后安全审计。
一些公司的日志由各业务部门分别处理,导致了日志数据及分析结果的碎片化。日志是一家公司运营情况的真实数据,不同业务部门的日志往往互相关联。在公司层面统一处理、分析日志,可以把不同来源的日志对照关联分析,去除噪音,反应真实情况。LinkedIn(领英)的架构师写的这篇文章"深度解析LinkedIn大数据平台",详细阐述了建立统一日志处理平台对一家公司的重大价值及LinkedIn在这方面的具体实践,非常值得参考。