1

根据https://cloud.google.com/logging/docs/agent/installation上的说明,我有一个在 Google Cloud 上运行的 VM,并通过 google-fluentd 在其上安装了日志记录。我已经为将日志输出到 /var/log/myapp.log 的应用程序设置了自定义配置。

我创建了一个名为的配置(作为 root,实际上是 的副本tomcat.conf/etc/google-fluentd/config.d/myapp.conf,它具有以下内容:

<source>
  @type tail
  format multiline
  # Match the date at the beginning of each entry
  format_firstline /^(\d+\/\d+\/\d+\s\d+:\d+:\d+\s)/
  format1 /(?<message>.*)/
  path /var/log/myapp.log
  pos_file /var/lib/google-fluentd/pos/myapp-multiline.pos
  read_from_head true
  tag myapp
</source>

条目显示在 Stackdriver 中,但只有在将下一个条目放入 .log 文件并显示为错误时间(即,第 1 行正在获取第 2 行的时间戳)后,它才会进入 Stackdriver。

我在 .conf 文件中是否缺少可能导致此问题的内容?

4

1 回答 1

3

从插件的文档中:in_tail

使用format_firstline, in_tail 延迟记录发出直到下一个format_firstline匹配,因为 in_tail 无法判断多行日志是否结束或没有format_firstline触发。如果您的正则表达式像上面的 Rails 示例一样正确地表示日志模式,您可以format_firstline立即删除以发出记录。

于 2017-05-25T17:48:01.673 回答