1、为什么需要日志系统?
首先咱们会想到分布式日志管理系统 ELK。
分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
今天说的是EFK F是FileBeat,隶属于Beats,是个搜集文件数据。
FileBeat对比Logstash :
LogStash出现的时间相对Beats较早,使用java写的,相关插件使用jruby写的,对于机器消耗的资源会比Beats消耗很多,Beats(Beats包括的子产品有FileBeat,MetricBeat等,FileBeat用于采集日志)是用go语言写的在性能上更胜一筹,而且非常轻量级占用的系统资源更少,但是Beats相对于LogStash的插件更少,对于快速搭建日志系统已经够用了,后续也会给出在日志量增加的情况下怎么升级日志系统。
2.开始搭建 docker+EFK
先说一下注意事项
- 只是简单的方案,目前存在日志收集完,日志散乱
- 多服务日志配置比较繁琐,需要更熟悉filebeat。(多服务日志建议挂载一个目录下)
- EFK镜像版本一定要一致
- 使用Filebeat既可能产生数据重复(至今不会解决哈哈哈)
- Es配置合理的内存
首先拉取镜像(如何搭建docker环境本文就不赘述了,baidu或者google很多教程),这里用的版本都是最新的7.7.1版本,具体版本可以根据自己的需要选取,建议最少6.7版本以上,因为每升一个版本都会增加一些新的东西,也会优化很多东西。
2.1 首先使用docker拉取镜像(一定要6.7版本以上的): 当前是7.7.1
docker pull elasticsearch:7.7.1
等待拉取

本文详细指导了如何使用Docker快速部署和配置Elasticsearch、FileBeat和Kibana组成的日志分析系统,包括版本选择、镜像拉取、配置文件管理及问题排查。重点讲解了FileBeat与Logstash的性能对比和日志收集策略。
最低0.47元/天 解锁文章
1万+





