集中式日志分析平台Elastic Stack7.0全方位应用指南;
经典ELK Stack的全*版本;
70万字,Elasticsearch、Logstash、Kibana、Beats四大组件全收录;
370余段实例展示,循序渐进教你搭建自己的数据分析平台;
开发人员必备!
《Elastic Stack应用宝典》系统地介绍了Elastic Stack应用与开发。Elastic Stack由一组处理和分析全文数据的组件构成,在日志、监控等领域中都有着广泛应用。《Elastic Stack应用宝典》在分析了Elastic Stack体系结构的基础之上,对Elastic Stack中的Elasticsearch、Logstash、Kibana和Beats组件分章节做了详细介绍。在讲解这些组件时,还列举了大量的应用实例,使读者可以在实践操作中迅速掌握这些组件的使用方法。
《Elastic Stack应用宝典》以Elastic Stack*新发布的版本7为基础编写,介绍了Elastic Stack中引入的新技术和新变化。《Elastic Stack应用宝典》适于有一定开发基础的软件编程人员,也可以做为架构师和运维人员的参考资料。
前言
第1章 初识Elastic Stack
1.1 从ELK到Elastic Stack
1.1.1 历史
1.1.2 版本演变
1.1.3 许可授权
1.1.4 应用场景
1.2 Elasticsearch概览
1.2.1 安装与配置
1.2.2 体验Elasticsearch
1.3 Kibana概览
1.3.1 安装与配置
1.3.2 连接Elasticsearch
1.3.3 体验Kibana
1.3.4 导入样例数据
1.4 Logstash概览
1.4.1 安装Logstash
1.4.2 启动Logstash
1.4.3 连接Elasticsearch
1.5 Beats概览
1.5.1 安装Filebeats
1.5.2 配置Filebeat
1.5.3 启动Filebeat
1.6 本章小结
第2章 Elasticsearch原理与实现
2.1 全文检索与倒排索引
2.1.1 全文检索
2.1.2 倒排索引
2.1.3 Elasticsearch索引
2.1.4 Elasticsearch映射
2.2 文档字段
2.2.1 字段索引
2.2.2 字段存储
2.2.3 字段参数
2.2.4 元字段
2.2.5 字段限制
2.3 字段数据类型
2.3.1 核心类型
2.3.2 衍生类型
2.3.3 多数据类型
2.4 分片与复制
2.4.1 分片与集群
2.4.2 路由
2.4.3 容量规划
2.4.4 副本
2.5 客户端API概览
2.5.1 REST接口
2.5.2 Painless脚本
2.5.3 Java API
2.6 本章小结
第3章 Elasticsearch索引与文档
3.1 索引别名与配置
3.1.1 索引别名
3.1.2 索引配置
3.2 动态映射与索引模板
3.2.1 动态字段
3.2.2 动态模板
3.2.3 索引模板
3.2.4 _mapping接口
3.3 容量控制与缓存机制
3.3.1 _split接口
3.3.2 _shrink接口
3.3.3 _reindex接口
3.3.4 缓存机制
3.3.5 查看运行状态
3.4 操作文档
3.4.1 索引文档
3.4.2 获取文档
3.4.3 删除文档
3.4.4 更新文档
3.4.5 批量操作
3.5 本章小结
第4章 Elasticsearch分析与检索
4.1 _search接口
4.1.1 基于URI
4.1.2 基于请求体
4.2 分页与排序
4.2.1 from/size参数
4.2.2 scroll参数
4.2.3 search_after参数
4.2.4 sort参数
4.3 字段投影
4.3.1 _source参数
4.3.2 stored_fields参数
4.3.3 docvalue_fields参数
4.3.4 script_fields参数
4.4 分析器与规整器
4.4.1 设置分析器
4.4.2 _analyze接口
4.4.3 _termvectors接口
4.4.4 规整器
4.5 内置分析器与中文分析器
4.5.1 standard分析器
4.5.2 stop分析器
4.5.3 pattern分析器
4.5.4 custom分析器
4.5.5 其它内置分析器
4.5.6 中文分析器
4.6 其它检索接口
4.6.1 _count接口
4.6.2 _msearch接口
4.6.3 _scripts接口
4.6.4 辅助接口
4.7 本章小结
第5章 叶子查询与模糊查询
5.1 基于词项的查询
5.1.1 term、terms和terms_set
5.1.2 range与exists
5.1.3 使用模式匹配
5.1.4 type与ids
5.1.5 停止词与common查询
5.2 基于全文的查询
5.2.1 词项匹配
5.2.2 短语匹配
5.2.3 查询字符串
5.2.4 间隔查询
5.3 模糊查询与纠错提示
5.3.1 Levenshtein与NGram
5.3.2 模糊查询
5.3.3 纠错与提示
5.4 本章小结
第6章 相关性评分与组合查询
6.1 相关性评分
6.1.1 相关度模型
6.1.2 TF/IDF
6.1.3 BM25
6.1.4 相关度解释
6.1.5 相关度权重
6.2 组合查询与相关度组合
6.2.1 bool组合查询
6.2.2 dis_max组合查询
6.2.3 constant_score查询
6.2.4 boosting查询
6.2.5 function_score查询
6.2.6 相关度组合
6.3 本章小结
第7章 聚集查询
7.1 度量聚集
7.1.1 平均值聚集
7.1.2 计数聚集与极值聚集
7.1.3 统计聚集
7.1.4 百分位聚集
7.2 使用范围分桶
7.2.1 数值范围
7.2.2 间隔范围
7.2.3 聚集嵌套
7.3 使用词项分桶
7.3.1 terms聚集
7.3.2 significant_terms聚集
7.3.3 significant_text聚集
7.3.4 样本
7.4 单桶聚集与聚集组合
7.4.1 单桶聚集
7.4.2 聚集组合
7.4.3 邻接矩阵
7.5 管道聚集
7.5.1 基于兄弟聚集
7.5.2 基于父聚集
7.5.3 矩阵聚集
7.6 本章小结
第8章 处理特殊数据类型
8.1 父子关系
8.1.1 join类型
8.1.2 has_child查询
8.1.3 has_parent查询
8.1.4 parent_id查询
8.1.5 children聚集
8.1.6 parent聚集
8.2 嵌套类型
8.2.1 nested类型
8.2.2 nested查询
8.2.3 nested聚集
8.3.4 reverse_nested聚集
8.3 处理地理信息
8.3.1 GeoHash
8.3.2 地理类型字段
8.3.3 geo_shape查询
8.3.4 geo_bounding_box查询
8.3.5 geo_distance查询
8.3.6 geo_polygon查询
8.3.7 geohash_grid与geo_distance
8.4 使用SQL语言
8.4.1 _sql接口
8.4.2 SQL语法
8.4.3 操作符与函数
8.5 本章小结
第9章 Kibana文档发现
9.1 索引模式
9.1.1 创建索引模式
9.1.2 管理模式字段
9.2 时间范围与过滤器
9.2.1 数据发现界面结构
9.2.2 使用时间过滤文档
9.2.3 自定义过滤器
9.3 使用查询语言
9.3.1 修改查询语言
9.3.2 使用Lucene语言
9.3.3 使用KQL语言
9.3.4 查询对象
9.4 文档展示与字段过滤
9.4.1 柱状图
9.4.2 文档展示
9.4.3 添加过滤器
9.4.4 分享
9.5 本章小结
第10章 Kibana文档可视化
10.1 二维坐标图
10.1.1 面积图
10.1.2 折线图与柱状图
10.1.3 度量叠加
10.1.4 桶型叠加
10.2 圆形与弧形
10.2.1 饼图配置
10.2.2 饼图叠加
10.2.3 目标
10.2.4 仪表
10.3 热度
10.3.1 热力图
10.3.2 标签云
10.3.3 坐标地图
10.3.4 区域地图
10.4 表格与控件
10.4.1 表格
10.4.2 控件
10.5 本章小结
第11章 Kibana综合展示
11.1 仪表盘
11.1.1 创建仪表盘
11.1.2 控件作用
11.1.3 分享
11.2 画布
11.2.1 使用workpad
11.2.2 管理图片资源
11.2.3 添加数据元素
11.3 监控
11.3.1 开启监控
11.3.2 查看监控图表
11.4 地图
11.4.1 叠加图层
11.4.2 使用聚集
11.4.3 矢量图层
11.5 本章小结
第12章 Logstash结构与配置
12.1 Logstash体系结构
12.1.1 插件
12.1.2 事件
12.1.3 队列
12.1.4 Logstash监控
12.2 管道配置
12.2.1 主管道配置
12.2.2 单管道配置
12.2.3 多管道配置
12.3 编解码器插件
12.3.1 plain编解码器
12.3.2 按行编解码
12.3.3 JSON编解码
12.3.4 序列化编解码
12.3.5 collectd编解码
12.3.6 cef编解码
12.4 本章小结
第13章 输入与输出
13.1 beats与elasticsearch
13.1.1 beats插件
13.1.2 elasticsearch插件
13.1.3 dead_letter_queue插件
13.2 面向文件的插件
13.2.1 事件属性
13.2.2 读取模式
13.2.3 SinceDB
13.2.4 多文件
13.2.5 配置参数
13.2.6 文件输出插件
13.3 面向关系型数据库的插件
13.3.1 连接与语句
13.3.2 执行状态
13.3.3 配置参数
13.4 面向消息中间件的插件
13.4.1 Kafka插件
13.4.2 Redis插件
13.4.3 RabbitMQ插件
13.5 面向通信协议的插件
13.5.1 TCP协议
13.5.2 HTTP协议
13.5.3 UDP协议
13.5.4 IMAP与SMTP协议
13.6 其它插件
13.6.1 执行命令
13.6.2 自动生成
13.6.3 云服务
13.6.4 未绑定插件
13.7 本章小结
第14章 过滤器
14.1 全文数据结构化
14.1.1 grok过滤器
14.1.2 dissect过滤器
14.2 处理半结构化文本
14.2.1 json过滤器
14.2.2 xml过滤器
14.2.3 csv过滤器
14.2.4 kv过滤器
14.3 事件聚集
14.3.1 task_id与code
14.3.2 map与map_meta
14.3.3 其它参数
14.4 使用外部资源
14.4.1 Elasticsearch
14.4.2 JDBC
14.4.3 IP地址
14.4.4 Memcached
14.4.5 HTTP
14.5 数据转换
14.5.1 mutate过滤器
14.5.2 de_dot过滤器
14.5.3 translate过滤器
14.5.4 date过滤器
14.5.5 urldecode与useragent
14.6 数据添加与删除
14.6.1 uuid与fingerprint
14.6.2 cidr过滤器
14.6.3 产生事件
14.6.4 截取
14.6.5 删除
14.6.6 限流
14.6.7 其它过滤器
14.7 本章小结
第15章 Beats原理与结构
15.1 Beats体系结构
15.1.1 共有组件
15.1.2 Beats配置
15.1.3 Beats与Kibana
15.2 Beats处理器
15.2.1 添加逻辑信息
15.2.2 添加基础信息
15.2.3 添加云信息
15.2.4 删除数据
15.2.5 转换数据
15.3 Beats输出组件
15.3.1 输出到Elasticsearch
15.3.2 输出到Logstash
15.3.3 输出到Kafka
15.3.4 输出到Redis
15.3.5 输出到文件
15.4 本章小结
第16章 输入组件
16.1 网络通信
16.1.1 安装配置
16.1.2 通信协议
16.1.3 通信流程
16.1.4 本地进程
16.1.5 事件属性
16.2 文件数据
16.2.1 输入类型
16.2.2 模块
16.2.3 文件读取
16.3 度量数据
16.3.1 Metricbeat
16.3.2 Heartbeat
16.3.3 Uptime
16.4 操作系统信息
16.4.1 Auditbeat
16.4.2 Journalbeat
16.4.3 Winlogbeat
16.5 本章小结