elasticsearch权威指南-中文

网站

更多书籍点击进入>> CiCi岛

下载

电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍

  • 电子书下载(皮皮云盘-点击“普通下载”)
  • 购买正版

封页

elasticsearch权威指南-中文_第1张图片

编辑推荐

本书着重介绍关于Elastic Stack的基本知识,带领读者深入了解Elastic Stack的实际应用,通过对数据搜索、日志挖掘与结果可视化展示等相关功能的介绍和实战,引导读者掌握相关的大数据搜索、日志分析和可视化技术。本书还详细介绍了X-Pack和Beats组件,展示了在Elastic Stack中的一些实践。

内容简介

对大数据的搜索、挖掘、可视化以及集群管理,在当今的“互联网 ”时代是很有必要的。本书的分布式大数据搜索、日志挖掘、可视化、集群监控与管理等方案是基于Elastic Stack 5而提出的,它能有效应对海量大数据所带来的分布式数据存储与处理、全文检索、日志挖掘、可视化、集群管理与性能监控等问题。构建在全文检索开源软件Lucene之上的Elasticsearch,不仅能对海量规模的数据完成分布式索引与检索,还能提供数据聚合分析;Logstash能有效处理来源于各种数据源的日志信息;Kibana是为Elasticsearch提供数据分析的Web接口,可使用它对数据进行高效的搜索、可视化、分析等操作;XPack监控组件可通过Kibana监控集群的状态;Beats是采集系统监控数据的代理。了解基于Elastic Stack 5的各相关组件并掌握它们的基本使用方法和技巧,对于大数据搜索与挖掘及管理是很有必要的。 和第1版、第2版相比,本书力求反映基于Elastic Stack 5架构的*成果,内容新颖,强调实践。本书可为高等学校相关专业(如计算机科学与技术、软件工程、物联网、信息管理与信息系统、数据科学与大数据技术)学生的学习和科研工作提供帮助,同时对于从事大数据搜索与挖掘、日志分析、信息可视化、集群管理与性能监控的工程技术人员和希望了解网络信息检索技术的人员也具有较高的参考价值和工程应用价值。

作者简介

作者简介高凯,本书主编。教授,博士毕业于上海交通大学计算机应用技术专业,省级重点学科“计算机软件与理论”中“信息检索与云计算”方向学术带头人,研究生导师,中国计算机学会高级会员,中国计算机学会计算机应用专委会常委,International Journal of Computer Applications in Technology副主编;主要研究方向为大数据搜索与挖掘、自然语言处理、网络信息检索、社会计算等;近几年出版了《信息检索与智能处理》、《大数据搜索与挖掘》、《网络信息检索技术及搜索引擎系统开发》等学术专著及多部规划教材;在Expert Systems With Applications、International Journal on Intelligent Information and Database System、International Journal on Modelling, Identification and Control、《中文信息学报》、《电子学报》、《小型微型计算机系统》等学术期刊以及在PAKDD等国际学术会议上发表学术论文五十余篇;主持及参与国家自然科学基金课题、省级科技支撑计划课题、省级自然科学基金课题等多项,申请计算机软件著作权登记十余项。

目 录

 

目录

 

第1章概述1

1.1Elasticsearch概述3

1.1.1Elasticsearch的安装与简单配置4

1.1.2Elasticsearch API的简单使用方式7

1.2Logstash7

1.3Kibana8

1.4其他8

1.5扩展知识与阅读9

1.6本章小结10

第2章文档索引及管理11

2.1文档索引概述11

2.2Head: Elasticsearch的数据管理工具13

2.3建立索引16

2.4通过映像mappings配置索引20

2.4.1在索引中使用映像21

2.4.2管理/配置映像22

2.4.3获取映像信息22

2.4.4删除映像24

2.5管理索引文件24

2.5.1打开、关闭、检测、删除索引文件24

2.5.2清空索引缓存25

2.5.3刷新索引数据25

2.5.4优化索引数据26

2.5.5Flush操作26[1][2][1][3]2.6设置中文分析器26

2.7对文档的其他操作29

2.7.1获取指定的文档信息29

2.7.2删除文档中的信息31

2.7.3数据更新31

