我有一个日志文件,我用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
答案 0 :(得分:1)
请尝试这个:
(lrmsid: %{WORD:lrmsid})?(failure: "%{WORD:failure}")?
如果我没有错过任何内容,它应该捕获lrmsid或者失败