Docker 未分析fluentd JSON日志字段

Docker 未分析fluentd JSON日志字段,docker,fluentd,Docker,Fluentd,我正在学习fluentd教程 但是我无法让JSON解析器工作 我正在运行fluentd,如下所示: # ./demo.conf <source> @type forward port 24224 bind 0.0.0.0 </source> <match *> @type stdout </match> <filter docker.**> @type parser key_name log reserv

我正在学习
fluentd
教程

但是我无法让JSON解析器工作

我正在运行fluentd,如下所示:

# ./demo.conf
<source>
  @type forward
  port 24224
  bind 0.0.0.0
</source>

<match *>
  @type stdout
</match>

<filter docker.**>
  @type parser
  key_name log
  reserve_data true
  <parse>
    @type json # apache2, nginx, etc...
  </parse>
</filter>
我使用下面的
dockerrun
命令将JSON日志模拟为
fluentd

docker run --log-driver=fluentd ubuntu echo '{"test":"test"}'

根据文档,它应该可以工作,但我无法理解问题所在。

也许我遗漏了什么,但不尊重配置中的步骤顺序?在解析字段之前打印到标准输出。试试这个:

# ./demo.conf
<source>
  @type forward
  port 24224
  bind 0.0.0.0
</source>

<filter docker.**>
  @type parser
  key_name log
  reserve_data true
  <parse>
    @type json # apache2, nginx, etc...
  </parse>
</filter>

<match *>
  @type stdout
</match>
#/demo.conf
@打字前进
端口24224
绑定0.0.0.0
@类型分析器
密钥名称日志
保留数据为真
@键入json#apache2、nginx等。。。
@类型标准输出

我的错,答案是正确的。我刚刚对docker还有一个问题——log opt标签。
Expected: 2020-06-23 13:52:31.000000000 +0000 e54806b99130: {"log":"{\"test\":\"test\"}","container_id":"e54806b9913010d5ecb79b305d227db9e706299ad94bd070be6042dce735ed3b","container_name":"/wizardly_kalam","source":"stdout","test":"test"}
Actual:   2020-06-23 13:52:31.000000000 +0000 e54806b99130: {"log":"{\"test\":\"test\"}","container_id":"e54806b9913010d5ecb79b305d227db9e706299ad94bd070be6042dce735ed3b","container_name":"/wizardly_kalam","source":"stdout"}
# ./demo.conf
<source>
  @type forward
  port 24224
  bind 0.0.0.0
</source>

<filter docker.**>
  @type parser
  key_name log
  reserve_data true
  <parse>
    @type json # apache2, nginx, etc...
  </parse>
</filter>

<match *>
  @type stdout
</match>