ELK Stack权威指南(第2版)pdf下载

ELK Stack权威指南(第2版)百度网盘pdf下载

作者:
简介:ELK Stack权威指南(第2版)
出版社:机械工业出版社
出版时间:2017-04-01
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

内容简介
   ELK是Elasticsearch、Logstash、Kibana三个开源软件的组合,是目前开源界流行的实时数据分析方案,成为实时日志处理领域开源界的第壹选择。然而,ELK也并不是实时数据分析界的灵丹妙药,使用不恰当,反而会事倍功半。本书对ELK的原理进行了解剖,不仅分享了大量实战案例和实现效果,而且分析了部分源代码,使读者不仅知其然还知其所以然。读者可通过本书的学习,快速掌握实时日志处理方法,并搭建符合自己需要的大数据分析系统。本书分为三大部分,第壹部分“Logstash”介绍Logstash的安装与配置、场景示例、性能与测试、扩展方案、源码解析、插件开发等,第二部分“Elasticsearch”介绍Elasticsearch的架构原理、数据接口用例、性能优化、测试和扩展方案、映射与模板的定制、监控方案等,第三部分“Kibana”介绍Kibana3和Kibana5的特点对比,Kibana的配置、案例与源代码解析。
目录
版权信息
前言
第一部分 Logstash
第1章 入门示例
1.1 下载安装
1.2 Hello World
1.3 配置语法
1.4 插件安装
1.5 长期运行方式
第2章 插件配置
2.1 输入插件
2.2 编解码配置
2.3 过滤器配置
2.4 输出插件
第3章 场景示例
3.1 Nginx访问日志
3.2 Nginx错误日志
3.3 Postfix日志
3.4 Ossec日志
3.5 Windows系统日志
3.6 Java日志
3.7 MySQL慢查询日志
3.8 Docker日志
第4章 性能与监控
4.1 性能测试
4.2 监控方案
第5章 扩展方案
5.1 通过Redis队列扩展
5.2 通过Kafka队列扩展
5.3 logstash-forwarder
5.4 Rsyslog
5.5 Nxlog
5.6 Heka
5.7 Fluentd
5.8 Message:Passing
第6章 Logstash源码解析
6.1 Pipeline
6.2 Plugins
第7章 插件开发
7.1 插件格式
7.2 插件的关键方法
7.3 插件打包
7.4 Filter插件开发示例
7.5 Input插件开发示例
7.6 Output插件开发示例
第8章 Beats
8.1 libbeat的通用配置
8.2 Filebeat
8.3 packetbeat抓包分析
8.4 metricbeat
8.5 winlogbeat
第二部分 Elasticsearch
第9章 架构原理
9.1 准实时索引的实现
9.2 segment merge的影响
9.3 routing和replica的读写过程
9.4 shard的allocate控制
9.5 自动发现的配置
第10章 数据接口用例
10.1 增删改查操作
10.2 搜索请求
10.3 脚本
10.4 重建索引
10.5 Spark Streaming交互
第11章 性能优化
11.1 bulk提交
11.2 gateway配置
11.3 集群状态维护
11.4 缓存
11.5 字段数据
11.6 curator工具
11.7 profiler调试接口
第12章 测试和扩展方案
12.1 测试方案
12.2 多集群互联
12.3 puppet-elasticsearch模块的使用
12.4 计划内停机升级的操作流程
12.5 Shield权限管理
12.6 searchguard权限管理
12.7 别名的应用
12.8 快照与恢复
12.9 rollover和shrink管理
12.10 ingest节点
第13章 映射与模板的定制
13.1 映射的增删改查
13.2 Elasticsearch的核心类型
13.3 自定义字段映射
13.4 特殊字段
13.5 动态模板映射
13.6 索引模板
第14章 监控方案
14.1 监控相关接口
14.2 日志记录
14.3 实时bigdesk方案
14.4 cerebro
14.5 Zabbix trapper方案
第15章 Elasticsearch在运维监控领域的其他应用
15.1 Percolator接口
15.2 Watcher报警
15.3 ElastAlert
15.4 时序数据库
15.5 Etsy的Kale异常检测
15.6 Grafana可视化
15.7 Juttle可视化
第三部分 Kibana
第16章 Kibana的产品对比
16.1 Kibana 3的设计思路和功能
16.2 Kibana 5的设计思路和功能
16.3 与Hadoop体系的区别
16.4 Splunk场景参考
第17章 Kibana 5
17.1 安装、配置和运行
17.2 生产环境部署
17.3 Discover功能
17.4 各种可视化功能
17.5 仪表盘功能
17.6 management功能
17.7 设置Kibana服务器属性
17.8 常用sub agg示例
17.9 Kibana报表的快速实现
17.10 timelion应用
17.11 console应用
第18章 Kibana 5源码解析
18.1 Kibana索引的数据结构
18.2 主页入口
18.3 Discover解析
18.4 Visualize解析
18.5 Dashboard解析
第19章 Kibana插件开发示例
19.1 Kibana插件
19.2 可视化插件示例
19.3 服务器端插件示例
19.4 完整应用开发示例
前言
  《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日亿级规模的实例。
