Как расширить поле многострочным сообщением
У меня есть conf logstash так:
input {
lumberjack {
port => 5000
type => "logs"
ssl_certificate => "/path/to/mycert"
ssl_key => "/path/to/mykey"
}
}
filter {
if [type] == "logs" {
if [message] =~ /^\d\d\d\d/ {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{NOTSPACE:other_field} %{GREEDYDATA:content}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
}
multiline {
pattern => "^\d\d\d\d"
what => "previous"
negate => true
}
}
}
output {
elasticsearch { host => localhost }
}
Вот пример журнала:
2015-04-09T04:56:37.548Z OtherField Send message:
Keepalive {
Type: keepalive
key: ABCDE
time Thu Apr 09 00:56:37 EDT 2015
}
Поле содержимого заканчивается строкой "Отправить сообщение:\n" и больше ничего. Мы хотим, чтобы поле содержимого расширилось и содержало: "Отправить сообщение:\nKeepalive {\n Тип: keepalive\n Ключ: ABCDE\n Время Чт Апр 09 00:56:37 EDT 2015\n}"
Я пытался использовать add_field
, но я даже не могу убедить его добавить простое поле (т.е. "multilinemsg", "true"
) не говоря уже о расширении поля содержимого.
Любая помощь будет оценена!