新書推薦:
《
大思维:哥伦比亚商学院六步创新思维模型
》
售價:HK$
72.8
《
宏观经济学(第三版)【2024诺贝尔经济学奖获奖者作品】
》
售價:HK$
155.7
《
UE5虚幻引擎必修课(视频教学版)
》
售價:HK$
110.9
《
真需求
》
售價:HK$
110.9
《
阿勒泰的春天
》
售價:HK$
50.4
《
如见你
》
售價:HK$
51.3
《
人格阴影 全新修订版,更正旧版多处问题。国际分析心理学协会(IAAP)主席力作
》
售價:HK$
67.0
《
560种野菜野果鉴别与食用手册
》
售價:HK$
67.1
|
內容簡介: |
ELK是Elasticsearch、Logstash、Kibana三个开源软件的组合,是目前开源界流行的实时数据分析方案,成为实时日志处理领域开源界的第壹选择。然而,ELK也并不是实时数据分析界的灵丹妙药,使用不恰当,反而会事倍功半。本书对ELK的原理进行了解剖,不仅分享了大量实战案例和实现效果,而且分析了部分源代码,使读者不仅知其然还知其所以然。读者可通过本书的学习,快速掌握实时日志处理方法,并搭建符合自己需要的大数据分析系统。本书分为三大部分,第壹部分“Logstash”介绍Logstash的安装与配置、场景示例、性能与测试、扩展方案、源码解析、插件开发等,第二部分“Elasticsearch”介绍Elasticsearch的架构原理、数据接口用例、性能优化、测试和扩展方案、映射与模板的定制、监控方案等,第三部分“Kibana”介绍Kibana3和Kibana5的特点对比,Kibana的配置、案例与源代码解析。
|
目錄:
|
目录Contents
前 言
第一部分 Logstash
第1章 入门示例 3
1.1 下载安装 3
1.2 Hello World4
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 输出到Elasticsearch49
2.4.2 发送email54
2.4.3 调用系统命令执行54
2.4.4 保存成文件55
2.4.5 报警发送到Nagios56
2.4.6 statsd58
2.4.7 标准输出stdout61
2.4.8 TCP发送数据62
2.4.9 输出到HDFS62
第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 配置Logstash72
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 layout79
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类型扩展Logstash96
5.1.3 输出到Redis97
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-forwarder103
5.3.1 Indexer端配置104
5.3.2 Shipper端配置104
5.3.3 AIX上的logstash-forwarder-java106
5.4 Rsyslog107
5.4.1 常用模块介绍107
5.4.2 与Logstash合作109
5.4.3 Mmexternal模块109
5.5 Nxlog112
5.6 Heka114
5.7 Fluentd115
5.7.1 配置示例115
5.7.2 Fluentd插件117
5.8 Message::Passing117
第6章 Logstash源码解析119
6.1 Pipeline120
6.2 Plugins122
第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章 Beats138
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 Filebeat142
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 metricbeat150
8.4.1 配置示例152
8.4.2 各模块输出指标示例152
8.4.3 采集Docker中的指标164
8.5 winlogbeat164
第二部分 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
|
內容試閱:
|
Preface前言《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日亿级规模的实例。
|
|