使用fluentd,我想从json数据中只输出一个关键数据
Using fluentd, I want to output only one key data from json data
我想将kubernetes日志输出到一个文件中。
但是,我只能将其输出为 json 数据。
我只想输出 "message" 部分到文件。
如何选择"message"进行打印?
我应该选择哪个过滤器?
<match output_tag>
@type rewrite_tag_filter
<rule>
key $['kubernetes']['labels']['app']
pattern ^(.+)$
tag app.
</rule>
</match>
<match app.tom1>
@type file
path /logs/tom1
</match>
Execute result:--->
2019-10-30T00:46:05+09:00 app.tom1 {
..
"message": "2019-10-29 15:46:05,253 DEBUG [org.springframework.web.servlet.DispatcherServlet] Successfully completed request",
"kubernetes": {
"labels": {
"app": "tom1",
..
}
Desired result: --->
2019-10-29 15:46:05,253 DEBUG [org.springframework.web.servlet.DispatcherServlet] Successfully completed request
谢谢!
试试 single_value
<formater>
插件:https://docs.fluentd.org/formatter/single_value
<match app.tom1>
@type file
path /logs/tom1
<format>
@type single_value
message_key message
</format>
</match>
我想将kubernetes日志输出到一个文件中。 但是,我只能将其输出为 json 数据。 我只想输出 "message" 部分到文件。
如何选择"message"进行打印? 我应该选择哪个过滤器?
<match output_tag>
@type rewrite_tag_filter
<rule>
key $['kubernetes']['labels']['app']
pattern ^(.+)$
tag app.
</rule>
</match>
<match app.tom1>
@type file
path /logs/tom1
</match>
Execute result:--->
2019-10-30T00:46:05+09:00 app.tom1 {
..
"message": "2019-10-29 15:46:05,253 DEBUG [org.springframework.web.servlet.DispatcherServlet] Successfully completed request",
"kubernetes": {
"labels": {
"app": "tom1",
..
}
Desired result: --->
2019-10-29 15:46:05,253 DEBUG [org.springframework.web.servlet.DispatcherServlet] Successfully completed request
谢谢!
试试 single_value
<formater>
插件:https://docs.fluentd.org/formatter/single_value
<match app.tom1>
@type file
path /logs/tom1
<format>
@type single_value
message_key message
</format>
</match>