2.7.4基于POST方式批量获取文档34

2.8实例36

2.9扩展知识与阅读40

2.10本章小结41

第3章信息检索与聚合42

3.1实验数据集描述43

3.2基本检索44

3.2.1检索方式44

3.2.2query查询45

3.2.3from / size查询45

3.2.4查询结果排序46

3.2.5高亮搜索词48

3.2.6查询模板50

3.3检索进阶50

3.3.1全文检索51

3.3.2词项检索54

3.3.3复合查询58

3.3.4跨度查询60

3.3.5特殊查询63

3.3.6脚本script64

3.4聚合67

3.4.1metrics aggregations68

3.4.2bucket aggregations72

3.4.3pipeline aggregations81

3.4.4matrix aggregations85

3.5实例87

3.6扩展知识与阅读92

3.7本章小结93

第4章面向Java的Elasticsearch Client部分功能实现94

4.1Elasticsearch节点实例化94

4.1.1通过Maven添加Elasticsearch依赖94

4.1.2初始化TransportClient96

4.2索引数据98

4.2.1准备JSON数据98

4.2.2索引JSON数据100

4.3对索引文档的操作101

4.3.1获取索引文档数据101

4.3.2删除索引文档104

4.3.3更新索引文档105

4.3.4批量操作索引文件105

4.4信息检索107

4.4.1概述107

4.4.2MultiSearch109

4.4.3Search template110

4.4.4Query DSL概述110

4.4.5matchAllQuery111

4.4.6全文检索的部分方法112

4.4.7词项检索的部分方法115

4.4.8复合查询的部分方法119

4.4.9跨度查询的部分方法121

4.4.10特殊查询124

4.5聚合126

4.5.1Metrics聚合126

4.5.2Bucket聚合130

4.6对检索结果的进一步处理134

4.6.1控制每页的显示数量及显示排序依据134

4.6.2基于scroll的检索结果及其分页135

4.7实例137

4.7.1在Elasticsearch中建立索引137

4.7.2连接Elasticsearch138

4.7.3信息采集与索引构建139

4.7.4搜索模块的实现141

4.7.5推荐模块的实现142

4.7.6聚合模块的实现143

4.8扩展知识与阅读145

4.9本章小结145

第5章Elasticsearch配置与集群管理146

5.1Elasticsearch部分基本配置及其说明146

5.2索引和查询效率的优化149

5.3监控集群状态150

5.4控制索引分片与副本分配152

5.5集群管理154

5.6扩展知识与阅读155

5.7本章小结156

第6章基于Logstash的日志处理157

6.1概述158

6.2Input: 处理输入的日志数据160

6.2.1处理基于file方式输入的日志信息161

6.2.2处理基于generator产生的日志信息162

6.2.3处理基于log4j的日志信息163

6.2.4处理基于redis的日志信息165

6.2.5处理基于stdin方式输入的信息168

6.2.6处理基于TCP传输的日志数据169

6.2.7处理基于UDP传输的日志数据173

6.3codecs: 格式化日志数据174

6.3.1JSON格式175

6.3.2rubydebug格式177

6.3.3plain格式177

6.4基于filter的日志处理与转换178

6.4.1JSON filter178

6.4.2grok filter180

6.4.3kv filter182

6.5output: 输出日志数据184

6.5.1将处理后的日志输出到Elasticsearch中185

6.5.2将处理后的日志输出至文件中186

6.5.3将处理后的部分日志输出到csv格式的文件中187

6.5.4将处理后的日志输出到redis中189

6.5.5将处理后的部分日志通过UDP协议输出190

6.5.6将处理后的部分日志通过TCP协议输出192

6.5.7将收集到的日志信息传输到自定义的HTTP接口中195

6.6扩展知识与阅读196

6.7本章小结197

第7章基于Kibana的数据分析可视化198

7.1Kibana概述199

7.2安装Kibana199

7.3使用Management管理配置200

7.3.1添加index pattern200

7.3.2高级设置202

7.3.3管理已保存的检索、可视化和仪表板205

7.4使用Discover执行查询206

7.4.1设置时间过滤器206

7.4.2在index pattern中执行搜索207

7.4.3字段过滤208

7.4.4查看文档数据210

