《数据分析与决策技术丛书 ELKstack权威指南》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:饶琛琳编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2015
  • ISBN:9787111516347
  • 页数:394 页
图书介绍:ELKstack是Elasticsearch、Logstash、Kibana三个开源软件的组合,是目前开源界最流行的实时数据分析方案,成为实时日志处理领域开源界的第一选择。然而,ELKstack也并不是实时数据分析界的灵丹妙药,使用不恰当,反而会事倍功半。本书对ELKstack的原理进行了解剖,不仅分享了大量实战案例和实现效果,而且分析了部分源代码,使读者不仅知其然还知其所以然。读者可通过本书的学习,快速掌握实时日志处理方法,并搭建符合自己需要的大数据分析系统。本书分为三大部分,共19章。第一部分“Logstash”介绍Logstash的安装与配置、场景示例、性能与测试、扩展方案、源码解析、插件开发等,第二部分“Elasticsearch”介绍Elasticsearch的架构原理、数据接口用例、性能优化、测试和扩展方案、映射与模板的定制、监控方案等,第三部分“Kibana”介绍Kibana 3和Kibana 4的特点对比,Kibana 3的配置、案例与源代码解析、Kibana 4的配置、案例与源代码解析。

第一部分 Logstash 3

第1章 入门示例 3

1.1 下载安装 3

1.2 HelloWorld 5

1.3 配置语法 7

1.3.1 语法 8

1.3.2 命令行参数 10

1.4 插件安装 11

1.5 长期运行方式 12

第2章 插件配置 15

2.1 输入插件 15

2.1.1 标准输入 16

2.1.2 文件输入 17

2.1.3 TCP输入 18

2.1.4 syslog输入 19

2.1.5 collectd输入 21

2.2 编解码配置 23

2.2.1 JSON编解码 24

2.2.2 多行事件编码 25

2.2.3 网络流编码 26

2.3 过滤器配置 28

2.3.1 date时间处理 28

2.3.2 grok正则捕获 30

2.3.3 GeoIP地址查询 33

2.3.4 JSON编解码 34

2.3.5 key-value切分 35

2.3.6 metrics数值统计 36

2.3.7 mutate数据修改 37

2.3.8 随心所欲的Ruby处理 42

2.3.9 split拆分事件 43

2.3.10 elapsed 43

2.4 输出插件 44

2.4.1 输出到Elasticsearch 44

2.4.2 发送email 49

2.4.3 调用系统命令执行 50

2.4.4 保存成文件 50

2.4.5 报警发送到Nagios 51

2.4.6 statsd 52

2.4.7 标准输出stdout 54

2.4.8 TCP发送数据 55

2.4.9 输出到HDFS 55

第3章 场景示例 57

3.1 Nginx访问日志 57

3.1.1 grok处理方式 57

3.1.2 split处理方式 58

3.1.3 json格式 61

3.1.4 syslog方式发送 62

3.2 Nginx错误日志 62

3.3 Postfix日志 63

3.4 Ossec日志 64

3.4.1 配置所有Ossec agent采用syslog输出 64

3.4.2 配置Logstash 65

3.4.3 推荐Kibana仪表盘 65

3.5 Windows系统日志 67

3.5.1 采集端配置 67

3.5.2 接收解析端配置 68

3.6 Java日志 69

3.6.1 Log4J配置 70

3.6.2 Logstash配置 70

3.6.3 异常堆栈测试验证 70

3.6.4 JSON Event layout 71

3.7 MySQL慢查询日志 73

3.8 Docker日志 74

3.8.1 记录到主机磁盘 75

3.8.2 通过logspout 收集 75

第4章 性能与监控 77

4.1 性能测试 77

4.1.1 配置示例 77

4.1.2 使用方式 78

4.1.3 额外的话 79

4.2 监控方案 79

4.2.1 logstash-input-heartbeat心跳检测方式 80

4.2.2 JMX启动参数方式 81

第5章 扩展方案 83

5.1 通过Redis队列扩展 84

5.1.1 读取Redis数据 84

5.1.2 采用list类型扩展Logstash 85

5.1.3 输出到Redis 86

5.2 通过Kafka队列扩展 87

5.2.1 Logstash1.4版本插件的安装 88

5.2.2 Input配置 88

5.2.3 Output配置 90

5.3 logstash-forwarder 91

5.3.1 Indexer端配置 91

5.3.2 Shipper端配置 92

5.3.3 AIX上的logstash-forwarder-java 93

5.4 Rsyslog 95

