日志对于一个程序的重要程度不用过多的言语修饰,本篇将以实战的方式讲述开源微服务全栈项目 有来商城 是如何整合当下主流日志解决方案 ELK
+Filebeat
。 话不多说,先看实现的效果图,绝不搞些浪费大家时间且没意义的东西。
ELK
作为分布式日志解决方案让人为之津津乐道,即使没有实践过也能耳熟,可见其火热程度。 Beats
作为数据采集器后来加入进来 Elastic 家族,ELK
正式更名为 Elastic Stack
。 在属于 ELK
的那个时代,数据采集是由 Logstash
完成,还有比 Filebeat
更为强大的过滤处理能力,这样便不禁让人心生疑问,为什么还要引入 Filebeat
呢?是多此一举吗?先看下官方给 Beats
的解释:
轻量型,从源头采集,简单明了。
Beats 能够采集符合 Elastic Common Schema (ECS) 要求的数据,如果您希望拥有更加强大的处理能力,Beats 能够将数据转发至 Logstash 进行转换和解析。
其中重点的关键字从源头收集,更加轻量。
Logstash
拥有比 Filebeat
更为丰富的功能,但能力越大,背负的越多,意味着 Logstash
作为采集工具会比 Filebeat
占用更多的系统资源。其中有个依据Logstash
默认的堆内存大小是 1G,Filebeat
占用内存仅仅大概是 10M 左右。
Filebeat
会定时监听事先指定的日志文件,如果日志文件有变化,会将数据推送至 Logstash
,经过 Logstash
过滤筛选处理将我们想要的日志数据存入ElasticSearch
,最终通过 Kibana
将数据呈现出来。
实战环境这里我使用 有来商城 线上云服务器做的,因服务器资源有限所以做了堆内存保守的设置,大家可以用虚拟机测试。