大数据搜索与日志挖掘及可视化方案:ELK Stack:Elasticsearch、Logstash、Kibana (第2版)
上QQ阅读APP看书,第一时间看更新

第1版前言
Foreword

建立在分布式系统之上的大数据搜索与挖掘应用,是当今IT业的研究与工程实践热点之一。在DB-Engines公布的2015年度最受欢迎的数据库系统中,Elasticsearch名列前茅。作为开源分布式检索与数据处理平台,Elasticsearch 不仅仅是一个数据库,它还是一个基于Lucene构建的开源、分布式、RESTful信息检索框架。基于Elasticsearch+Logstash+Kibana的信息处理架构,为编程人员提供了一种分布式可扩展的信息存储和全文检索机制以及基于Logstash的日志处理机制、基于Kibana的挖掘结果可视化机制。它不仅能对海量规模的数据完成分布式索引与检索,还能提供数据聚合分析和可视化。因此,从实战的角度掌握Elasticsearch、Logstash、Kibana的基本使用方法和技巧,很有必要。

大数据这个术语的出现,大概可追溯到基于Lucene的Apache开源项目Nutch。从2009年开始,大数据开始成为互联网行业的流行词汇,也吸引了越来越多的关注。物联网、云计算、移动互联网、手机与平板电脑、PC以及遍布各个角落的各种各样的传感器,无一不是大数据的来源方或承载方。可以说,大数据就在我们身边。从阿里巴巴、1号店、京东商城等电子商务数据,到QQ等即时聊天内容,再到Google、Bing、百度,又到社会网络与微博、微信等,都在生产、承载着大数据。随着信息处理量的增大,对大数据的分布式存储、快速搜索与挖掘显得特别必要。例如,挖掘用户的行为习惯和喜好,从凌乱纷繁的大数据背后找到符合用户兴趣和习惯的产品和服务,并对产品和服务进行有针对性的调整和优化,本身就蕴含着巨大的商机。但是,传统的基于关系型数据库管理系统的方法,在高效处理大数据时显得有些力不从心。虽然开源的全文检索工具Lucene能处理非结构化和半结构化的信息,但其某些版本在分布式处理方面的不足限制了它在大数据方面的应用。我们希望找到一个快速的分布式信息检索解决方案,希望它是一个零配置和易于上手的全文检索模式,希望它能够简单地使用JSON通过HTTP索引数据,更希望它支持分布式处理并支持系统扩展,能够实时搜索,并且稳定、可靠。

Elasticsearch是一个基于Lucene的开源分布式信息检索架构和全文搜索工具。构建在Elasticsearch基础上的日志处理工具Logstash和信息可视化组件Kibana,能有效衔接并高效处理由Elasticsearch索引的分布式数据,三者优势互补,各司其职,共同完成网络大数据分布式存储、倒排索引、全文检索、Web日志处理、挖掘结果可视化这一整套的信息处理流程。目前,国内这方面的资料很少,仅有的几部译著所提及的Elasticsearch版本较低,且没有任何有关Logstash和Kibana的书籍。因此,我们萌发了一个想法,将Elasticsearch、Logstash、Kibana(统称为ELK)联袂奉献给广大软件开发者,帮助他们尽快熟悉ELK架构,并构建自己的Web应用程序,完成对分布式信息的检索与分析工作。

本书强调实践,内容新颖,条理清晰,组织合理。通过实战讲解的方式,让读者更好地了解ELK架构的实现细节。全书内容涵盖ELK简介、文档索引与处理、信息检索与过滤、信息统计与分析、基于Java客户端的Elasticsearch功能实现、Elasticsearch配置与管理、基于Logstash的网络日志处理、基于Kibana的分析结果可视化、应用实例等多个部分。

全书由高凯提出写作大纲,第1章和第6章由高凯撰写并完成全书通稿和审校工作,其余各章均由高莘撰写。其中,第1章概述Elasticsearch、Logstash、Kibana的主要功能,对涉及的一些概念进行简介,并从实用的角度出发,通过对实例的讲解,介绍索引、检索的实现机制;第2章对Elasticsearch中的索引、映射等进行说明;第3章介绍Elasticsearch中的检索功能;第4章介绍基于Facets、Aggregations的数据聚合与统计功能;第5章从工程实践的角度,介绍面向Java客户端的Elasticsearch部分功能的设计与实现;第6章介绍Elasticsearch的配置及一些高级功能、监控等的使用;第7章介绍日志处理及Logstash的应用;第8章介绍基于Kibana的可视化技术;第9章给出一个综合应用实例,该实例从网页采集、处理、存储、索引、日志处理、可视化展示等入手,介绍了基于ELK的分布式信息检索与日志挖掘解决方案。

本书的顺利完成也得益于参阅了大量的相关工作及研究成果,部分内容源自Elasticsearch、Logstash、Kibana的官方文档。在写作过程中,也参考了相关文献和互联网上众多热心网友提供的素材,在此谨向这些文献的作者、热心网友以及为本书提供帮助的老师,特别是那些由于篇幅所限未及在参考文献中提及的相关文献的作者和网站,致以诚挚的谢意和崇高的敬意。

由于我们的学识、水平均有限,书中不妥之处在所难免,恳请广大读者批评指正。

编者