《数据分析与决策技术丛书 ELK Stack权威指南 第2版》PDF下载

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

第一部分Logstash 3

第1章 入门示例 3

1.1下载安装 3

1.2 Hello World 4

1.3配置语法 8

1.3.1语法 8

1.3.2命令行参数 10

1.3.3设置文件示例 11

1.4插件安装 12

1.5长期运行方式 13

第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 http-poller抓取 21

2.2编解码配置 22

2.2.1 JSON编解码 23

2.2.2多行事件编码 24

2.2.3网络流编码 26

2.2.4 collectd输入 27

2.3过滤器配置 30

2.3.1 date时间处理 30

2.3.2 grok正则捕获 33

2.3.3 dissect解析 35

2.3.4 GeoIP地址查询 36

2.3.5 JSON编解码 38

2.3.6 key-value切分 38

2.3.7 metrics数值统计 40

2.3.8 mutate数据修改 41

2.3.9随心所欲的Ruby处理 45

2.3.10 split拆分事件 47

2.3.11交叉日志合并 48

2.4输出插件 49

2.4.1输出到Elasticsearch 49

2.4.2发送email 54

2.4.3调用系统命令执行 54

2.4.4保存成文件 55

2.4.5报警发送到Nagios 56

2.4.6 statsd 58

2.4.7标准输出stdout 61

2.4.8 TCP发送数据 62

2.4.9输出到HDFS 62

第3章 场景示例 64

3.1 Nginx访问日志 64

3.1.1 grok处理方式 64

3.1.2 split处理方式 65

3.1.3 JSON格式 68

3.1.4 syslog方式发送 69

3.2 Nginx错误日志 69

3.3 Postfix日志 71

3.4 Ossec日志 72

3.4.1配置所有Ossee agent采用syslog输出 72

3.4.2配置Logstash 72

3.4.3推荐Kibana仪表盘 73

3.5 Windows系统日志 73

3.5.1采集端配置 73

3.5.2接收解析端配置 75

3.6 Java日志 77

3.6.1 Log4J配置 77

3.6.2 Logstash配置 78

3.6.3异常堆栈测试验证 78

3.6.4 JSON Event layout 79

3.7 MySQL慢查询日志 80

3.8 Docker日志 82

3.8.1记录到主机磁盘 82

3.8.2通过logspout收集 83

第4章 性能与监控 85

4.1性能测试 85

4.1.1配置示例 85

4.1.2使用方式 86

4.1.3额外的话 87

4.2监控方案 87

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

4.2.2 JMX启动参数方式 89

4.2.3 API方式 90

第5章 扩展方案 94

5.1通过Redis队列扩展 95

5.1.1读取Redis数据 95

5.1.2采用list类型扩展Logstash 96

5.1.3输出到Redis 97

5.2通过Kafka队列扩展 98

5.2.1 Kafka基础概念 99

5.2.2 Input配置 100

5.2.3 Output配置 101

5.2.4性能 103

5.3 logstash-forwarder 103

5.3.1 Indexer端配置 104

5.3.2 Shipper端配置 104

5.3.3 AIX上的logstash-forwarder-java 106

5.4 Rsyslog 107

5.4.1常用模块介绍 107

5.4.2与Logstash合作 109

5.4.3 Mmexternal模块 109

5.5 Nxlog 112

5.6 Heka 114

5.7 Fluentd 115

5.7.1配置示例 115

5.7.2 Fluentd插件 117

5.8 Message::Passing 117

第6章Logstash源码解析 119

6.1 Pipeline 120

6.2 Plugins 122

第7章 插件开发 125

7.1插件格式 125

7.2插件的关键方法 126

7.3插件打包 127

7.4 Filter插件开发示例 128

7.4.1 mmdb数据库的生成方法 129

7.4.2 LogStash::Filters::Mmdb实现 130

7.4.3 logstash-filter-mmdb打包 131

7.5 Input插件开发示例 132