精彩书摘
  第一部分 Logstash
  ?第1章 入门示例
  ?第2章 插件配置
  ?第3章 场景示例
  ?第4章 性能与监控
  ?第5章 扩展方案
  ?第6章 Logstash源码解析
  ?第7章 插件开发
  ?第8章 Beats
  Logstash is a tool for managing events and logs.You can use it to collect logs,parse them,and store them for later use(like,for searching).——http://logstash.net
  Logstash项目诞生于2009年8月2日。其作者是世界著名的运维工程师乔丹?西塞(Jordan Sissel),乔丹?西塞当时是著名虚拟主机托管商DreamHost的员工,还发布过非常棒的软件打包工具fpm,并主办着一年一度的Sysadmin Advent Calendar(advent calendar文化源自基督教氛围浓厚的Perl社区,在每年圣诞来临的12月举办,从12月1日起至12月24日止,每天发布一篇小短文介绍主题相关技术)。
  Logstash动手很早,对比一下,Scribed诞生于2008年,Flume诞生于2010年,Graylog2诞生于2010年,Fluentd诞生于2011年。Scribed在2011年进入半死不活的状态,大大激发了其他各种开源日志收集处理框架的蓬勃发展,Logstash也从2011年开始进入commit密集期并延续至今。
  作为一个系出名门的产品,Logstash的身影多次出现在Sysadmin Weekly上,它和小伙伴们Elasticsearch、Kibana直接成为了和商业产品Splunk做比较的开源项目(乔丹?西塞曾经在博客上承认设计想法来自AWS平台上最大的第三方日志服务商Loggly,而Loggly两位创始人都曾是Splunk员工)。
  2013年,Logstash被Elasticsearch公司收购,ELK Stack正式成为官方用语。Elasticsearch本身也是近两年最受关注的大数据项目之一,三次融资已经超过一亿美元。在Elasticsearch开发人员的共同努力下,Logstash的发布机制、插件架构也愈发科学和合理。
  社区文化
  日志收集处理框架很多,如Scribe是Facebook出品,Flume是Apache基金会项目,都算声名赫赫。但Logstash因乔丹?西塞的个人性格,形成了一套独特的社区文化。每一个在Google Groups的Logstash-users组里问答的人都会看到这么一句话:
  Remember:if a new user has a bad time,it’s a bug in Logstash.
  所以,Logstash是一个开放的、极其互助和友好的大家庭。如有问题,仅管在Github Issue、Google Groups、Freenode#logstash Channel上发问就好!
  第1章 入门示例
  什么是Logstash?为什么要用Logstash?怎么用Logstash?这是本章将要介绍的内容。本章从最基础的知识着手,从以下几步介绍Logstash的必备知识。1)下载安装。介绍Logstash软件的多种安装部署方式,并给出推荐的方式。2)初次运行。通过Hello World示例,演示Logstash最简单的运用,解释其逻辑上的基础原理。3)配置语法。介绍Logstash的DSL设计,Logstash命令的运行参数。4)插件安装。灵活和丰富的插件是Logstash最重要的优势。本节会介绍Logstash插件的安装方式。5)长期运行方式。从初次终端测试到长期后台稳定运行,本节会介绍几种不同方案,供读者根据实际场景选择。
  1.1 下载安装
  1.下载
  Logstash从1.5版本开始,将核心代码和插件代码完全剥离,并重构了插件架构逻辑,所有插件都以标准的Ruby Gem包形式发布。
  下载官方软件包的方式有以下几种:
  ?压缩包方式
  https://artifacts.elastic.co/downloads/logstash/logstash-5.1.1.tar.gz
  ?Debian平台
  https://artifacts.elastic.co/downloads/logstash/logstash-5.1.1.deb
  ?Redhat平台
  https://artifacts.elastic.co/downloads/logstash/logstash-5.1.1.rpm
  2.安装
  在上面这些包中,你可能更偏向使用rpm、dpkg等软件包管理工具来安装Logstash,开发者在软件包里预定义了一些依赖。比如,logstash-5.0.2就依赖于jre包。
  另外,软件包里还包含有一些很有用的脚本程序,比如/etc/init.d/logstash。
  如果你必须在一些很老的操作系统上运行Logstash,那你只能用源代码包部署了,记住要自己提前安装好Java:
精彩插图