在 FluentD 中将字符串解析为 JSON
Parse string to JSON in FluentD
我有这个日志字符串:
2019-03-18 15:56:57.5522 | HandFarm | ResolveDispatcher | start resolving msg: 8
请告诉我如何在 fluentd.conf 中将此字符串解析为 JSON 格式?我需要以下格式:
{
"timestamp" : "2019-03-18 15:56:57.5522",
"system" : "HandFarm",
"module": "ResolveDispatcher",
"message": "start resolving msg: 8",
}
我尝试使用标准格式化程序,但没有任何结果..
您可以使用 regexp 解析器并将事件格式化为 JSON。这是我的一个示例,我正在从日志文件尾部读取输入(与您的输入相同)并输出到标准输出。让我知道。
<source>
@type tail
path /tailsource/t.log
pos_file /tailpos/t.log.pos
read_from_head true
tag temp
<parse>
@type regexp
expression /^(?<timestamp>.*?)\s\| (?<system>.*?)\s\| (?<module>.*?)\s\| (?<message>.*)$/
</parse>
</source>
<match>
@type stdout
</match>
这是示例输出 -
{"timestamp":"2019-03-18
15:56:57.5522","system":"HandFarm","module":"ResolveDispatcher","message":"start
resolving msg: 8"}
我有这个日志字符串:
2019-03-18 15:56:57.5522 | HandFarm | ResolveDispatcher | start resolving msg: 8
请告诉我如何在 fluentd.conf 中将此字符串解析为 JSON 格式?我需要以下格式:
{
"timestamp" : "2019-03-18 15:56:57.5522",
"system" : "HandFarm",
"module": "ResolveDispatcher",
"message": "start resolving msg: 8",
}
我尝试使用标准格式化程序,但没有任何结果..
您可以使用 regexp 解析器并将事件格式化为 JSON。这是我的一个示例,我正在从日志文件尾部读取输入(与您的输入相同)并输出到标准输出。让我知道。
<source>
@type tail
path /tailsource/t.log
pos_file /tailpos/t.log.pos
read_from_head true
tag temp
<parse>
@type regexp
expression /^(?<timestamp>.*?)\s\| (?<system>.*?)\s\| (?<module>.*?)\s\| (?<message>.*)$/
</parse>
</source>
<match>
@type stdout
</match>
这是示例输出 -
{"timestamp":"2019-03-18 15:56:57.5522","system":"HandFarm","module":"ResolveDispatcher","message":"start resolving msg: 8"}