2015-11-05 38 views
0

我试图让fluentd侦听一个tcp套接字,它将接收ascii输入行,并在每个事件中捕获100行组。fluentd捕获X行

我看到有一个tcp输入支持格式multiline。如本例:

format multiline 
format_firstline /^Started/ 
format1 /Started (?<method>[^ ]+) "(?<path>[^"]+)" for (?<host>[^ ]+) at (?<time>[^ ]+ [^ ]+ [^ ]+)\n/ 
format2 /Processing by (?<controller>[^\u0023]+)\u0023(?<controller_method>[^ ]+) as (?<format>[^ ]+?)\n/ 

不幸的是在我的数据的情况下,每行具有相同的格式,所以我不能确定基于行的格式,其中一个事件应该启动并在那里结束。相反,我希望它总是将X(在我的情况下为100)一起组合成一个事件,然后开始下一个事件。

我一直幻想多行正则表达式像这样的,但我怀疑fluentd永远只是他们相匹配一行行,所以它永远不会匹配多行正则表达式:

format /^(?<data>(?:[^ ]+ [^ ]+ [^ ]+\r){100})$/ 

回答