首页>参考读物>计算机科学与技术>计算机网络

ELK Stack权威指南 第2版
作者 : 饶琛琳 编著
出版日期 : 2017-05-02
ISBN : 978-7-111-56329-7
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 413
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

ELK是Elasticsearch、Logstash、Kibana三个开源软件的组合,是目前开源界流行的实时数据分析方案,成为实时日志处理领域开源界的第壹选择。然而,ELK也并不是实时数据分析界的灵丹妙药,使用不恰当,反而会事倍功半。本书对ELK的原理进行了解剖,不仅分享了大量实战案例和实现效果,而且分析了部分源代码,使读者不仅知其然还知其所以然。读者可通过本书的学习,快速掌握实时日志处理方法,并搭建符合自己需要的大数据分析系统。本书分为三大部分,第壹部分“Logstash”介绍Logstash的安装与配置、场景示例、性能与测试、扩展方案、源码解析、插件开发等,第二部分“Elasticsearch”介绍Elasticsearch的架构原理、数据接口用例、性能优化、测试和扩展方案、映射与模板的定制、监控方案等,第三部分“Kibana”介绍Kibana3和Kibana5的特点对比,Kibana的配置、案例与源代码解析。

图书前言

《ELK Stack权威指南》第1版面世之后的这一年多时间里,ELK Stack在Elastic.co公司以及社区的共同努力下飞速发展。国内外都出现了不少基于ELK Stack实现的日志分析产品和创业公司。ELK Stack已经成为DevOps技术栈中必不可缺少的一个部分,较大型的互联网公司甚至已经配备有专职的ELK Stack管理团队。
对于并不精通ELK Stack技术及其发展历史的人来说,过去复杂的版本对应是新手的第一道门槛。最近全新更新的ELK Stack各组件,统一使用5.x系列版本号,大大方便了新手入门。而5.x系列同样携带了大量崭新的特性,在日志分析、监控告警等场景,带来性能提升、管理简化、功能丰富等诸多好处。推荐广大读者积极尝试和升级。
IT运维模式正在向数据驱动、精细化、智能化发展。这个过程中,ELK Stack恰好是运维人员达成这个目的最方便的工具和平台。基于ELK Stack平台,越来越多的周边开源项目在涌现。这次再版,也进一步丰富了这些周边项目的介绍。
与第1版相比,第2版修订、删补了180多页内容,接近全书的一半。修改期间,怀孕的妻子一直默默陪伴左右,时不时叮嘱我注意保存。谨以此书献给她和刚出生的启舟宝贝,我爱你们!
本书章节内容
本书包括三大部分共19章,各部分可以独立阅读。但对于还没有大规模应用经验的新手,建议按顺序阅读全文。
第一部分 Logstash
第1章:入门示例。该章介绍Logstash及其插件的配置安装方法,自定义配置语言的设计用途,并为不熟悉Linux系统管理的开发人员介绍了多种后台运行方式。
第2章:插件配置。该章列举Logstash最常用的几十种插件,通过实际示例和效果,讲解各插件的配置细节和用途。
第3章:场景示例。该章以最常见的运维、网络、开发和数据库场景,介绍Logstash处理Nginx、Postfix、Ossec、Log4J、MySQL、Docker等日志的最佳实践。
第4章:性能与监控。了解Logstash的性能情况一直是个难题,该章从Logstash设计原理和JVM平台本质出发,介绍几种行之有效的检测和监控方案。
第5章:扩展方案。该章介绍采用Redis和Kafka完成Logstash水平扩展的方案,同时也介绍其他几种日志收集系统与Logstash的配合方式。
第6章:Logstash源码解析。该章解析Logstash源码中最重要的Pipeline设计,以及Logstash::Event的来龙去脉。
第7章:插件开发。该章以最常见的用户登录记录和地址库解析、Consul数据更新等需求,实际演示Logstash 的自定义Filter、Input和Output插件的编写,同时还涉及了插件打包的RubyGems规范共有HttpClient功能项等细节。
第8章:Beats。该章讲述ELK Stack家族新成员Beats生态圈各组件的使用,包括Filebeat、packetbeat、metricbeat、winlogbeat等内容。
第二部分 Elasticsearch
第9章:架构原理。该章从更高级的架构层面,介绍Elasticsearch分布式设计中涉及稳定性和高性能的部分原理,并由此引发相关的优化配置介绍。另外,还提供了一种针对时序数据索引的读写分离方案,适用于拥有少部分SSD设备的用户。
第10章:数据接口用例。该章介绍Elasticsearch的RESTful接口的基础知识,并针对常见的重建索引需求提供两种快速实现方案,为有Spark经验的读者介绍通过Spark Streaming 接口读写Elasticsearch的方法。
第11章:性能优化。该章介绍Elasticsearch在日志处理场景下的读写优化知识和官方推荐的curator工具,其中重点介绍了Elasticsearch中几种不同cache的区别和有效场景。
第12章:测试和扩展方案。该章介绍Elasticsearch在生产环境中需要的一些周边工具,比如Puppet配置管理、Shield权限管理、版本升级操作、别名切换流程设计等。新增了快照与恢复功能。
第13章:映射与模板的定制。该章详细介绍Elasticsearch中的核心类型及其对应的常见映射设置,以及如何通过动态模板简化映射定制操作的复杂度。
第14章:监控方案。Elasticsearch作为一个分布式系统,也是有一定的运维难度的,因此其本身的监控也相当重要。该章介绍Elasticsearch自带的一系列监控接口,以及由此衍生的多种实时或长期的监控方案。
第15章:Elasticsearch在运维监控领域的其他应用。该章介绍Elasticsearch在运维方面的其他运用方式,包括实时过滤接口、定时报警系统设计、时序数据存储和相关性排序等。
第三部分 Kibana
第16章:Kibana的产品对比。该章介绍Kibana 3与Kibana 5之间,以及它们与Hadoop、Splunk之间的差异,方便读者在不同场景需求下选择更正确的工具。
第17章:Kibana 5。该章介绍Kibana 5的安装部署和界面操作方式,重点介绍Kibana 5提供的几种可视化图表的配置细节和效果,并以几种场景的日志分析需求演示了Kibana 5全新的子聚合功能的效果。最后还介绍了一种采用phantom.js截图方式记录长期报表数据的方案。
第18章:Kibana 5源码解析。该章介绍Kibana 4的界面实现,重点包括其内部ORM实现的Counrier类、可视化绘图的Vislib类等。
第19章:Kibana插件开发示例。该章讲述Kibana最常用的插件类型二次开发实例,包括可视化效果、服务器段进程、完整App演示等内容。
致谢
我本人虽然接触ELK较早,但本身专于Web和App应用数据方面,动笔以来得到诸多朋友的帮助,在此深表感谢。此外,还要特别感谢Elastic.co公司的曾勇(medcl)和吴晓刚(Wood),曾勇完成Elasticsearch在国内的启蒙式分享,并主办Elasticsearch中国用户大会,吴晓刚积极帮助新用户,并最早分享了携程的ELK日亿级规模的实例。

