Я начал использовать 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
отсутствует в тегах)