Преобразование строки журнала в поля, разделенные запятыми, с помощью logstash

Я совершенно новичок в Logstash. Может ли кто-нибудь сказать мне фильтр, который нужно добавить в файл конфигурации, чтобы отделить следующую строку журнала с помощью Logstash?

"2011/08/10 09:47:23.449598,0.001199,udp,203.136.22.37,15306, ‹->,147.32.84.229,13363,CON,0,0,2,317,64,flow=Background-UDP-Established" ,

Я хочу, чтобы приведенная выше строка возвращала объект JSON, подобный следующему:

{
TimeStamp: 2011/08/10 09:47:23.449598
Value: 0.001199
protocol: udp
IP: 203.136.22.37
...
}

person user1097675    schedule 15.02.2016    source источник
comment
grokdebug.herokuapp.com попробуйте образец здесь   -  person jijinp    schedule 15.02.2016
comment
дай мне 5 минут, я работаю над этим.   -  person Mukrram Rahman    schedule 15.02.2016
comment
@ 7171u - Это действительно полезно. Спасибо   -  person user1097675    schedule 15.02.2016


Ответы (1)


Скопируйте приведенный ниже текст и запишите его в файл конфигурации и запустите logstash. Он будет принимать ввод с консоли и выводить на консоль в желаемом формате.

input {
   stdin{
   }
}
filter {
        grok {
           match => ["message","%{DATESTAMP:timestamp},%{BASE16FLOAT:value},%{WORD:protocol},%{IP:ip},%{GREEDYDATA:remaining}" ]
        }
}
output {
  stdout {
        codec => rubydebug
  }
}
person Mukrram Rahman    schedule 15.02.2016
comment
Работает как шарм. Спасибо - person user1097675; 15.02.2016
comment
Еще кое-что. Он хорошо работает для безошибочных строк журнала. Но когда у меня есть строка, как показано ниже, она терпит неудачу. Обратите внимание, что второе поле отсутствует. 2011/08/10 09:51:34.450457,,tcp,213.200.244.217,47908, -›,147.32.84.59,6881,S_RA,0,0,4,244,124,flow=Background-Established-cmpgw-CVUT хочу поставить значение по умолчанию в моем выходном объекте Json, если значение отсутствует. Как мне это сделать? - person user1097675; 16.02.2016
comment
Какое значение по умолчанию вы хотите поставить? - person Mukrram Rahman; 16.02.2016
comment
скажем 100 для примера? - person user1097675; 18.02.2016