Я отправляю логи в logstash с помощью beaver. Эти журналы являются многострочными по своей природе, поэтому я использую многострочный фильтр, но каким-то образом фильтр не может соответствовать журналу. В выводе logstash ошибок нет. Вот что я вижу в logstash:
{"@source":"udp://10.238.161.213:36655/","@tags":[],"@fields":{},"@timestamp":"2013-09-23T16:37:56.653Z","@source_host":"10.238.161.213","@source_path":"/","@message":"{\"@source\": \"file://app1.example.org/ebs/app.log\", \"@source_host\": \"app1.example.org\", \"@message\": \" This is line3\", \"@tags\": [], \"@fields\": {}, \"@timestamp\": \"2013-09-23T16:38:18.150822Z\", \"@source_path\": \"/ebs/app.log\", \"@type\": \"file\"}","@type":"app"}
Пример строки журнала:
This is a log line
This is line2
This is line3
Конфигурация Logstash:
input {
udp {
type => "app"
port => 9996
}
}
filter {
multiline {
type => "app"
pattern => "^\s"
what => "previous"
}
}
output {
elasticsearch { host => "127.0.0.1" }
}
Beaver работает на удаленном хосте приложения и вызывается как:
/usr/bin/python /usr/bin/beaver -D -P /var/lock/beaver.pid -c /etc/beaver/conf -t udp -p /ebs/
и / etc / beaver выглядит так:
[beaver]
udp_host: logstash.example.org
udp_port: 9996
Любые мысли о том, почему многострочный фильтр не соответствует журналам?