7.5.1 FileWatch模块原理 132

7.5.2 LogStash::Inputs::Utmp实现 133

7.6 Output插件开发示例 136

第8章Beats 138

8.1 libbeat的通用配置 138

8.1.1过滤器配置 138

8.1.2输出配置 139

8.1.3 shipper网络配置 142

8.1.4日志配置 142

8.1.5运行配置 142

8.2 Filebeat 142

8.2.1安装部署 143

8.2.2配置 144

8.2.3生成的可用字段 145

8.3 packetbeat抓包分析 145

8.3.1安装部署 146

8.3.2配置示例 146

8.3.3 dashboard效果 147

8.3.4 Kibana 3拓扑图 148

8.4 metricbeat 150

8.4.1配置示例 152

8.4.2各模块输出指标示例 152

8.4.3采集Docker中的指标 164

8.5 winlogbeat 164

第二部分Elasticsearch 169

第9章 架构原理 169

9.1准实时索引的实现 169

9.1.1动态更新的Lucene索引 169

9.1.2利用磁盘缓存实现的准实时检索 170

9.1.3 translog提供的磁盘同步控制 171

9.2 segment merge的影响 172

9.2.1归并线程配置 173

9.2.2归并策略 174

9.2.3 forcemerge接口 174

9.3 routing和replica的读写过程 174

9.3.1路由计算 175

9.3.2副本一致性 175

9.4 shard的allocate控制 176

9.4.1 reroute接口 178

9.4.2分配失败原因 179

9.4.3节点下线 180

9.4.4冷热数据的读写分离 180

9.5自动发现的配置 181

第10章 数据接口用例 183

10.1增删改查操作 183

10.2搜索请求 185

10.2.1全文搜索 185

10.2.2聚合请求 187

10.2.3 pipeline聚合 189

10.2.4搜索请求参数 191

10.3脚本 192

10.3.1动态提交 192

10.3.2固定文件 193

10.3.3其他语言 194

10.4重建索引 194

10.4.1 Perl客户端 194

10.4.2用Logstash重建索引 195

10.4.3新reindex接口的应用 195

10.5 Spark Streaming交互 197

第11章 性能优化 199

11.1 bulk提交 199

11.1.1 bulk大小 200

11.1.2 UDP方式 200

11.2 gateway配置 201

11.3集群状态维护 202

11.4缓存 206

11.4.1 filter缓存 206

11.4.2 shard reguest缓存 207

11.4.3 field stats接口 208

11.5字段数据 209

11.5.1 Circuit Breaker 209

11.5.2 doc values 210

11.6 curator工具 212

11.6.1参数介绍 213

11.6.2常用示例 214

11.7 profiiler调试接口 214

第12章 测试和扩展方案 217

12.1测试方案 217

12.2多集群互联 220

12.3 puppet-elasticsearch模块的使用 223

12.3.1安装和配置示例 223

12.3.2配置解释 224

12.4计划内停机升级的操作流程 224

12.5 Shield权限管理 227

12.5.1 Shield架构 227

12.5.2安装部署 227

12.6 searchguard权限管理 229

12.6.1安装 229

12.6.2权限角色配置 231

12.6.3其他组件配置方式 233

12.7别名的应用 234

12.7.1索引更名时的无缝切换 234

12.7.2限制索引数据部分可读 236

12.8快照与恢复 237

12.8.1 HDFS插件安装配置 237

12.8.2 Hadoop配置 238

12.8.3备份操作 240

12.9 rollover和shrink管理 240

12.9.1 rollover管理 240

12.9.2 shrink缩容 241

12.10 ingest节点 243

12.10.1创建管道流 243

12.10.2测试管道流 243

12.10.3处理器 244

第13章 映射与模板的定制 246

13.1映射的增删改查 246

13.2 Elasticsearch的核心类型 248

13.3自定义字段映射 249

13.3.1精确索引 249

13.3.2时间格式 249

