ELK简单介绍

1.是什么

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana。
(现在新增了一个FileBeat一起使用,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。)

filebeats和Logstash
这两个实际上是一种类型的工具,都是可以放在服务器端对日志进行收集的“矿工”。

Elasticsearch
这个是发生索引,搜索和分析数据的软件。但是我现在看来就是一个转存的仓库一样,把之前拿到的各种各样的日志or文档,变成json格式,再对这样一个非结构化数据进行处理,最后交给kibana展示。

Kibana
是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

2. 解决了什么问题

2.1 数据收集、处理、分析的问题

这就是一套组合拳,现在可以用在日志分析系统上面,别的数据分析方式也可以用。很适合动态增加数据的那种情况。提供的是一整套解决方案,在适配性方面比其他单一的组件好多了。

3. 优缺点

3.1 优点

1、新一代日志收集、管理、分析系统。有有好的操作页面。web交互做的蛮好。
2、分布式(这就意味着高可用,坏了一台也可以工作)

3.2 待优化点

要在实践中慢慢探索

4.基本使用

详情见后面Kibana、elasticSearch、Logstash 、filebeat 组件的简单介绍

5.基本原理

5.1 系统结构

ELK系统一般都会引入消息队列机制,位于各个节点上的Logstash Agent先将数据/日志传递给Kafka(或者Redis),并将队列中消息或数据间接传递给Logstash,Logstash过滤、分析后将数据传递给Elasticsearch存储。最后由Kibana将日志和数据呈现给用户。因为引入了Kafka(或者Redis),所以即使远端Logstash server因故障停止运行,数据将会先被存储下来,从而避免数据丢失。

几种组件可以进行结合,会有不同的架构方式。下面给出几种简单的例子。

ELK组件组合方案1:
fa1.png
ELK组件组合方案2:
fa2.png
ELK组件组合方案3:
fa3.png

6.参考文献

1、ELK原理与介绍
https://www.cnblogs.com/aresxin/p/8035137.html

7.学习疑惑

Q:我们现在数据服务中心用的就是那种类型的方案结构?
A:需要问一下厂商老师

Q:我行现在都用在那些业务场景中去了?
A:需要问一下厂商和带教老师