7.5使用Visualize创建统计图表211

7.6使用Dashboard创建动态仪表板214

7.6.1创建新的动态仪表板215

7.6.2打开已保存的动态仪表板215

7.6.3分享动态仪表板216

7.7使用Timelion创建时间线216

7.8使用Dev Tools执行命令行218

7.8.1在Console中执行命令218

7.8.2Console的快捷键220

7.8.3Console的配置221

7.9网站性能监控可视化应用的设计与实现221

7.9.1概述222

7.9.2使用Visualize实现可视化222

7.9.3使用Dashboard整合可视化结果225

7.10扩展知识与阅读227

7.11本章小结227

第8章基于XPack的系统运行监控229

8.1XPack概述229

8.2安装XPack230

8.3Security插件与安全性231

8.3.1身份验证机制与用户管理231

8.3.2匿名访问233

8.3.3基于域的用户认证234

8.3.4基于角色的访问权限配置236

8.3.5IP过滤238

8.3.6带有身份认证的TransportClient240

8.3.7带有身份认证的RESTful命令243

8.4使用Monitoring监控系统运行状态243

8.4.1系统运行状态监控243

8.4.2配置Monitoring247

8.4.3搭建独立的Monitoring集群248

8.5Alerting插件与异常事件警报250

8.5.1通过RESTful方式设置监视器250

8.5.2通过Java程序设置监视器254

8.6Reporting与报告生成256

8.6.1在程序中生成报告256

8.6.2通过监视器自动生成报告257

8.7使用Graph探索数据关联259

8.8扩展知识与阅读261

8.9本章小结261

第9章基于Beats的数据解析传输262

9.1基于Packetbeat的网络数据包传输263

9.1.1概述263

9.1.2安装263

9.1.3配置264

9.1.4加载索引模板266

9.1.5启动和关闭267

9.1.6使用Kibana进行展示268

9.2基于Filebeat的日志传输269

9.2.1概述269

9.2.2安装和配置269

9.2.3启动和关闭272

9.2.4使用Kibana进行展示272

9.3基于Metricbeat的系统指标数据传输273

9.3.1概述273

9.3.2安装和配置274

9.3.3启动和关闭275

9.3.4使用Kibana进行展示276

9.4基于Winlogbeat的Windows事件日志数据传输277

9.4.1概述277

9.4.2安装278

9.4.3配置279

9.4.4启动和关闭282

9.4.5使用Kibana进行展示283

9.5扩展知识与阅读284

9.6本章小结285

第10章网络信息检索与分析实践1286

10.1信息采集286

10.2基于Python的信息检索及Web端设计291

10.2.1安装Python及Django291

10.2.2安装Elasticsearch的Python插件292

10.2.3Web页面设计293

10.3基于Logstash的日志处理296

10.3.1安装和配置Nginx297

10.3.2设计面向日志文件的pattern297

10.3.3在Logstash中进行相关配置298

10.4基于Kibana的日志分析结果可视化设计与实现299

10.4.1图表1: 状态码走势分析300

10.4.2图表2: 查询词分析302

10.4.3图表3: 分析各状态码随时间的变迁302

10.4.4集成图表304

10.5扩展知识与阅读304

10.6本章小结305

第11章网络信息检索与分析实践2306

11.1面向动态网站的信息采集307

11.1.1软件准备307

11.1.2浏览器驱动程序准备307

11.1.3创建索引和映像308

11.1.4导入依赖309

11.1.5数据采集310

11.2基于Spring MVC的信息检索及Web程序设计317

11.2.1创建和配置Spring MVC项目317

11.2.2前端页面设计319

11.2.3后端控制器类324

11.3基于Logstash的日志处理329

11.4基于Beats的数据传输330

11.5基于Kibana的数据可视化331

11.5.1可视化索引文件中的信息331

11.5.2对Logstash、Beats的可视化展示333

11.6基于XPack的系统监控335

11.7扩展知识与阅读337

11.8本章小结337

参考文献339

前 言

第3版前言

 

