求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

ELKStack权威指南查看源代码讨论查看历史

跳转至: 导航搜索

来自 孔夫子网 的图片

ELKStack权威指南》,饶琛琳 著,出版社: 机械工业出版社。

机械工业出版社成立于1950年,是建国后国家设立的第一家科技出版社,前身为科学技术出版社,1952年更名为机械工业出版社[1]。机械工业出版社(以下简称机工社)由机械工业信息研究院作为主办单位,目前隶属于国务院国资委[2]

内容简介

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

目录

前 言

第一部分 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

参考文献