3

我正在使用 fluentd 来跟踪日志文件并将日志推送到弹性搜索索引。我有两个问题——

1)fluentd如何存储给定文件最后读取的位置?我的 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>

谢谢,

4

3 回答 3

2

对于 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>
于 2015-11-04T11:44:12.663 回答
0

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

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

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

read_from_head true 删除并尝试一次

于 2018-01-10T12:22:21.090 回答
-1

来自流利的文档

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

于 2015-09-30T16:21:57.847 回答