初心者アラート!
チームへのデモ用に、Windows で logstash を使用する方法を学んでいます。次の構成と結果を参照してください。
1)
file content : 123
設定ファイル:
input {
file {
path => "C:\Users\xyz\Desktop\Demo\WriteText.txt"
start_position => "beginning"
}
}
filter {
grok {
match => { "@message" => "%{GREEDYDATA:data}"}
}
}
output {
stdout { codec => rubydebug }
}
コマンドラインには次の出力が表示されます。
{
"path" => "C:\Users\xyz\Desktop\Demo\WriteText.txt",
"@timestamp" => 2017-06-20T16:18:33.956Z,
"@version" => "1",
"host" => "ABC",
"message" => "123"
}
// 上記の出力にはデータ フィールドは表示されません
2) 入力テキストの内容: 789
config2:
grok {
match => { "@message" => "%{NUMBER:data}"}
}
コマンドラインでの出力:
output
{
"path" => "C:\Users\xyz\Desktop\Demo\WriteText.txt",
"@timestamp" => 2017-06-20T16:22:56.167Z,
"@version" => "1",
"host" => "ABC",
"message" => "789",
"tags" => [
[0] "_grokparsefailure"
]
}
単純な数値入力で解析エラーが発生します。grokはGREEDYDATAとして解析できますが、NUMBERとしては解析できないため、Windowsの.txtファイルとエンコーディングなどに問題があるかどうか疑問に思っています。両方の出力にフィールド タグはありません。問題の特定にご協力ください。