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>