Как расширить поле многострочным сообщением

У меня есть 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") не говоря уже о расширении поля содержимого.

Любая помощь будет оценена!

0 ответов

Другие вопросы по тегам