ELK/EFK简介
ELK是三个开源软件的缩写,分别表示:Elasticsearch,Logstash,Kibana。新增了一个FlieBeat,它是一个轻量级的日志收集处理工具,FlieBeat占用资源少,适用于在各个服务器上搜集日之后,传输给Logstash。Elasticsearch:开源分布式搜索引擎,提供搜集,分析,缓存数据三大功能,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,rest
·
ELK是三个开源软件的缩写,分别表示:Elasticsearch,Logstash,Kibana。新增了一个FlieBeat,它是一个轻量级的日志收集处理工具,FlieBeat占用资源少,适用于在各个服务器上搜集日之后,传输给Logstash。
Elasticsearch:开源分布式搜索引擎,提供搜集,分析,缓存数据三大功能,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负 载等。
Logstash
主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,
client
端安装在需要收集日志的主机上,
server
端负责将收到的各节点日志进行过
滤、修改等操作在一并发往
elasticsearch
上去。
Kibana
也是一个开源和免费的工具,
Kibana
可以为
Logstash
和
ElasticSearch
提供的日志分析友
好的
Web
界面,可以帮助汇总、分析和搜索重要数据日志。
从ELK到EFK
由于
logstash
内存占用较大,灵活性相对没那么好,
ELK
正在被
EFK
逐步替代
.
其中本文所讲的
EFK
是 Elasticsearch+Fluentd+Kfka。
Kubernetes
中比较流行的日志收集解决方案是
Elasticsearch
、
Fluentd
和
Kibana
(
EFK)
技术栈,也是官方现在比较推荐的一种方案。
Fluentd
是一个收集日志文件的开源软件,目前提供数百个插件可用于存储大数据用于日志搜索,数据分析和存储。
Fluentd适用于以下场景。
收集多台服务器的访问日志进行可视化
在AWS
等云端使用
AutoScaling
时把日志文件收集至
S3(
需要安装插件
)
收集客户端的信息并输出至Message Queue
,供其他应用处理
常见架构:
1、
Elasticsearch + Logstash + Kibana
Elasticsearch:收集日志
Logstash:分析日志
Kibana:展示
2、Elasticsearch + Logstash + Filebeat + Kibana
与上一个架构相比,增加了
filebeat
模块,它是一个轻量级的日志收集处理工具
(Agent)
,部署在客户 端,Filebeat
占用资源少,适合于在各个服务器上搜集日志后传输给
Logstash
,生产中使用较多,但缺 点是logstash
出现故障,会造成日志丢失。
3、
Elasticsearch + Logstash + Filebeat + Kibana + Redis
通过增加中间件来避免日志丢失。
4、Elasticsearch + Fluentd + Filebeat + Kibana
使用了
fluentd
代替了
logstash
。当然,我们也可以使用
Fluentd
的插件(
fluent-plugin-elasticsearch)直接将日志发送给
Elasticsearch
,可以根据自己的需要替换掉
Filebeat
,从而形成
Fluentd => ElasticSearch => Kibana
的架构,也称作
EFK
。
基本流程
下面以第三种架构为例,基本流程如下:
1
、
Logstash-Shipper
获取日志信息发送到
redis
。
2
、
Redis
在此处的作用是防止
ElasticSearch
服务异常导致丢失日志,提供消息队列的作用。
3
、
logstash
是读取
Redis
中的日志信息发送给
ElasticSearch
。
4
、
ElasticSearch
提供日志存储和检索。
5
、
Kibana
是
ElasticSearch
可视化界面插件。
更多推荐
已为社区贡献1条内容
所有评论(0)