基本信息

编辑推荐
Elasticsearch+Logstash+Kibana一站式数据分析解决方案,快速应对大数据时代的数据收集、检索、可视化。
从基础部署到千亿级扩展方案,从性能优化到插件开发,从数据模型到源码解析,全方位解析ELK,融入了作者多年大型网站运维开发的实战经验。
内容简介
计算机书籍
Elasticsearch、Logstash、Kibana这三个开源软件组成了当今最流行的实时数据分析利器,为快速应对大数据时代的数据收集、检索、可视化,提供了一站式解决方案,成为实时日志处理领域开源界的第一选择。本书对ELK stack的工作原理概念进行了解剖,不仅分享了大量实战案例和实现效果,而且分析了部分源代码。作者将自己多年的运维开发实战经验融入了书中,使得本书易读、易懂,将复杂的环境分解得清清楚楚,展示了多种工具的组合使用,为打造复杂环境的数据分析系统提供了有价值的参考。
Logstash单进程安装运行方式以及各种常见插件的用法,列举了一些最常见的日志,实际演示如何搭配多种插件完成数据裁剪和计算。
Logstash性能测试和监控方案,如何通过Redis或Kafka队列线性扩展Logstash集群。
Logstash的Pipeline原理和DSL设计。通过三个不同类型的插件开发实例,演示Logstash插件的接口方法和打包分发方式。
Elasticsearch分布式索引原理,着重介绍segment、buffer和translog三部分对实时性和性能方面的影响。
Elasticsearch的数据读写接口、集群状态、缓存和fielddata等概念,具有针对性的优化方案。
Elasticsearch的配置管理、版本升级、性能测试、监控报警等运维方案。
ELasticsearch周边产品的运用,包括接入其他日志处理框架、Watcher报警、packetbeat网络分析、Kale异常探测等。
Kibana 3和Kibana 4不同的设计思路和功能特性比较。通过实际日志场景演示使用子聚合功能构建复杂数据模型的可视化。
Kibana在生产环境中的代理和权限控制部署方式。
作译者
目录
第一部分 Logstash
第1章 入门示例 3
1.1 下载安装 3
1.2 Hello World 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
前言
ELK stack是以Elasticsearch、Logstash、Kibana三个开源软件为主的数据处理工具链,在实时数据检索和分析场合,三者通常是配合使用,而且又先后归于Elastic.co公司名下,故有此简称。
ELK stack具有如下几个优点:
处理方式灵活。Elasticsearch是实时全文索引,不需要像Storm那样预先编程才能使用。
配置简易上手。Elasticsearch全部采用JSON接口,Logstash是Ruby DSL设计,都是目前业界最通用的配置语法设计。
检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到百亿级数据查询的秒级响应。
集群线性扩展。不管是Elasticsearch集群还是Logstash集群都是可以线性扩展的。
前端操作炫丽。Kibana界面上,只需点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表盘。
当然,ELK stack并不是实时数据分析的灵丹妙药,使用不恰当,反而会事倍功半。我自2014年年初开QQ群交流ELK stack,发现网友们对ELK stack的原理常有误解误用,对实现的效果也多有不能理解或者因过多期望而失望之处。更令我惊奇的是,网友们分布之广,遍及传统企业和互联网公司、开发和运维领域、Linux和Windows平台,大家对非专精领域的知识,一般都缺乏了解,这也成为使用ELK stack的一个障碍。
为此,我决定写一本ELK stack技术指南,帮助大家厘清技术细节,分享一些实战案例。本书并不会逐一介绍ELK stack的全部聚合语法或者分词特性,而是从日志数据处理的角度介绍数据的解析、导入、可视化方式,讲解集群的稳定性和性能优化原理,剖析代码要点并提供ELK stack二次开发实例。
本书包括三大部分共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功能项等细节。
第二部分Elasticsearch