ELK 是什么
ELK
次要是代指 Elastic Stack
, 它是elastic
技术生态栈中的 3 个次要组件的缩写. 这 3 个组件是: elasticsearch
,logstash
,kibana
.
前面随着技术的欠缺又退出了 beats
. 其中最为大家熟知的就是filebeats
. filebeats
不是 beats
外面的惟一组件,beats
是一个大的家族, 更多的 beats
组件请看: beats
多年的倒退后,Elastic Stack
曾经从最后的 elasticsearch
倒退为一个欠缺的由多个组件独特合作的欠缺的生态.
它次要用于如下几个场景:
-
搜寻
- 一些在线购物网站基于
elasticsearch
做为商品搜寻. 比方京东, 腾讯和阿里有宽泛的应用 - 通用网页搜索引擎, 比方 duckduckgo
- 社交网站, 博客网站的垂直搜寻
- 一些在线购物网站基于
-
日志检索
- 云端日志的检索, 不便开发人员定位问题, 以往须要在 Linux 上手动查看日志当初能够间接在 kibana 上疾速收集服务群的日志
-
零碎状态信息的收集, 检索, 可视化展现. 大量用于云端服务群的状态感知上
- 服务集群的指标信息可视化展现
- 服务日志的检索
- 业务经营信息的可视化
- 服务集群的状态感知和异样状态捕捉, 告警
- 大数据分析
ELK 间的关系是什么
简略的讲是高低关系:
elasticsearch
是外围负责数据的存储, 对数据做索引并提供检索服务logstash
是原始数据的传输通道, 提供一些高级的性能, 比方对原始数据做一些解决将无格局的数据转化为某种格局的数据后提供给elasticsearch
beats
是数据的采集代理, 个别装置在被采集的服务器上, 抓取指标服务器的各项数据传输给logstash
原始数据其实能够间接发送到 elasticsearch
, 这是最原始的形式, 这种形式的话对elasticsearch
的压力会大一些, 比方数据量周期性稳定会导致承载 elasticsearch
的服务器周期性的面临压力.
为了解决下面的问题,logstash
呈现了, 它相当于 elasticsearch
的小秘书, 将本来要发送到 elasticsearch
的数据先简略整顿演绎一遍而后再发送到 elasticsearch
中, 这样省去了 elasticsearch
承受原始数据的压力, 让 elasticsearch
专一于数据的解决和保留
logstash
的性能比拟全面并且资源消耗略大, 如果只是须要采集指标的数据并不需要做过多的数据处理, 那么咱们只须要一个轻量的采集器即可, 这时就呈现了 go 语言写的 beats
, 你能够认为beats
就是快递员, 它将各个零散指标上的数据一直的快递到秘书 logstash
这里. 这样就不用再每个指标上装置 logstash
了
有些公司也会在快递员 beats
和秘书 logstash
间建一个相似于快递柜性能的缓存销峰零碎. 比方在 beats
和logstash
间应用 kafka
来做传输的管道, 这样就能够在日志数据霎时变大的时候挡住这个霎时的峰值, 让 logstash
和elasticsearch
始终以绝对平滑的资源占用稳固的运行.
在 Elastic Stack
中elasticsearch
处于外围位置, 其余的局部其实是可选的.elasticsearch
通过 RESTFul API 和 SDK 裸露本人的交互接口, 外围的服务能发送本人的数据到 elasticsearch
中就行.
上面的图片清晰的展现的下面我讲的关系
本文原创链接: 疾速了解 ELK