syslog の管理に logstash を使い始めました。テストするために、リモート マシンから簡単なメッセージを送信し、logstash で解析しようとしています。
コマンドライン経由で使用される唯一の Logstash 構成:
input {
syslog {
type => syslog
port => 5514
}
}
filter {
grok {
match => { "message" => "hello %{WORD:who}" }
}
}
output {
stdout { }
elasticsearch {
host => "elk.example.com"
cluster => "security"
protocol => "http"
}
}
ログを受け取り、それらは正しく解析されます (who
フィールドが生成されます)。同時に、tags
含まれています_grokparsefailure
。
送信するテスト ログは ですhello rambo3
。私はそれを次のように見ています
2015-01-29T09:27:48.344+0000 10.242.136.232 <13>1 2015-01-29T10:27:48.113612+01:00 AA1.example.com testlog.txt - - - hello rambo3
grok デバッガーも同意します。
_grokparsefailure
がタグに追加されるのはなぜですか?
興味深いことに、ピュア経由で送信された同じデータはtcp
、同じフィルターによって正しく解析されます (_grokparsefailure
タグにはありません)。