随着海量数据管理技术在国民经济以及互联网 、物联网、移动计算等各个领域的广泛应用,分布式大数据搜索、日志分析与挖掘、数据可视化、集群管理与性能监控等问题正日益受到IT人员的普遍关注。开源的、基于Lucene的全文搜索引擎Elasticsearch以其独到的分布式数据处理能力,正发挥着越来越重要的作用。根据国际权威的数据库产品评测机构DBEngines统计,从2016年1月起,Elasticsearch已超过Solr等,成为排名第一的搜索引擎类应用,并且这种成长势头目前仍非常强劲。在Elasticsearch基础上,也衍生出Logstash、Kibana、Beats、XPack、Elastic Cloud、Security、Alerting、Monitoring、Graph、Reporting、ESHadoop等诸多相关组件,它们构成了Elastic Stack的核心,为编程人员提供了一个分布式可扩展的信息存储和全文检索机制、基于Logstash的日志处理机制、基于Kibana的挖掘结果可视化机制等。不仅如此,还有Shield(安全和管理插件,如权限控制、加密通信、审计等)、Watcher(性能监控平台等)、Beats(提供了在应用服务器间传输事务信息的分析器PacketBeat、从服务器端传送日志的FileBeat、分时段采集服务器上操作系统和服务的各项指标的MetricBeat、负责传输Windows事件日志的WinlogBeat)等中间件。在实时大数据处理的应用中,上述软件通常配合使用。2017年上半年,谷歌宣布将与Elastic建立合作伙伴关系,以提供用于Elasticsearch和Kibana开源软件的完整版本。除提供免费的服务外,谷歌的服务还将包括仅适用于初创公司的高端订阅功能(如图形分析、警报和商业支持等)。因此,从实战的角度掌握Elasticsearch、Logstash、Kibana、XPack、Beats等的入门技巧和基本使用方法,很有必要。

本书第1版《实战Elasticsearch、Logstash、Kibana——分布式大数据搜索与日志挖掘及可视化解决方案》以及本书第2版《大数据搜索与日志挖掘及可视化方案——Elastic Stack: Elasticsearch、Logstash、Kibana》,从出版发行到现在,虽时间不长,但已重印了多次。考虑到部分读者对本书第1版、第2版的修改意见,我们对其中的部分内容进行了必要的补充和修改、完善,对Elastic Stack 5新推出的5.x版本进行了介绍。同本书的第1版和第2版一样,第3版仍强调实践和面向初学者,并通过实战讲解的方式,让读者更好地了解Elasticsearch、Logstash、Kibana、XPack、Beats等的应用。除第10章兼顾老版本外,其余章节均在Elastic Stack 5的基础上完成。全书内容包括Elasticsearch的架构简介、文档索引及管理、信息检索与聚合、面向Java的Elasticsearch Client部分功能实现、Elasticsearch配置与集群管理、基于Logstash的日志处理、基于Kibana的数据分析可视化、基于XPack的系统运行监控、基于Beats的数据解析传输、应用实例等。本书介绍的基于Elastic Stack 5架构的分布式大数据搜索、日志挖掘、可视化、集群管理与性能监控虽都是入门方案,但对有一定基础的中、高级使用者亦有一定的参考和工程应用价值。

本书第3版由高凯提出写作大纲并撰写了第1章,高莘、岳重阳完成了全书其余章节的内容,并由高凯审校了全书。在本书的写作过程中,也得到了多方面的支持与帮助。阮冬茹、高国江、李媚、华宇、何晓艺、张姗姗、孟天宏、刘多星、高成亮、毛雨欣、聂颖杰、韩佳等均提供了协助。在写作过程中,参考了Elastic Stack官方网站https://www.elastic.co/以及互联网上众多热心网友提供的素材。本书的顺利完成也得益于参阅了大量的文献及网上资料。在此谨向这些文献的作者、热心网友以及为本书提供帮助的老师,特别是那些由于篇幅所限未在参考文献中提及的相关文献的作者和网站,致以诚挚的谢意和崇高的敬意。

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

 

编者

2017年6月[1][2]

 

第2版前言

 

