流利的in_tail插件pos_file内容格式

时间:2015-08-19 13:28:15

标签: fluentd

我使用流利的尾部日志文件,并将日志推送到弹性搜索索引。我有两个问题 -

1)流利者如何存储最后读取的位置给定文件? 我的pos文件中的一个例子是 -

/myfolder/myfile.log     00000000004cfccb        0000000000116ce0

00000000004cfccb0000000000116ce0表示什么?

2)此特定文件(myfile.log)共有2520行。由于某种原因,最后100行没有被读取。我重新启动了td代理,但它仍然无法读取最后100行。什么时候能发生?

我的td-agent源看起来像这样 -

<source>
  type tail
  format none
  path /myfolder/*.log
  pos_file /var/log/td-agent/mylogfiles.pos
  tag mylog.*
  read_from_head true
</source>

谢谢,

3 个答案:

答案 0 :(得分:1)

对于1,请参阅此评论:https://github.com/fluent/fluentd/blob/5ed4b29ebda0815edb7bdd444e7e5ca2e9874a27/lib/fluent/plugin/in_tail.rb#L652。 文件中的十六进制位数和文件的inode。

对于2,将事件存入文件也是2420行? 您可以通过以下方式检查问题是in_tail还是out_elasticsearch。

<match mylog.*>
  type copy
  <store>
    type file
  </store>
  <store>
    type elasticsearch
  </store>
</match>

答案 1 :(得分:0)

来自流利的文档

  

可以指定format参数的正则表达式。如果是参数   值以“/”开头和结尾,它被认为是一个正则表达式。该   regexp必须至少有一个命名捕获(?P​​ATTERN)。如果   regexp有一个名为'time'的捕获,它被用作时间   事件。您可以使用time_format指定时间格式   参数。

答案 2 :(得分:0)

1) pos_file /var/log/td-agent/mylogfiles.pos

强烈建议

以上参数。 Fluentd会将上次读取的位置记录到此文件中。当你重新启动td-agent时,它会读取最后一个索引的文件,即(mylogfiles.pos internaly为ex:00000000004cfccb和0000000000116ce0生成以下值,这些值可以在td-agent重启时更改)

2) 请按照以下网址 https://docs.fluentd.org/v1.0/articles/in_tail#read_lines_limit

read_from_head true remove并尝试一次