我目前正在尝试建立fluentd的转发器和聚合器实例系统。
我的转发器配置是->

<source>
   @type tail
  format json
  path /app/node-apps/something-fe/logs/itt-logs.log
  tag td.pm2.access
</source>

## File output
## match tag=local.** and write to file
<match td.pm2.*>
  @type file
  path /opt/td-agent/forward/log/fluentd.log
</match>

## Forwarding
## match tag=system.** and forward to another td-agent server
<match td.pm2.*>
  @type forward
  host <hostname>.bc

这样做,我可以看到转发器正在此处转发位置输出日志文件:/opt/td-agent/forward/log/fluentd.log
到目前为止一切都很好!!!
但是,当我尝试通过上面的match-forward语法将其导入到聚合器中时,在聚合器计算机中什么也没有得到。
请在我正在使用的这里找到流利的聚合器配置->
<source>
  @type forward
      port 24224
</source>

<match td.pm2.*>
  type copy
    <store>
    @type file
    path /opt/td-agent/log/forward.log
  </store>
  <store>
    type elasticsearch
    host <aggreatorhost>.bc
    port 9200
    logstash_format true
    flush_interval 10s
  </store>
</match>

我正在尝试使用商店来复制日志,并将其转发到elasticsearch。
完全忘记了 flex 搜索,似乎从转发器到聚合器的日志都没有被填充。
难道我做错了什么?聚合器日志说,它正在侦听端口24224上的所有地址。

最佳答案

在您的转发器上,您有两个完全相同的匹配模式,只有第一个匹配正在执行(配置从上到下运行)。日志将被写入文件系统(/opt/td-agent/forward/log/fluentd.log),但不会转发到聚合器。

您实际上已经在聚合器上使用了正确的复制语法,应将其复制到转发器中,并将 flex 搜索替换为聚合器的@forward配置

<match td.pm2.*>
  type copy
    <store>
    @type file
    path /opt/td-agent/log/forward.log
  </store>
  <store>
    @type forward
    host <hostname>.bc
  </store>
</match>

进一步阅读:http://docs.fluentd.org/articles/out_copy

10-07 15:26