简介
过去我们系统少,出问题后需要查询日志文件,在几台主机上就能找到系统问题。但微服务框架把系统分成了十几倍,甚至几十倍多的系统数。我们查询日志变得十分麻烦。所以我需要把系统统一存放在一个文件中,方便查询。今天我们用ELK(elasticsearch+logstash+kibana)+kafka的方式,实现分布式日志收集与查询。logstash负责把日志收集起来,他可以从文件、MQ、数据库中收集数据,保存到ES中。
elasticsearch保存数据,缓存
kibana做ES的数据展示
为什么还要加上消息MQ呢?因为每个日志文件都需要一个logstash,太冗余。于是我们把所有的日志信息放到MQ中,logstash从MQ中获取,这样就少配置了很多的logstash。
如何实现分布式日志