0

我有一个日志文件,我正在解析它,telegraf.logparser然后将它发送到 influxdb。问题是,我的日志文件在一个完整的字符串中有不同的字段:

2016-12-06 11:13:34 job id: mHiMMDmCDFKDmGXNMhm, lrmsid: 13370
2016-12-06 11:14:34 job id: seeeeeewsda33rfddSD, lrmsid: 13371
2016-12-06 11:14:37 job id: dmABFKDmqKcNDmHBFKD, failure: "Timeout"

我可以将其中一条线与

%{TIMESTAMP_ISO8601} job id: %{WORD:jobid}, lrmsid: {%WORD.lrmsid}
or
%{TIMESTAMP_ISO8601} job id: %{WORD:jobid}, failure: {%WORD.fail}

但是我怎么做才能同时获得 .. 这样如果没有设置 lrmsid ,它会得到lrmsid=null, and failure="Timeout".. 如果 lrmsid 设置了它lrmsid=12345 and failure=null

4

1 回答 1

1

请试试这个:

(lrmsid: %{WORD:lrmsid})?(failure: "%{WORD:failure}")?

如果我没有遗漏任何内容,它应该捕获 lrmsid 或失败

于 2016-12-09T22:48:01.270 回答