项目staging环境日志难以搜索,计划搭建EFK管理日志,但是EFK内存消耗太大,再新增云服务器不划算,打算搭建在本地(16G内存)。
什么是 EFK
EFK不是一个软件,而是一套解决方案,并且都是开源软件,其中 ELasticsearch
负责日志保存和搜索,FileBeat
负责收集日志,Kibana
负责界面。
- Elasticsearch
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。 - FileBeat
Filebeat 隶属于 Beats,搜集日志数据并上载到Elasticsearch
、Logstash
、Redis
等平台。 - Kibana
Kibana 提供日志分析的友好 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
环境现状
- 本地环境:Windows 10,Intel(R) Core(TM) i5-7500 CPU,内存 16G
- 远程环境:SUSE Linux Enterprise Server 11,可用内存不足 1G
- 本地可以启虚拟机,但没钱买额外的云服务器。
最初想法
目前有3种思路:
- 本地启动Elasticsearch、Kibana、Filebeat,服务器启动FTP,并映射到本地网络驱动器,Filebeat配置从网络驱动器读取log。
- 本地启动Elasticsearch、Kibana,用反向代理工具FRP暴露Elasticsearch的9200端口到公网(注意配置鉴权),远程启动Filebeat,输出到本地的Elasticsearch。
- 本地启动Elasticsearch、Kibana,Logstash,远程启动Filebeat、Redis,远程的Filebeat输出到Redis,本地的Logstash从Redis上读取,转发给Elasticsearch。