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间建一个相似于快递柜性能的缓存销峰零碎. 比方在beatslogstash间应用kafka来做传输的管道,这样就能够在日志数据霎时变大的时候挡住这个霎时的峰值,让logstashelasticsearch始终以绝对平滑的资源占用稳固的运行.

Elastic Stackelasticsearch处于外围位置,其余的局部其实是可选的.elasticsearch通过RESTFul API和SDK裸露本人的交互接口,外围的服务能发送本人的数据到elasticsearch中就行.

上面的图片清晰的展现的下面我讲的关系

本文原创链接: 疾速了解ELK