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"

その行の1つを一致させることができます

%{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 に答える