目錄
前言
Logstash
入门示例
下载安装
hello world
配置语法
plugin的安装
长期运行
插件配置
input配置
file
stdin
syslog
tcp
codec配置
json
multiline
collectd
netflow
filter配置
date
grok
dissect
geoip
json
kv
metrics
1.1
1.2
1.2.1
1.2.1.1
1.2.1.2
1.2.1.3
1.2.1.4
1.2.1.5
1.2.2
1.2.2.1
1.2.2.1.1
1.2.2.1.2
1.2.2.1.3
1.2.2.1.4
1.2.2.2
1.2.2.2.1
1.2.2.2.2
1.2.2.2.3
1.2.2.2.4
1.2.2.3
1.2.2.3.1
1.2.2.3.2
1.2.2.3.3
1.2.2.3.4
1.2.2.3.5
1.2.2.3.6
1.2.2.3.7
2
mutate
ruby
split
elapsed
output配置
elasticsearch
email
exec
file
nagios
statsd
stdout
tcp
hdfs
场景示例
nginx访问日志
nginx错误日志
postfix日志
ossec日志
windows系统日志
Java日志
MySQL慢查询日志
性能与测试
generator方式
监控方案
logstash-input-heartbeat方式
jmx启动参数方式
API方式
扩展方案
通过redis传输
1.2.2.3.8
1.2.2.3.9
1.2.2.3.10
1.2.2.3.11
1.2.2.4
1.2.2.4.1
1.2.2.4.2
1.2.2.4.3
1.2.2.4.4
1.2.2.4.5
1.2.2.4.6
1.2.2.4.7
1.2.2.4.8
1.2.2.4.9
1.2.3
1.2.3.1
1.2.3.2
1.2.3.3
1.2.3.4
1.2.3.5
1.2.3.6
1.2.3.7
1.2.4
1.2.4.1
1.2.4.2
1.2.4.2.1
1.2.4.2.2
1.2.4.2.3
1.2.5
1.2.5.1
3
通过kafka传输
AIX 平台上的logstash-forwarder-java
rsyslog
nxlog
heka
fluent
Message::Passing
源码解析
pipeline流程
Event的生成
插件开发
utmp插件示例
Beats
filebeat
packetbeat网络流量分析
metricbeat
winlogbeat
ElasticSearch
架构原理
segment、buffer和translog对实时性的影响
segment merge对写入性能的影响
routing和replica的读写过程
shard的allocate控制
自动发现的配置
接口使用示例
增删改查操作
搜索请求
Painless脚本
reindex接口
性能优化
1.2.5.2
1.2.5.3
1.2.5.4
1.2.5.5
1.2.5.6
1.2.5.7
1.2.5.8
1.2.6
1.2.6.1
1.2.6.2
1.2.7
1.2.7.1
1.3
1.3.1
1.3.2
1.3.3
1.3.4
1.4
1.4.1
1.4.1.1
1.4.1.2
1.4.1.3
1.4.1.4
1.4.1.5
1.4.2
1.4.2.1
1.4.2.2
1.4.2.3
1.4.2.4
1.4.3
4
bulk提交
gateway配置
集群状态维护
缓存
fielddata
curator工具
profile接口
rally测试方案
多集群互联
别名的应用
映射与模板的定制
puppet-elasticsearch模块的使用
计划内停机升级的操作流程
镜像备份
rollover和shrink
Ingest节点
Hadoop 集成
spark streaming交互
权限管理
Shield
Search-Guard 在 Elasticsearch 2.x 上的运用
监控方案
监控相关接口
集群健康状态
节点状态
索引状态
任务管理
cat 接口的命令行使用
日志记录
实时bigdesk方案
1.4.3.1
1.4.3.2
1.4.3.3
1.4.3.4
1.4.3.5
1.4.3.6
1.4.3.7
1.4.4
1.4.5
1.4.6
1.4.7
1.4.8
1.4.9
1.4.10
1.4.11
1.4.12
1.4.13
1.4.13.1
1.4.14
1.4.14.1
1.4.14.2
1.4.15
1.4.15.1
1.4.15.1.1
1.4.15.1.2
1.4.15.1.3
1.4.15.1.4
1.4.15.1.5
1.4.15.2
1.4.15.3
5
cerebro
zabbix trapper方案
ES在运维监控领域的其他玩法
percolator接口
watcher报警
ElastAlert
时序数据库
Grafana
juttle
Etsy的Kale异常检测
Kibana 5
安装、配置和运行
生产环境部署
discover功能
各visualize功能
area
table
line
markdown
metric
pie
tile map
vertical bar
dashboard功能
timelion 介绍
console 介绍
setting功能
常用sub agg示例
函数堆栈链分析
分图统计
1.4.15.4
1.4.15.5
1.4.16
1.4.16.1
1.4.16.2
1.4.16.3
1.4.16.4
1.4.16.5
1.4.16.6
1.4.16.7
1.5
1.5.1
1.5.2
1.5.3
1.5.4
1.5.4.1
1.5.4.2
1.5.4.3
1.5.4.4
1.5.4.5
1.5.4.6
1.5.4.7
1.5.4.8
1.5.5
1.5.6
1.5.7
1.5.8
1.5.9
1.5.9.1
1.5.9.2
6
TopN的时序趋势图
响应时间的百分占比趋势图
响应时间的概率分布在不同时段的相似度对比
源码解析
.kibana索引的数据结构
主页入口
discover解析
visualize解析
dashboard解析
插件
可视化开发示例
后端开发示例
完整app开发示例
Kibana报表
竞品对比
推荐阅读
合作名单
捐赠名单
1.5.9.3
1.5.9.4
1.5.9.5
1.5.10
1.5.10.1
1.5.10.2
1.5.10.3
1.5.10.4
1.5.10.5
1.5.11
1.5.11.1
1.5.11.2
1.5.11.3
1.5.12
1.6
1.7
1.8
1.9
7
前言
前言
Elastic Stack 是 原 ELK Stack 在 5.0 版本加入 Beats 套件后的新称呼。
Elastic Stack 在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领
域,开源界的第一选择。和传统的日志处理方案相比,Elastic Stack 具有如下几个
优点:
处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程
才能使用;
配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL
设计,都是目前业界最通用的配置语法设计;
检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以
达到全天数据查询的秒级响应;
集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩
展的;
前端操作炫丽。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功
能,生成炫丽的仪表板。
当然,Elastic Stack 也并不是实时数据分析界的灵丹妙药。在不恰当的场景,反而
会事倍功半。我自 2014 年初开 QQ 群交流 Elastic Stack,发现网友们对 Elastic
Stack 的原理概念,常有误解误用;对实现的效果,又多有不能理解或者过多期望
而失望之处。更令我惊奇的是,网友们广泛分布在传统企业和互联网公司、开发和
运维领域、Linux 和 Windows 平台,大家对非专精领域的知识,一般都缺乏了解,
这也成为使用 Elastic Stack 时的一个障碍。
为此,写一本 Elastic Stack 技术指南,帮助大家厘清技术细节,分享一些实战案
例,成为我近半年一大心愿。本书大体完工之后,幸得机械工业出版社华章公司青
睐,以《ELK Stack 权威指南》之名重修完善并出版,有意收藏者欢迎购买。
本人于 Elastic Stack,虽然接触较早,但本身专于 web 和 app 应用数据方面,动
笔以来,得到诸多朋友的帮助,详细贡献名单见合作名单。此外,还要特别感谢曾
勇(medcl)同学,完成 ES 在国内的启蒙式分享,并主办 ES 中国用户大会;吴晓刚
(wood)同学,积极帮助新用户们,并最早分享了携程的 Elastic Stack 日亿级规模的
实例。
欢迎加入 Elastic Stack 交流 QQ 群:315428175。
8