2017-01-31 16 views
0

Я новичок в Logstash/Kibana (стек ELK), и я не знаю, как разобрать данный json из моего журнала и добавить атрибуты «сообщение» и «приложение» в качестве поля в Kibana ,Как разобрать json из журнала

<30>Jan 30 17:52:43 bts/cit-bts-pms-middleware-dev:sprint-01/cit-bts-pms-middleware-dev[862]: {"timestamp":"2017-01-30T17:52:43.713+00:00","message":"Error processing.", "application": "fooApp"} 

Tks все

ответ

0

Вы, возможно, придется использовать codec плагин для того, чтобы прочитать JSON отформатированный контент. Ввод может выглядеть примерно так:

input { 
    file { 
     type => "json" 
     path => "/pathto/your.log" 
     codec => json 
    } 
} 

Это должно действительно сделать трюк.

OR Вы все еще можете использовать фильтр json, который может выглядеть примерно так. Но убедитесь, чтобы удалить кодек, если вы используете ниже:

filter { 
    json { 
    source => "message" 
    } 
} 

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

+0

Thanks @Darth_Vader Но мой журнал частично JSON. Я решил проблему, используя REGEX: filter { grok { break_on_match => false match => [ "message", "(?(?<=timestamp\":\").*?(?=\",))" ] match => [ "message", "(?(?<=message\":\").*?(?=\",))" ] match => [ "message", "(?(?<=level\":\").*?(?=\",))" ] match => [ "message", "(?(?<=HOSTNAME\":\").*?(?=\"))" ] } } Thanks –

+0

О, хорошо. Не знал, что ваш журнал был частично * json *. Извини за это. – Kulasangar