Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash 是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储以后使用
kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
什么是filebeat?
Filebeat是一个轻量级的托运人,通过socket的方式,用于转发和集中日志数据。Filebeat作为代理安装在服务器上,监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或 Logstash进行索引。
本文的filebeat作用是采集特定目录下的日志,并将其发送出去,但是它只能采集并无法对数据进行筛选,这时候就用到logstash了,logstash拥有众多插件可提供过滤筛选功能,由于logstash本身是基于jdk的,所以占用内存较大,而filebeat相较下,占用的内存就不是很多了。
所以可采用如下的方案采集筛选日志:
1、每个项目都伴随着一个filebeat采集日志,你只需给他配置日志所在目录(可用正则匹配)即可,它会进行监视,如有新增日志会自动将日志采集发送到你配置的输出里,一般配置的输出有kafka和redis、logstash、elasticsearch,这里为了筛选格式,采用logstash进行处理。
2、配置filebeat多模块,为众多项目配置日志目录路径进行日志采集并发送到logstash筛选过滤在转发给elasticsearch。
Docker 安装 ElasticSearch
Docker 安装 Filebeat
Docker 安装 Logstash
Docker 安装 Kibana