第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章基于XPack的系统运行监控229
8.1XPack概述229
8.2安装XPack230
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基于XPack的系统监控335
11.7扩展知识与阅读337
11.8本章小结337
参考文献339