13.3.3多重索引 250

13.4特殊字段 250

13.5动态模板映射 251

13.6索引模板 252

第14章 监控方案 254

14.1监控相关接口 254

14.1.1集群健康状态 254

14.1.2节点状态 257

14.1.3热线程状态 264

14.1.4索引状态 265

14.1.5任务管理 266

14.1.6 cat接口的命令行使用 268

14.2日志记录 271

14.3实时bigdesk方案 272

14.4 cerebro 274

14.5 Zabbix trapper方案 275

14.5.1安装配置 275

14.5.2模板应用 276

第15章Elasticsearch在运维监控领域的其他应用 278

15.1 Percolator接口 278

15.2 Watcher报警 281

15.3 ElastAlert 284

15.3.1安装 284

15.3.2配置结构 284

15.3.3扩展 286

15.4时序数据库 288

15.5 Etsy的Kale异常检测 290

15.6 Grafana可视化 291

15.6.1安装 291

15.6.2配置数据源 292

15.6.3生成第一个图表 293

15.6.4模板功能 295

15.6.5在线资源 300

15.7 Juttle可视化 301

15.7.1安装部署 302

15.7.2命令行运行示例 302

15.7.3可视化界面 304

15.7.4可视化相关指令介绍 304

第三部分Kibana 309

第16章Kibana的产品对比 309

16.1 Kibana 3的设计思路和功能 309

16.2 Kibana 5的设计思路和功能 310

16.3与Hadoop体系的区别 310

16.4 Splunk场景参考 311

第17章Kibana 5 312

17.1安装、配置和运行 313

17.2生产环境部署 314

17.2.1 Nginx代理配置 316

17.2.2开启SSL 317

17.3 Discover功能 318

17.3.1设置时间过滤器 318

17.3.2搜索数据 319

17.3.3按字段过滤 321

17.3.4过滤器的协同工作方式 321

17.3.5查看文档数据 323

17.4各种可视化功能 324

17.4.1 area 326

17.4.2 table 329

17.4.3 line 330

17.4.4 Markdown 331

17.4.5 metric 331

17.4.6 pie 332

17.4.7 tile map 332

17.4.8 vertical bar 334

17.4.9 tagcloud 335

17.5仪表盘功能 335

17.5.1开始 336

17.5.2容器功能 336

17.5.3修改可视化 337

17.5.4修改主题风格 339

17.6 management功能 339

17.6.1创建一个连接到Elasticsearch的索引模式 339

17.6.2字段格式 342

17.6.3创建一个脚本化字段 344

17.6.4设置高级参数 345

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

17.7设置Kibana服务器属性 346

17.8常用sub agg示例 347

17.8.1函数堆栈链分析 347

17.8.2分图统计 349

17.8.3 TopN的时序趋势图 350

17.8.4响应时间的百分占比趋势图 352

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

17.9 Kibana报表的快速实现 354

17.10 timelion应用 355

17.11 console应用 357

第18章Kibana 5源码解析 359

18.1 Kibana索引的数据结构 360

18.2主页入口 361

18.2.1 Kibana App 362

18.2.2 Courier类 367

18.2.3路径记忆功能的实现 370

18.3 Discover解析 370

18.4 Visualize解析 374

18.4.1 vis_tyPes实现 375

18.4.2 savedVisualizations实现 382

18.4.3 Visualize实现 382

18.4.4 VisEditorSidebar实现 383

18.5 Dashboard解析 384

第19章Kibana插件开发示例 388

19.1 Kibana插件 388

19.1.1部署命令 388

19.1.2默认插件 389

19.2可视化插件示例 390

19.2.1插件目录生成 390

19.2.2主文件及解释 391

19.3服务器端插件示例 394

19.4完整应用开发示例 398

19.4.1 App模块的index.js结构 398

19.4.2服务器端部分 399

19.4.3前台界面的app.js 399

19.4.4页面模板 401