【问题标题】:Fluentd file output does not output to fileFluentd 文件输出不输出到文件
【发布时间】:2021-02-06 01:59:23
【问题描述】:

在 Ubuntu 18.04 上,我正在运行 td-agent v4,它使用 Fluentd v1.0 核心。首先,我使用 TCP 输入和标准输出配置它。它可以很好地接收和输出消息。然后我将其配置为以 10 秒的刷新间隔输出到文件,但我没有看到在目标路径中生成任何输出文件。

这是我的文件输出配置:

<match>
  @type file
  path /var/log/td-agent/test/access.%Y-%m-%d.%H:%M:%S.log
  <buffer time>
    timekey 10s
    timekey_use_utc true
    timekey_wait 2s
    flush_interval 10s
  </buffer>
</match>

我每 10 秒执行一次此检查以查看是否生成了日志文件,但我看到的只是一个目录,其名称仍然包含我为 path 参数设置的占位符:

ls -la /var/log/td-agent/test
total 12
drwxr-xr-x 3 td-agent td-agent 4096 Feb  5 23:14 .
drwxr-xr-x 6 td-agent td-agent 4096 Feb  6 00:17 ..
drwxr-xr-x 2 td-agent td-agent 4096 Feb  5 23:14 access.%Y-%m-%d.%H:%M:%S.log

根据 Fluentd 文档,我期望这应该相当简单,因为文件输出和缓冲插件与 Fluentd 的核心捆绑在一起。

我在这里错过了一些琐碎的事情吗?

【问题讨论】:

    标签: fluentd


    【解决方案1】:

    我想通了,现在可以了。我有两个输出,一个到文件,另一个到标准输出。显然,如果它们都在配置文件中用自己的&lt;match&gt; ... &lt;/match&gt; 单独定义,那将不起作用。我相信在配置中首先读取到 stdout 的输出,所以 Fluentd 输出到那个而不是文件。它们都应该嵌套在copy 输出下,如下所示:

    <match>
      @type copy
    
      <store>
        @type file
        ...
      </store>
    
      <store>
        @type stdout
      </store>
    </match>
    

    【讨论】:

      猜你喜欢
      • 2018-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-28
      • 2014-03-29
      • 2011-01-28
      • 2021-07-21
      相关资源
      最近更新 更多