本书第1版从出版发行到现在,虽仅过去短短的半年时间,但在这期间,伴随着《中共中央关于制定国民经济和社会发展第十三个五年规划的建议》中国家大数据发展战略的实施,伴随着海量数据管理技术在国民经济以及互联网 、物联网、移动计算等各个领域的广泛应用,分布式大数据搜索与日志挖掘及可视化解决方案正日益受到各行各业人员的普遍关注。开源的、基于Lucene的全文搜索引擎Elasticsearch以其独到的分布式数据处理能力,正发挥着越来越重要的作用。根据国际权威的数据库产品评测机构DBEngines统计,在2016年1月,Elasticsearch已超过Solr等,成为排名第一的搜索引擎类应用。

ELK Stack是以Elasticsearch、Logstash、Kibana三个开源软件为主的大数据处理工具集,也是目前开源的最流行的大数据分析解决方案,它为编程人员提供了一个分布式可扩展的信息存储和全文检索机制、基于Logstash的日志处理机制、基于Kibana的挖掘结果可视化的机制。不仅如此,ELK Stack还有Shield(安全和管理插件,如权限控制、加密通信、审计等)、Watcher(性能监控平台等)、Beats(官方提供了用来收集日志的Filebeat、用来收集系统基础设置数据的Topbeat、统计收集网络信息的Packetbeat)等中间件。在实时大数据处理的应用中,上述软件通常配合使用。因此,从实战的角度掌握Elasticsearch、Logstash、Kibana等软件的基本使用方法和技巧,很有必要。

考虑到部分读者对本书第1版的修改意见,我们对其中的部分内容进行了必要的补充和修改、完善。一方面,对ELK Stack的最新版本进行了简述,力求反映ELK Stack的最新成果;同时,考虑到与本书第1版的内容衔接,对部分使用上无差异的操作,仍旧以Elasticsearch、Logstash、Kibana的经典版本为基础进行介绍。另一方面,对Elasticsearch中涉及索引、检索、统计、Java实现、集群管理的内容(主要涉及第1版中的第2~6章的内容),给出了实例。同第1版一样,本书第2版仍强调实践和面向初学者,并通过实战讲解的方式,让读者更好地了解ELK Stack的应用。全书涵盖ELK Stack简介、文档索引与处理、信息检索与过滤、信息统计与分析、基于Java客户端的Elasticsearch功能实现、Elasticsearch配置与管理、基于Logstash的网络日志处理、基于Kibana的分析结果可视化、应用实例等内容。本书介绍的基于ELK Stack架构的分布式大数据搜索与日志挖掘及可视化是入门方案,对有一定基础的中、高级使用者亦有一定的参考和工程应用价值。

全书由高凯提出写作大纲。第1章、第6章和第7章中的部分内容由高凯撰写,其余各章由高莘撰写,最后由高凯完成全书统稿和审校工作。书中部分实验数据集亦由高凯提供。在本书的写作过程中,也得到了多方面的支持与帮助。第2~6章中的实例部分分别由何晓艺、张姗姗、孟天宏、刘多星等参加编写。同时,我们也参考了相关文献和互联网上众多热心网友提供的素材。本书的顺利完成也得益于参阅了大量的相关工作及研究成果,在此谨向这些文献的作者、热心网友,以及为本书提供帮助的老师,特别是那些由于篇幅所限未及在参考文献中提及的相关文献的作者和网站,致以诚挚的谢意和崇高的敬意。

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

 

编者

[1][2]

 

第1版前言

 

建立在分布式系统之上的大数据搜索与挖掘应用,是当今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索引数据,更希望它支持分布式处理并支持系统扩展,能够实时搜索,并且稳定、可靠。

Elasticsearch是一个基于Lucene的开源分布式信息检索架构和全文搜索工具。构建在Elasticsearch基础上的日志处理工具Logstash和信息可视化组件Kibana,能有效衔接并高效处理由Elasticsearch索引的分布式数据,[1][2]三者优势互补,各司其职,共同完成网络大数据分布式存储、倒排索引、全文检索、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的官方文档。在写作过程中,参考了相关文献和互联网上众多热心网友提供的素材,在此谨向这些文献的作者、热心网友以及为本书提供帮助的老师,特别是那些由于篇幅所限未及在参考文献中提及的相关文献的作者和网站,致以诚挚的谢意和崇高的敬意。

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

 

编者

媒体评论

评论

你可能感兴趣的:(elasticsearch权威指南-中文)