(特价书)实战Elasticsearch、Logstash、Kibana ——分布式大数据搜索与日志挖掘及可视化解决方
反映ELK Stack的*成果,强调实践和面向初学者,通过实战讲解的方式,让读者更好地了解ELK Stack的应用
商品已成功飞到您的手机啦!快登录手机站看看吧!
> 扫一扫 下载客户端
> 微信关注“互动出版网”,便捷查询订单,更多惊喜天天有
编辑推荐
《实战Elasticsearch、Logstash、Kibana:分布式大数据搜索与日志挖掘及可视化解决方案》由清华大学出版社出版。
内容简介
书籍 计算机书籍
对大数据的搜索与挖掘,在当今网络时代是很有必要的。本书提出的分布式大数据搜索与日志挖掘及可视化解决方案是基于Elasticsearch、Logstash和Kibana而形成的,它能有效应对海量大数据所带来的分布式存储与处理、全文检索、日志挖掘、可视化等的挑战。构建在全文检索开源软件Lucene之上的Elasticsearch,不仅能对海量规模的数据完成分布式索引与检索,还能提供数据聚合分析;Logstash能有效处理来源于各种不同数据源的日志信息;Kibana能得出可视化分析结果。本书讲解有关Elasticsearch、Logstash、Kibana的使用,相关内容以模块化的方式进行组织,注重实战,强调实践,内容新颖,组织合理。
本书可为高校相关专业(如计算机科学与技术、软件工程、情报学、图书馆学、信息管理与信息系统)学生的学习和科研工作提供帮助,同时对于从事大数据搜索与挖掘、信息检索与智能处理技术的工程技术人员和希望了解网络信息检索与分析技术的爱好者也具有较高的参考价值。
作译者
高凯,男,博士毕业于上海交通大学计算机应用技术专业,省级重点学科“计算机软件与理论”中“信息检索与云计算”方向学术带头人,硕士研究生导师;中国计算机学会会员,中国中文信息处理学会会员,英国学术期刊International Journal of Computer Applications in Technology编委会委员,5th、6th、7th International Conference on Modelling,Identification and Control程序委员会委员;主要研究方向为自然语言处理、网络信息检索、社会网络计算、大数据搜索与挖掘、云计算等;近几年出版了《信息检索与智能处理》、《大数据搜索与挖掘》、《网络信息检索技术及搜索引擎系统开发》等学术专著及《数据库原理与应用》、《计算机专业英语》、《Android程序设计基础教程》等多部教材。
目录
第1章概述1
1.1Elasticsearch的安装与简单配置2
1.2走近Elasticsearch6
1.2.1Elasticsearch是什么6
1.2.2Elasticsearch中涉及到的相关概念7
1.2.3Elasticsearch API的简单使用方式9
1.2.4Elasticsearch RTF版本中的部分插件简介10
1.2.5Elasticsearch 基本架构12
1.3Elasticsearch索引及其构建13
1.3.1概述13
1.3.2借助Head工具构建索引13
1.3.3Mapping简述15
1.4信息检索及其构建15
1.5实例16
1.6扩展知识与阅读21
1.7本章小结22
第2章文档索引及管理23
2.1文档索引概述23
2.2建立索引24
2.3通过映像Mapping配置索引28
2.3.1在索引中使用映像28
2.3.2管理/配置映像29
2.3.3获取映像信息30
2.3.4删除映像31
2.4管理索引文件31
2.4.1打开、关闭、检测、删除索引文件31
2.4.2清空索引缓存32
2.4.3刷新索引数据32
[1][2][1][3]2.4.4优化索引数据32
2.4.5Flush操作33
2.5设置中文分词器33
2.6对文档的其他操作34
2.6.1获取指定的文档信息34
2.6.2删除文档中的信息36
2.6.3数据更新36
2.6.4基于POST方式批量获取文档39
2.6.5删除部分文档40
2.7扩展知识与阅读40
2.8本章小结41
第3章信息检索与结果过滤42
3.1实验数据集描述42
3.2简单检索44
3.3基本检索45
3.3.1设置不同字段的排序权重45
3.3.2指定返回的字段子集46
3.3.3Term查询、Terms查询、Wildcard通配符查询48
3.3.4Match、Match_all、Match_phrase查询49
3.3.5Query_string查询50
3.3.6Prefix、Range查询51
3.3.7More_like_this、Fuzzy_like_this查询52
3.3.8跨字段检索54
3.4Filter概述54
3.5常用Filter及其应用56
3.5.1And Filter及Or Filter56
3.5.2Bool Filter57
3.5.3Exists Filter和Missing Filter57
3.5.4Type Filter58
3.5.5Match_all Filter58
3.5.6Not Filter59
3.5.7Query Filter59
3.6复合查询60
3.7结果排序62
3.8扩展知识与阅读63
3.9本章小结63
第4章信息统计分析与搜索提示64
4.1Facets概述64
4.2各种不同的Facets统计66
4.2.1Terms Facets: 指定字段的分布情况统计66
4.2.2Range Facets: 在某个范围的分布情况统计70
4.2.3Histogram Facets72
4.2.4Date_histogram Facets75
4.2.5Statistical Facets77
4.2.6Terms_stats Facets79
4.3Aggregations80
4.3.1概述80
4.3.2最值、求和、均值统计82
4.3.3Stats Aggregations及Extended Stats Aggregations84
4.3.4Terms Aggregations85
4.3.5Range Aggregations89
4.3.6Date_range Aggregations92
4.3.7Histogram Aggregations93
4.3.8Date_histogram Aggregations96
4.3.9Filter Aggregations98
4.3.10Missing Aggregations101
4.4搜索提示101
4.5扩展知识与阅读102
4.6本章小结102
第5章Elasticsearch部分功能的Java客户端实现103
5.1Elasticsearch节点实例化103
5.1.1通过Maven添加对Elasticsearch依赖103
5.1.2初始化Elasticsearch Client105
5.2索引数据107
5.2.1准备JSON数据107
5.2.2索引JSON数据108
5.3对索引文档的操作110
5.3.1获取索引文档110
5.3.2删除索引文档111
5.3.3更新索引文档112
5.3.4批量操作索引文件113
5.3.5简单的统计操作113
5.4信息检索114
5.4.1概述114
5.4.2MultiSearch115
5.4.3Query DSL概述116
5.4.4MatchQuery117
5.4.5MatchAllQuery117
5.4.6MultiMatchQuery118
5.4.7BoolQuery118
5.4.8TermQuery120
5.4.9WildcardQuery120
5.4.10QueryString121
5.4.11MoreLikeThis121
5.4.12Filter概述123
5.4.13TermFilter123
5.4.14ExistsFilter123
5.4.15MatchAllFilter124
5.4.16QueryFilter124
5.4.17RangeFilter125
5.4.18TypeFilter126
5.4.19过滤器间的组合: BoolFilter、NotFilter、OrFilter、AndFilter126
5.5统计分析127
5.5.1Facets127
5.5.2Aggregations129
5.6对检索结果的进一步处理130
5.6.1控制每页的显示数量及显示排序依据130
5.6.2基于Scroll方法的检索结果及其分页131
5.6.3高亮显示检索词133
5.7扩展知识与阅读134
5.8本章小结134
第6章Elasticsearch配置与集群管理136
6.1Elasticsearch部分基本配置及其说明136
6.2提高索引和查询效率的策略139
6.3监控集群状态140
6.4控制索引分片与副本分配143
6.5扩展知识与阅读144
6.6本章小结144
第7章基于Logstash的日志处理145
7.1概述145
7.2Input: 处理输入的日志数据148
7.2.1处理基于File方式输入的日志信息148
7.2.2处理基于Generator产生的日志信息149
7.2.3处理基于Log4j的日志信息150
7.2.4处理基于Redis的日志信息151
7.2.5处理基于Stdin方式输入的信息154
7.2.6处理基于TCP传输的日志数据154
7.2.7处理基于UDP传输的日志数据157
7.3Codecs: 格式化日志数据159
7.3.1JSON格式159
7.3.2Rubydebug格式161
7.3.3Plain格式162
7.4基于Filter的日志处理与转换162
7.4.1JSON Filter163
7.4.2Grok Filter164
7.4.3Kv Filter166
7.5Output: 处理输出的日志数据167
7.5.1将处理后的日志输出到Elasticsearch中168
7.5.2将处理后的日志输出至文件中169
7.5.3将处理后的部分日志输出到csv格式的文件中170
7.5.4将处理后的日志输出到redis中171
7.5.5将处理后的部分日志通过UDP协议输出173
7.5.6将处理后的部分日志通过TCP协议输出175
7.5.7将收集到的日志信息传输到自定义的HTTP接口中178
7.6扩展知识与阅读178
7.7本章小结178
第8章基于Kibana的数据分析可视化180
8.1安装Kibana181
8.2Kibana概述182
8.2.1在仪表盘上添加新行183
8.2.2在行中添加新面板183
8.2.3设置Query和Filtering185
8.3常用面板类型187
8.3.1Histogram187
8.3.2Table189
8.3.3Map和Bettermap190
8.3.4Terms191
8.3.5Text192
8.3.6Sparklines193
8.3.7Trends194
8.4网站性能监控可视化应用的设计与实现195
8.4.1概述195
8.4.2Page View196
8.4.3响应/请求时间197
8.4.4流量走势与统计198
8.4.5状态码监控200
8.4.6UA行203
8.5Kibana V4简介205
8.5.1新建视图205
8.5.2建立Dashboard207
8.5.3配置208
8.6扩展知识与阅读208
8.7本章小结209
第9章网络信息检索与分析实践210
9.1信息采集210
9.2基于Python的信息检索及Web端设计214
9.2.1安装Python及Django214
9.2.2安装Elasticsearch的Python插件215
9.2.3Web页面设计216
9.3基于Logstash的日志处理219
9.3.1安装和配置Nginx219
9.3.2设计面向日志文件的Pattern220
9.3.3在Logstash中进行相关配置220
9.4基于Kibana的日志分析结果可视化设计与实现222
9.4.1图表1: 状态码走势分析222
9.4.2图表2: 查询词分析224
9.4.3图表3: 分析各状态码随时间的变迁情况224
9.4.4集成上述图表226
9.5扩展知识与阅读226
9.6本章小结227
参考文献228
前言
云计算、智慧城市、移动互联网、大数据与物联网已经成为大数据时代的前瞻技术,实现了人、机器与实物的多维互联互通,监测数据、内容数据、社交数据、关系数据裂变式增长,大数据时代全方位地到来。大数据具有多(体量大)、快(生成速度快)、好(价值大)、省(高效)的特征,传统的信息搜索、数据挖掘与知识呈现理论技术难以满足当下多样化的需求。大数据的理念与理论已经成为了人所共知的科学常识,但是大数据搜索、挖掘与可视化等落地的工程实践尚有较大距离,也是当下的工程急需。
本书从分布式大数据搜索、日志挖掘与可视化三个角度出发,以非结构化文本信息、半结构化的日志数据为处理对象,进行宏观解决方案与微观方法技巧全面阐释。具体地说,如何利用在全文检索开源软件Lucene之上的Elasticsearch对大数据进行分布式计算与全文检索;如何利用Logstash对日志文件智能分析与处理;如何利用Web接口Kibana对日志进行高效的搜索、可视化、分析等各种操作是,是本书的论述重点。
从工程实践的角度掌握ElasticSearch、Logstash、Kibana的基本使用方法和技巧,很有必要。目前,国内专门针对ElasticSearch、Logstash、Kibana进行介绍的书很少,本书是目前国内较早的一本综合介绍ELK架构的编著,涉及范围广泛,内容新颖,条理清晰,组织合理。
高凯老师是我多年的朋友,我们都在大数据搜索与挖掘方向上从事教学、科研与开发工作。高凯博士严谨的治学态度、理论联系实际的做法以及敬业的态度也一直为我所学习。非常荣幸能够有这个机会来为高老师的新著作序,认真拜读后,我以为本书实战性很强,是大数据搜索与挖掘所需的上乘之作,是大数据“知著、见微、晓意”的必备工具,值得推荐!
建立在分布式系统之上的大数据搜索与挖掘应用,是当今IT业的研究与工程实践热点之一。在DBEngines公布的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索引数据,更希望它支持分布式处理并支持系统扩展,能够实时搜索,并且稳定、可靠。[1][2]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的官方文档。在写作过程中,也参考了相关文献和互联网上众多热心网友提供的素材,在此谨向这些文献的作者、热心网友以及为本书提供帮助的老师,特别是那些由于篇幅所限未及在参考文献中提及的相关文献的作者和网站,致以诚挚的谢意和崇高的敬意。
由于我们的学识、水平均有限,书中不妥之处在所难免,恳请广大读者批评指正。
编者
2015.5.5