2016-07-01 11 views
1

Я использую log4js для регистрации моего приложения, и я бы хотел отправить журналы в logstash.Отправить JSON из log4js в logstash и поля

Вот defalt Appender для log4js from here:

"appenders": [ 
    { 
     "type": "console" 
    }, 
    { 
     "host": "127.0.0.1", 
     "port": 5000, 
     "type": "logstashUDP" 
    } 
    ] 

и вот файл конфигурации logstash:

input { 
    udp { 
    port => 5000 
    type => "json" 
    } 
} 

filter { 
    date { 
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] 
    } 
} 

output { 
    stdout {} 
} 

Отправка журналов работает правильно, но я посылаю журнал JSON и в logstash I см. поле для каждого символа json. сообщение, "

2016-07-01T10: 29: 36.161Z 127.0.0.1 { "@version": "1", "@ метка": "36.160Z 2016-07-01T10:: 29" ":" My message ... "," fields ": {" 0 ":" {"," 1 ":" \ n "," 2 ":" "," 3 ":" "," 4 " : «\»», ...

Я новичок в logstash, но я хотел бы сгруппировать все поля в большой строки Как я могу это сделать

+0

вам, возможно, придется использовать кодек => «» JSON в вашем УДП, чтобы сказать ему, что входящие журналы JSON журналы. Значение по умолчанию равно – pandaadb

+0

@pandaadb Хорошо, спасибо, если вы можете добавить его в качестве ответа, я проверю его как принятое в другом месте. Я удалю вопрос – nkint

ответ

3

для того, чтобы ваш вход знать.? что это json, вам нужно будет добавить к нему кодек:

input { 
    udp { 
    port => 5000 
    type => "json" 
    codec => "json" 
    } 
} 

С уважением,

Артур