5.4.1 常用模块介绍 95

5.4.2 与Logstash合作 96

5.4.3 Mmexternal模块 97

5.5 Nxlog 99

5.6 Heka 101

5.7 Fluentd 102

5.7.1 配置示例 103

5.7.2 Fluentd插件 104

5.8 Message::Passing 104

第6章 Logstash源码解析 107

6.1 Pipeline 108

6.2 Plugins 109

6.2.1 Input中的Codec 110

6.2.2 Output中的Worker 111

第7章 插件开发 113

7.1 插件格式 113

7.2 插件的关键方法 114

7.3 插件打包 115

7.4 Filter插件开发示例 116

7.4.1 mmdb数据库的生成方法 116

7.4.2 LogStash::Filters::Mmdb实现 117

7.4.3 logstash-filter-mmdb打包 119

7.5 Input插件开发示例 119

7.5.1 FileWatch模块原理 120

7.5.2 LogStash::Inputs::Utmp实现 121

7.6 Output插件开发示例 124

第二部分 Elasticsearch 129

第8章 架构原理 129

8.1 准实时索引的实现 129

8.1.1 动态更新的Lucene索引 129

8.1.2 利用磁盘缓存实现的准实时检索 130

8.1.3 translog提供的磁盘同步控制 131

8.2 segment merge的影响 132

8.2.1 归并线程配置 133

8.2.2 归并策略 134

8.2.3 optimize接口 134

8.3 routing和replica的读写过程 134

8.3.1 路由计算 134

8.3.2 副本一致性 135

8.4 shard的allocate控制 136

8.4.1 reroute接口 138

8.4.2 冷热数据的读写分离 138

8.5 自动发现的配置 139

8.5.1 multicast方式 140

8.5.2 unicast方式 140

第9章 数据接口用例 141

9.1 增删改查操作 141

9.2 搜索请求 143

9.2.1 全文搜索 143

9.2.2 聚合请求 145

9.3 脚本 147

9.3.1 动态提交 147

9.3.2 固定文件 147

9.3.3 其他语言 148

9.4 重建索引 148

9.4.1 Perl客户端 149

9.4.2 用Logstash重建索引 149

9.5 Spark Streaming交互 150

第10章 性能优化 153

10.1 bulk提交 153

10.1.1 bulk大小 154

10.1.2 UDP方式 154

10.2 gateway配置 155

10.3 集群状态维护 156

10.4 缓存 160

10.4.1 filter缓存 160

10.4.2 shard query缓存 161

10.5 字段数据 162

10.5.1 CircuitBreaker 162

10.5.2 doc-values 163

10.6 curator工具 163

10.6.1 参数介绍 163

10.6.2 常用示例 165

第11章 测试和扩展方案 167

11.1 测试方案 167

11.2 多集群互联 168

11.3 puppet-elasticsearch模块的使用 171

11.3.1 安装和配置示例 171

11.3.2 配置解释 171

11.4 计划内停机升级的操作流程 172

11.5 Shield权限管理 174

11.5.1 Shield架构 174

11.5.2 安装部署 175

11.6 别名的应用 176

11.6.1 索引更名时的无缝切换 177

11.6.2 限制索引数据部分可读 178

第12章 映射与模板的定制 181

12.1 映射的增删改查 181

12.2 Elasticsearch的核心类型 183

12.3 自定义字段映射 184

12.3.1 精确索引 184

12.3.2 时间格式 185

12.3.3 多重索引 185

12.4 特殊字段 186

12.5 动态模板映射 186

12.6 索引模板 187

第13章 监控方案 189

13.1 监控相关接口 189

13.1.1 集群健康状态 189

13.1.2 节点状态 191

13.1.3 索引状态 199

13.1.4 等待执行的任务 200

13.1.5 cat接口的命令行使用 201

13.2 日志记录 204

13.3 实时bigdesk方案 205

13.4 官方marvel方案 207

13.4.1 安装和卸载 208

13.4.2 配置 208

13.4.3 访问 209

13.4.4 面板定制示例 209

13.5 Zabbix trapper方案 212

13.5.1 安装配置 212

13.5.2 模板应用 213

第14章 Elasticsearch在运维监控领域的其他应用 215

14.1 Percolator接口 215

14.2 Watcher报警 217

14.3 packetbeat抓包分析 220

14.3.1 安装部署 220

14.3.2 配置示例 220

14.3.3 dashboard效果 221

14.3.4 Kibana 3拓扑图 223

14.4 时序数据库 224

