设为首页 加入收藏

TOP

ELK系列~Fluentd对大日志的处理过程~16K
2019-09-17 18:53:32 】 浏览:30
Tags:ELK 系列 Fluentd 对大 日志 处理 过程 16K

Fluentd是一个日志收集工具,有输入端和输出端的概念,前者主要是日志的来源,你可以走多种来源方式,http,forward,tcp都可以,后者输出端主要指把日志进行持久化的过程,你可以直接把它持久化到elasticsearch里,也可以直接在控制台输出,这看你如何配置了,更多基础配置可以看大叔这篇文章《ELK系列~对fluentd参数的理解》。

Fluentd输入端的小知识

今天写这篇文章主要是因为在实际工作中遇到的问题,我们为了查询方便把日志定义成了json格式,当你的输入日志不是json时,这条日志将会被抛弃,这个功能点由fluentd的filter过滤器实现,它可以判断你的输入日志是否为json,即不是json会被抛弃!

在项目中出现了大日志无法写入elasticsearch的问题

问题的出现

经过多次测试,发现大于16K的json日志,无法写入elastic,原因经过分析得出结论:当fluentd输入端的日志大于16K时,会被拆封成小日志进行收集,这时被拆封的json就不是标准的了,所以在经过filter时,将会被抛弃!

Fluentd工作流程图

 

Fluentd大日志分块收集

对于大于16K的日志来说,Fluentd的输入端会分块收集,即大日志被拆封成多个小日志,这时我们设想一下,如果你输入的是json,那被折断之后就一定不是标准的json了,这时,再走filter过滤器时,这条不是json的日志将被折断!

解决方法

目前这个问题在国外开发人员中也出现了,在github上也有人提这个issue,可能是fluentd的bug,我们将继续关注!

https://github.com/moby/moby/issues/34620

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇面试作业之浅析京东促销活动核心.. 下一篇JavaWeb项目架构之NFS文件服务器

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目