본문 바로가기

인프라,데이터/Elasticsearch, Logstash, Kibana

Logstash nested json, json in json parsing error

부제 : 로그스태시에서 잘 되던 metric log가 갑자기 이상하게 파싱이 안 될때.

{ \"system\": { \"cpu\": { \"core\":4, \"cpuPct\":, \"loadavg1\":0.18, \"loadavg5\":0.23, \"loadavg15\":0.25 }, \"mem\": { \"total\":7624.00, \"used\":3731.00, \"free\":3894.00, \"memPct\":48.94 }, \"disk\": { \"total\":51188.00, \"used\":16209.00, \"free\":34980.00, \"diskPct\":32 } }

메트릭 로그는 이런 형태이다. 

해결 :

1. 오류메시지 잘 보기.

:exception=>#<LogStash::Json::ParserError: Unexpected character (',' (code 44)): expected a value at [Source: (byte[])

나의 경우는 오류메시지가 위와 같은 형태로 떴었는데, 오류메시지 떴다고 바로 구글 검색하지 말고... 
잘 본면 key는 있는데 value가 없다는 말이다.

실제로 메트릭 로그를 만들었던 항목 중에 null 값이 들어간 값이 있어서, 기본값을 ""로 세팅해주었더니 바로 잘 파싱이 되었다...

이렇게...아름답게... 4시간 가량을 삽질했는데...

그래도 오늘 안에 해결을 해서 다행이다..ㅎ...