14.5 Etsy的Kale异常检测 226

第三部分 Kibana 231

第15章 Kibana的产品对比 231

15.1 Kibana 3的设计思路和功能 231

15.2 Kibana 4的设计思路和功能 232

15.3 与Hadoop体系的区别 232

15.4 Splunk场景参考 233

第16章 Kibana 3 235

16.1 Kibana 3入门 235

16.1.1 准备工作 236

16.1.2 界面介绍 236

16.1.3 跨域访问注意事项 239

16.2 config.js配置 240

16.3 页面布局 240

16.3.1 请求和过滤 241

16.3.2 行和面板 244

16.4 各面板功能 251

16.4.1 histogram 252

16.4.2 table 262

16.4.3 map 266

16.4.4 bettermap 267

16 4 5 terms 269

16.4.6 column 274

16.4.7 stats 274

16.4.8 query 275

16.4.9 trend 276

16.4.10 text 277

16.4.11 sparklines 278

16.4.12 hits 279

16.4.13 goal 279

16.5 仪表盘的保存和载入 279

16.5.1 保存仪表盘 280

16.5.2 加载仪表盘 280

16.5.3 分享仪表盘 280

16.5.4 保存成静态仪表盘 281

16.6 自定义仪表盘功能 281

16.6.1 schema简介 281

16.6.2 模板化template仪表盘 288

16.6.3 脚本化scripted仪表盘 289

16.7 认证授权 290

16.7.1 用Nginx实现基础的认证 290

16.7.2 用Node.js实现基于CAS的认证 292

16.7.3 用Perl实现认证和用户授权 293

第17章 Kibana3源码解析 297

17.1 源码目录结构 297

17.2 入口和模块依赖 300

17.3 控制器和服务 302

17.3.1 dashboard 303

17.3.2 querySrv 303

17.3.3 filterSrv 304

17.3.4 fields 304

17.3.5 esVersion 304

17.4 面板指令 304

17.4.1 添加面板 304

17.4.2 展示面板 305

17.5 面板实现 306

17.5.1 module.js 306

17.5.2 module.html 308

17.5.3 editor.html 309

17.6 用facet接口开发一个 range panel 309

17.6.1 代码实现 310

17.6.2 面板效果 313

17.7 用agg接口开发一个 percentile panel 313

17.7.1 代码实现要点 316

17.7.2 面板效果 318

第18章 Kibana 4 319

18.1 安装、配置和运行 320

18.2 生产环境部署 323

18.2.1 Nginx代理配置 323

18.2.2 配置Kibana和shield一起工作 324

18.2.3 开启SSL 325

18.2.4 控制访问权限 325

18.3 Discover功能 326

18.3.1 设置时间过滤器 326

18.3.2 搜索数据 327

18.3.3 按字段过滤 328

18.3.4 过滤器的协同工作方式 329

18.3.5 查看文档数据 330

18.4 各种可视化功能 332

18.4.1 area 333

18.4.2 table 336

18.4.3 line 337

18.4.4 Markdown 338

18.4.5 metric 338

18.4.6 pie 339

18.4.7 tilemap 339

18.4.8 vertical bar 340

18.5 仪表盘功能 341

18.5.1 开始 342

18.5.2 容器功能 343

18.5.3 修改可视化 346

18.6 Setting功能 346

18.6.1 创建一个连接到Elasticsearch的索引模式 346

18.6.2 创建一个脚本化字段 349

18.6.3 设置高级参数 350

18.6.4 管理已保存的搜索、可视化和仪表盘 350

18.7 设置Kibana服务器属性 351

18.8 常用sub agg示例 352

18.8.1 函数堆栈链分析 352

18.8.2 分图统计 355

18.8.3 TopN的时序趋势图 356

18.8.4 响应时间的百分占比趋势图 358

18.8.5 响应时间的概率分布在不同时段的相似度对比 359

18.9 Kibana报表的快速实现 360

第19章 Kibana 4源码解析 363

19.1 Kibana索引的数据结构 364

19.2 主页入口 365

19.2.1 index.js解析 365

19.2.2 Courier类 367

19.2.3 路径记忆功能的实现 370

19.2.4 标签页应用的加载 371

19.3 Discover解析 374

19.4 Visualize解析 377

19.4.1 vis_types实现 378

19.4.2 savedVisualizations实现 384

19.4.3 Visualize实现 384

19.4.4 VisEditorSidebar实现 385

19.5 Dashboard解析 387

19.6 Setting解析 389