docker容器日志收集方案(方案四,目前使用的方案)

先看数据流图,然后一一给大家解释

 

这个方案是将日志直接从应用代码中将日志输出到redis中(注意,是应用直接连接redis进行日志输出),redis充当一个缓存中间件有一定的缓存能力,不过有限,因为使用的是内存,内存使用完了就会出现阻塞失败等现象从而导致日志丢失。

接下来logstash从redis中读取日志然后批量推送ES,logstash有一定的堆积能力,可以控制线程以及批量推送ES日志数量,不过不会像filebeat有感知压力的功能。

微服务应用对redis的链接为弱引用,成功失败都无所谓。

这个方案中中间任意环节出问题都会导致日志输出问题。

而且可能会造成redis-logstash-ES整个链路瘫痪

因为redis和logstash堆积能力实在有限,如果将中间链路环节使用其他中间件会好的多。

这个方案的优点就是在logback.xml文件配置好之后什么都不用管,直接去查日志就可以了,性能跟得上redis2GB内存1天处理1.5亿条日志没问题。

posted @ 2018-11-23 16:13  zygfengyuwuzu  阅读(2412)  评论(0编辑  收藏  举报