第1章 Elastic Stack概述 1
1.1 ELK Stack简介 1
1.1.1 Logstash 2
1.1.2 Elasticsearch 3
1.1.3 Kibana 3
1.2 Elastic Stack的诞生 3
1.3 谁在使用Elastic Stack? 4
1.3.1 Salesforce 5
1.3.2 CERN 5
1.3.3 Green Man Gaming 5
1.4 竞争者 6
1.5 设置Elastic Stack的使用环境 6
1.5.1 安装Java 6
1.5.2 安装Elasticsearch 9
1.5.3 安装Kibana 12
1.5.4 安装Logstash 15
1.5.5 安装Filebeat 16
1.6 X-Pack简介 18
1.7 本章小结 19
第2章 走进Elasticsearch 20
2.1 Elasticsearch的起源 20
2.2 了解Elasticsearch的体系结构 22
2.2.1 推荐的集群配置 23
2.2.2 了解文档处理 24
2.3 Elasticsearch API 25
2.3.1 有关文档的API 25
2.3.2 有关搜索的API 38
2.3.3 有关索引的API 43
2.3.4 Cat API 51
2.3.5 Cluster API 52
2.4 Query DSL 52
2.5 聚合 52
2.5.1 Buckets聚合 52
2.5.2 Metrics聚合 59
2.6 Painless脚本说明 64
2.7 本章小结 66
第3章 探索Logstash及其组件 67
3.1 Logstash简介 68
3.2 为什么需要用Logstash 68
3.3 Logstash的特点 69
3.4 Logstash插件的体系架构 70
3.5 Logstash配置文件的结构 71
3.5.1 值类型 71
3.5.2 条件判断的用法 73
3.6 插件种类 74
3.6.1 数据输入插件Input 74
3.6.2 数据过滤插件Filter 74
3.6.3 数据输出插件Output 75
3.6.4 编解码插件Codec 75
3.7 学习数据输入插件Input 76
3.7.1 stdin 77
3.7.2 file 78
3.7.3 path 79
3.7.4 udp 82
3.8 学习数据过滤插件Filter 83
3.8.1 grok 84
3.8.2 mutate 86
3.8.3 csv 89
3.9 学习数据输出插件Output 90
3.9.1 stdout 90
3.9.2 file 91
3.9.3 elasticsearch 93
3.10 学习编解码插件Codec 95
3.10.1 rubydebug 95
3.10.2 json 96
3.10.3 avro 96
3.10.4 multiline 97
3.11 插件的命令行操作 99
3.11.1 列出插件列表 100
3.11.2 安装插件 100
3.11.3 移除插件 101
3.11.4 更新插件 101
3.11.5 压缩插件 102
3.11.6 解压插件 102
3.12 Logstash的命令行操作 103
3.13 使用Logstash的小技巧 105
3.13.1 引用字段及其值 106
3.13.2 添加自定义的grok模式 106
3.13.3 Logstash不显示任何输出信息 107
3.14 用于解析日志的Logstash配置 108
3.14.1 Catalina日志示例 108
3.14.2 Tomcat日志示例 108
3.14.3 基于grok模式的Catalina日志 109
3.14.4 基于grok模式的Tomcat日志示例 109
3.14.5 Logstash配置文件 110
3.15 监控系统相应状态信息的API 112
3.15.1 节点信息API 113
3.15.2 插件信息API 115
3.15.3 节点状态API 116
3.15.4 Hot threads API 116
3.16 本章小结 117
第4章 Kibana界面 118
4.1 Kibana及其功能 118
4.2 探索Discover界面 120
4.3 时间过滤器 121
4.3.1 快捷时间过滤器 122
4.3.2 相对时间过滤器 122
4.3.3 绝对时间过滤器 122
4.3.4 自动刷新 122
4.4 查询和搜索数据 123
4.4.1 全文检索 123
4.4.2 范围搜索 123
4.4.3 布尔搜索 124
4.4.4 邻近搜索 124
4.4.5 通配符搜索 124
4.4.6 正则表达式搜索 125
4.4.7 分组 125
4.5 字段和过滤器 125
4.5.1 过滤字段 125
4.5.2 过滤器的功能 126
4.6 查询页面选项 127
4.7 探索Visualize界面 127
4.7.1 了解聚合 129
4.7.2 可视化画布 133
4.7.3 面积图 133
4.7.4 数据表 133
4.7.5 折线图 133
4.7.6 气泡图 133
4.7.7 Markdown部件 134
4.7.8 Metric 134
4.7.9 饼图 134
4.7.10 标签云 134
4.7.11 瓦片地图 134
4.7.12 时间序列 134
4.7.13 直方图 134
4.8 探索Dashboard界面 135
4.9 了解Timelion 137
4.10 探索开发者工具 139
4.11 探索设置界面 140
4.11.1 索引模式 141
4.11.2 已保存的对象 141
4.11.3 高级设置 141
4.11.4 状态 143
4.12 综合应用 143
4.12.1 输入数据 143
4.12.2 创建Logstash配置文件 144
4.12.3 使用Kibana 147
4.12.4 在Kibana中创建面板 155
4.13 本章小结 157
第5章 使用Beats 158
5.1 Beats简介 158
5.2 Beats与Logstash的不同之处 159
5.3 Beats如何融入Elastic Stack 160
5.4 不同类型的Beats组件概述 162
5.4.1 Elastic团队开发的Beats组件 162
5.4.2 社区开发者开发的Beats组件 164
5.5 Elastic团队开发的Beats组件 164
5.5.1 了解Filebeat 165
5.5.2 理解Metricbeat 172
5.5.3 理解Packetbeat 177
5.6 社区开发者开发的Beats组件 179
5.7 Beats在Elastic Stack中的实战 182
5.7.1 用Logstash和Kibana探索Metricbeat 182
5.7.2 用Elasticsearch和Kibana探索Elasticbeat 191
5.8 本章小结 195
第6章 Elastic Stack实战 196
6.1 理解问题场景 196
6.2 准备Elastic Stack管道 199
6.2.1 要获取什么数据? 200
6.2.2 更新体系结构 200
6.3 配置Elastic Stack组件 201
6.3.1 搭建Elasticsearch 202
6.3.2 搭建agents/Beats 202
6.3.3 搭建Logstash 207
6.3.4 设置Kibana 213
6.4 设置Kibana面板 213
6.4.1 Packetbeat 214
6.4.2 Metricbeat 214
6.4.3 查看数据库(MySQL)性能 215
6.4.4 分析CPU的使用 216
6.4.5 内存使用情况 217
6.4.6 检查日志 217
6.4.7 寻找访问最多的网页 219
6.4.8 访客地图 219
6.4.9 一定时间范围内的访客数量 220
6.4.10 请求类型 221
6.4.11 错误类型——日志的级别 221
6.4.12 首选的referrer 223
6.4.13 首选的代理agent 223
6.5 使用Logstash电子邮件功能发警报 224
6.6 使用消息代理 225
6.7 本章小结 226
第7章 个性化定制Elastic Stack 227
7.1 扩展Elasticsearch 227
7.1.1 Elasticsearch开发环境 228
7.1.2 剖析一个Elasticsearch Java插件 229
7.1.3 构建插件 230
7.2 扩展Logstash 231
7.3 扩展Beat s 239
7.3.1 Libbeat框架 239
7.3.2 创建一个Beat 240
7.4 扩展Kibana 251
7.4.1 设置Kibana开发环境 252
7.4.2 生成一个插件 253
7.4.3 剖析一个插件 254
7.5 本章小结 257
第8章 Elasticsearch API 258
8.1 集群API 258
8.1.1 集群健康状况 258
8.1.2 集群状态 260
8.1.3 集群统计信息 261
8.1.4 待处理任务 261
8.1.5 集群重路由 261
8.1.6 集群更新设置 262
8.1.7 节点统计信息 262
8.1.8 节点信息API 263
8.1.9 任务管理API 264
8.2 Cat API 265
8.3 Elasticsearch模块 268
8.3.1 集群模块 269
8.3.2 Discovery模块 269
8.3.3 Gateway模块 269
8.3.4 HTTP模块 269
8.3.5 索引模块 269
8.3.6 网络模块 269
8.3.7 节点客户端 270
8.3.8 插件模块 270
8.3.9 脚本 270
8.3.10 快照/恢复模块 271
8.3.11 线程池 271
8.3.12 Transport模块 271
8.3.13 Tribe节点模块 272
8.4 Ingest节点 272
8.5 Elasticsearch客户端 276
8.5.1 支持的客户端 276
8.5.2 社区提供的客户端 276
8.6 Java API 277
8.6.1 连接到集群 277
8.6.2 管理任务 278
8.6.3 索引级任务 281
8.7 Elasticsearch插件 286
8.7.1 Discovery插件 287
8.7.2 Ingest插件 287
8.7.3 Elasticsearch SQL 288
8.8 本章小结 289
第9章 X-Pack插件中的Security与Monitoring组件 290
9.1 X-Pack介绍 290
9.2 X-Pack的安装 291
9.2.1 在Elasticsearch中安装X-Pack 291
9.2.2 在Kibana中安装X-Pack 292
9.2.3 在离线系统中安装X-Pack 292
9.2.4 卸载X-Pack 293
9.3 Security组件 294
9.3.1 列出所有Security中的用户 295
9.3.2 列出Security中的角色 296
9.3.3 了解Security中的角色 297
9.3.4 理解默认用户角色 299
9.3.5 在Security中添加新角色 299
9.3.6 在Security中更新角色 300
9.3.7 了解字段级的Security 301
9.3.8 在Security中添加新用户 302
9.3.9 在Security中更新用户详细信息 303
9.3.10 在Security中修改用户密码 304
9.3.11 在Security中删除角色 304
9.3.12 在Security中删除用户 304
9.4 查看X-Pack信息 305
9.5 Monitoring组件 307
9.5.1 探索Elasticsearch的监控统计 308
9.5.2 探索Kibana的监控统计 314
9.6 了解Profiler 315
9.7 本章小结 317
第10章 X-Pack插件中的Alerting、Graph和Reporting组件 318
10.1 Alerting与Notification组件 318
10.2 Graph组件 336
10.3 Reporting组件 341
10.4 本章小结 344
第11章 最佳实践范例 345
11.1 为什么需要最佳实践范例 345
11.2 了解你的用例 346
11.3 管理配置文件 347
11.3.1 Elasticsearch——elasticsearch.yml 347
11.3.2 Kibana——kibana.yml 348
11.4 选择正确的硬件 348
11.4.1 内存 349
11.4.2 磁盘 351
11.4.3 输入输出 353
11.4.4 CPU 354
11.4.5 网络 354
11.5 搜索和索引性能 354
11.5.1 过滤缓存 354
11.5.2 Fielddata的容量 355
11.5.3 索引缓冲区 356
11.6 调整Elasticsearch集群 357
11.6.1 选择正确的节点 357
11.6.2 确定节点数 359
11.6.3 确定分片数 360
11.6.4 缩减磁盘空间 361
11.7 Logstash配置文件 361
11.7.1 对多个数据源分类 362
11.7.2 使用conditional条件 362
11.7.3 使用自定义grok模式 363
11.7.4 简化grokparsefailure 363
11.7.5 字段的映像 363
11.7.6 动态模板 363
11.7.7 测试配置 364
11.8 重新索引数据 364
11.9 本章小结 365
第12章 案例分析——Meetup 366
12.1 了解Meetup使用场景 366
12.2 环境搭建 367
12.2.1 理解Meetup API 368
12.2.2 搭建Elasticsearch 370
12.2.3 准备Logstash 370
12.2.4 搭建Kibana 374
12.3 使用Kibana分析数据 374
12.3.1 内容过滤 375
12.3.2 按国家统计Meetup使用量 377
12.3.3 世界前10座使用Meetup的城市 379
12.3.4 按持续时间分析Meetup发展趋势 380
12.3.5 按RSVP计数统计Meetup使用量 383
12.3.6 国家分组统计 384
12.3.7 加入群组的模式统计 384
12.3.8 热门类别 385
12.3.9 热门话题 387
12.3.10 Meetup活动场所地图 388
12.3.11 Meetup活动地图 389
12.3.12 仅数量方面的统计 389
12.4 获取通知 390
12.5 本章小结 393