编辑推荐
本书着重介绍关于Elastic Stack的基本知识,带领读者深入了解Elastic Stack的实际应用,通过对数据搜索、日志挖掘与结果可视化展示等相关功能的介绍和实战,引导读者掌握相关的大数据搜索、日志分析和可视化技术。本书还详细介绍了X-Pack和Beats组件,展示了在Elastic Stack中的一些实践。
内容简介
对大数据的搜索、挖掘、可视化以及集群管理,在当今的“互联网+”时代是很有必要的。本书的分布式大数据搜索、日志挖掘、可视化、集群监控与管理等方案是基于Elastic Stack 5而提出的,它能有效应对海量大数据所带来的分布式数据存储与处理、全文检索、日志挖掘、可视化、集群管理与性能监控等问题。构建在全文检索开源软件Lucene之上的Elasticsearch,不仅能对海量规模的数据完成分布式索引与检索,还能提供数据聚合分析;Logstash能有效处理来源于各种数据源的日志信息;Kibana是为Elasticsearch提供数据分析的Web接口,可使用它对数据进行高效的搜索、可视化、分析等操作;X�睵ack监控组件可通过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�睵ack的系统运行监控229
8.1X�睵ack概述229
8.2安装X�睵ack230
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�睵ack的系统监控335
11.7扩展知识与阅读337
11.8本章小结337
参考文献339
精彩书摘
Chapter 5第5章Elasticsearch配置与集群管理“Elasticsearch comes with reasonable defaults for most settings. Before you set out to tweak and tune the configuration,make sure you understand what are you trying to accomplish and the consequences. The primary way of configuring a node is via the elasticsearch.yml file. This template lists the most important settings you may want to configure for a production cluster.”——elasticsearch.yml
基于Elasticsearch,可以完成很多和信息存储、检索等相关的问题。本章将对Elasticsearch的配置、集群管理等进行说明,并对提高索引和查询效率的策略进行简述。通过对本章的学习,能达到更好地配置和使用Elasticsearch的目的。
5.1Elasticsearch部分基本配置及其说明
Elasticsearch的大多数配置信息位于{es_home}/config/elasticsearch.yml文件中,所有配置都可使用环境变量。另一个是日志配置文件{es_home}/config/log4j2.properties,它对日志进行配置,其设置按普通log4j2配置文件来设置即可。
Elasticsearch.yml负责设置服务器的默认状态,Elasticsearch的大多数配置在该配置文件中完成。参考文献[Open,2014a][子猴博客,2014],本节给出针对elasticsearch.yml的部分配置设置信息,包括:
(1) 集群名称cluster.name: 例如“cluster.name: elasticsearch”。设置好以后,会自动发现在同一网段下的节点,如果在同一网段下有多个集群,可用这个属性来区分不同的集群。
(2) 节点名称node.name: Elasticsearch启动时会自动创建节点名称,但也可在node.name中配置,例如“node.name: "Franz Kafka"”。指定节点名称有助于利用API访问具体的节点。虽然默认的集群启动时会给每个节点初始化一个名称,但仍然建议在这里手动设置节点名称。
(3) 节点是否为master主节点: 每个节点都可被配置成为主节点,默认值为true,如“node.master: true”。在node.master: true中进行设置,目的是指定该节点是否有资格被选举成为node,默认集群中的第一台机器为master,如果这台机器宕机就会重新选举master。
[1][2][1][3](4) 设置节点是否存储数据: 默认值为true,即设置node.data的值为“node.data: true”。如果希望节点只是一个master但不存储数据,则应当设置为代码段5.1所示的属性(注: 的#标记后的文字是注释说明)。#代码段5.1: 设置节点是master但不存储数据
node.master: true
node.data: false
如果希望节点只存储数据但不是一个master,则应当设置为代码段5.2所示的属性。#代码段5.2: 设置节点不作为master但存储数据
node.master: false
node.data: true
如果既不希望该节点为一个master也不想它存储数据,则应该设置为代码段5.3所示的属性。对部分相关配置的说明如下:#代码段5.3: 设置节点既不是master也不存储数据
node.master: false
node.data: false
(1
大数据搜索与挖掘及可视化管理方案(第3版) 下载 mobi epub pdf txt 电子书 格式