Как написать фильтр grok в logstash, чтобы принимать переменные аргументы

Как написать правило фильтрации grok, если сообщение содержит транзакции с переменными аргументами.

Например:

22-Jun-2015 04:45:56 Transaction for Bill 123 item1=100 item2=200 item3=300
22-Jun-2015 05:45:23 Transaction for Bill 124 item1=200
22-Jun-2015 06:23:36 Transaction for Bill 125 item4=400 item2=200 item1=100 item5=500

Мы можем сопоставить дату, время, номер счета в приведенном выше случае, но как обращаться с элементом переменных аргументов здесь.


person Viswesn    schedule 02.07.2015    source источник
comment
Использовать kv-фильтр?   -  person Magnus Bäck    schedule 03.07.2015


Ответы (1)


Наконец, я смог сделать это, используя опцию kv{} logstash.

Например:

 item1=100&item2=200&item3=300
 item1=100&item2=200&item3=300&item4=400

Я создал два сообщения, а затем получил вывод ниже:

{
   "message" => "item1=100&item2=200&item3=300",
  "@version" => "1",
"@timestamp" => "2015-07-04T19:20:15.831Z",
      "host" => "viswesn-PC",
     "item1" => "100",
     "item2" => "200",
     "item3" => "300",
      "tags" => [
          [0] "true"
      ]
}
  {
   "message" => "item1=100&item2=200&item3=300&item4=400",
  "@version" => "1",
"@timestamp" => "2015-07-04T19:20:25.866Z",
      "host" => "viswesn-PC",
     "item1" => "100",
     "item2" => "200",
     "item3" => "300",
     "item4" => "400",
      "tags" => [
         [0] "true"
   ]
}
person Viswesn    schedule 04.07.2015