logstashのgrokプラグインでDATA
パターンを理解しようとしています。次のようにDATA
マッチのドキュメントを1として :logstash - grokのDATAパターン
DATA .*?
- >私はnの長さが1で何かとしてそれを解釈[私の理解が間違っている場合 が私を修正してください]。
私のスクリプトでは、正しく入力を解析できません。
Logstash CONF:私は、タグsomedata
はそれとして、[値で満たされることが期待
{
"message": "2017-01-09 02:00:03.887,a,a",
"@version": "1",
"@timestamp": "2017-01-09T12:28:20.958Z",
"path": "/home/osboxes/logstash_conf/mydir/test_logs/data",
"host": "osboxes",
"timeStamp": "2017-01-09 02:00:03.887",
"ID": "a"
}
:
input{
file {
path => ["/home/osboxes/logstash_conf/mydir/test_logs/*"]
start_position => beginning
sincedb_path => "/home/osboxes/logstash_conf/mydir/.sincedb"
}
}
filter{
grok {
match => { "message" => "^%{TIMESTAMP_ISO8601:timeStamp},%{DATA:ID},%{DATA:somedata}" }
}
}
output {
stdout {
codec => json_lines
}
}
を入力:
2017-01-09 02:00:03.887,a,a
出力タグの場合はID
]でしたが、出力は省略されています。誰でも私の行動を理解するのを助けてくださいDATA
パターン。
ありがとうございました。この場合、それは信頼できる 'DATA'パターンか、他のパターンを探す必要がありますか?あなたが言及したように、それはゼロ文字にマッチするかもしれませんが、実際に興味のある値をスキップすることもあります。 –
@ G.S '$'でパターンを終了するとよいでしょう。これにより、2番目の 'DATA'が何かにマッチすることが保証されます。 – Fairy
を理解してください。私はちょうど同様の動作が途中で 'DATA'に対して起こるかどうか心配しています。 '$'は最後のフィールドに対してのみ使用できます。 'DATA'が途中のフィールドで失敗するかどうかは不明です。 –