上架指导

计算机\硬件

封底文字

Elasticsearch、Logstash、Kibana 三个开源软件组成了当今最流行的实时数据分析利器,为快速应对大数据时代的数据收集、检索、可视化,提供了一

站式解决方案,成为实时日志处理领域开源界的第一选择。第2版根据ELK5.0版本进行了全面更新,增加了Beats一章,以及插件开发示例一章,讲述

Kibana最常用的插件类型二次开发实例,包括可视化效果、服务器段进程、完整App演示等。
主要内容:
? Logstash 单进程安装运行方式以及各常见插件的用法,列举了一些最常见的日志,实际演示如何搭配多种插件完成数据裁剪和计算。
? Logstash 性能测试和监控方案,如何通过 Redis或Kafka队列线性扩展Logstash集群。
? Logstash 的Pipeline原理和DSL设计。通过三个不同类型的插件开发实例,演示介绍 Logstash 插件的接口方法和打包分发方式。
? Elasticsearch 分布式索引原理,着重介绍segment、buffer和translog三部分对实时性和性能方面的影响。
? Elasticsearch 的数据读写接口、集群状态、缓存和fielddata等概念,具有针对性的优化方案。
? Elasticsearch 的配置管理、版本升级、性能测试、监控报警等运维方案。
? ELasticsearch 周边产品的运用,包括接入其他日志处理框架、Watcher报警、packetbeat网络分析、Kale异常探测等。
? ELK Stack家族新成员Beats生态圈各组件的使用,包括filebeat、packetbeat、metricbeat、winlogbeat等。
? Kibana 3和Kibana 5不同的设计思路和功能特性比较。通过实际日志场景演示使用子集合功能构建复杂数据模型的可视化。
? Kibana 在生产环境上的代理和权限控制部署方式。
? Kibana 的源代码实现,以及range panel和 percentile panel 开发实例。

作者简介

饶琛琳 编著:
饶琛琳 新浪网系统架构师,曾任人人网技术专家、中华网高级运维工程师等职位。参与了大规模系统的运维监控设计与自动化平台的建设,对CDN架构、系统监控和日志分析有丰富的经验。乐于分享,是ElasticsearchChina用户组负责人之一,活跃于Puppet和Logstash等开源社区,分享了大量技术文章。

图书目录

前 言
第一部分 Logstash
第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 配置所有Ossec 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
第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 profiler调试接口  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
第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

教学资源推荐
作者: [希]弗洛肖斯·齐阿齐斯(Vlasios Tsiatsis) [德]斯塔马蒂斯·卡尔诺斯科斯(Stamatis Karnouskos) [瑞]杨·霍勒(Jan Höller) [英]大卫·博伊尔(David Boyle) [澳]凯瑟琳·马利根(Catherine Mulligan) 著
作者: 常晋义 何世明 赵秀兰
参考读物推荐
作者: 邱鹏源 编著
作者: 范传辉 编著
作者: 王春轶 编著