2016-07-01 1 views
1

log4js을 사용하여 응용 프로그램을 로그하고 logstash로 로그를 보내려고합니다. 여기 log4js에서 JSON을 logstash 및 필드로 보내십시오.

는 log4js from here위한 defalt의 펜더입니다 :

"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", "@ 소인": "2016-07-01T10 : 29 : 36.160Z", "메시지 ":"내 메시지 ... ","필드 ": {"0 ":"{ ","1 ":"\ n ","2 ":" ","3 ":" ","4 " : "\" "...

나는 logstash에 새로운 해요하지만 난 큰 문자열의 모든 필드는 내가 어떻게 할 수있는 그룹에 같은 순서로

+0

당신이 들어오는 로그 JSON 로그 있음을 알려 귀하의 UDP에서 코덱 => "JSON"를 사용해야 할 수도 있습니다

아르투르. 기본값은 보통 – pandaadb

+0

@pandaadb입니다. 좋아, 고맙습니다. 답으로 추가 할 수 있다면 허용 된 것으로 확인하겠습니다. 그런데 질문을 삭제하겠습니다. – nkint

답변

3

사용자의 입력이 알 수있는.? 그것이 json이라면 코덱을 추가해야합니다 :

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

감사합니다,

관련 문제