[Logstash] JSON filter plugin
Elastic/Logstash 2019. 11. 4. 14:16공홈에 올라와 있는 문서의 번역 본 정도로 정리를 해보려고 합니다.
별거 아니지만 JSON filter 를 많이 사용하면서 Validation 에 대한 인식이 부족해서 오류를 발생 시키는 경우가 꽤 많이 있습니다.
기억력을 돕기 위해 작성해 봅니다.
공식문서)
https://www.elastic.co/guide/en/logstash/current/plugins-filters-json.html
이 내용은 logstash reference 문서 내 filter 항목에 해당 합니다.
용도는 말 그대로 입니다. JSON parsing 을 하는 filter 입니다.
여기서 문제가 들어 오는 JSON 데이터가 항상 validate 할 거라고 생각 하고 구현 하시는 분들이 계시는데 이 부분이 문제가 됩니다.
기본 이라고 생각 하지만 validation 에 대한 개발자의 생각과 경험이 요즘은 다른 것 같더라구요.
암튼, 그래서 JSON filter 사용 시 제공하는 Option 에 대해서 숙지 하고 사용하시면 좋겠습니다.
기본적으로는 Common Options 를 먼저 보시는게 좋습니다.
JSON Filter Configuration Options)
Setting | Input type | Required |
skip_on_invalid_json | boolean | No |
source | string | Yes |
tag_on_failure | array | No |
target | string | No |
-
skip_on_invalid_json
json 이 아닌 데이터가 들어 올 경우 에러를 발생 시키지 않고 skip 시키기 위한 옵션 입니다.
기본 설정 값이 false 이기 때문에 잘 못된 데이터에 대해서 오류가 발생 하게 됩니다.
-
source
json parsing 을 하기 위한 field 를 지정 하게 됩니다.
-
tag_on_failure
정상적으로 처리 되지 않았을 경우 tags 라는 filed 에 "_jsonparsefailure" 값이 추가 됩니다.
-
target
source field 내 json value 가 target filed 로 등록 되며, 이미 target field 가 있다면 overwrite 됩니다.
위 설정 중에서 skip_on_invalid_json 과 tag_on_failure 만 잘 설정 하셔도 invalid data 에 대한 오류는 잘 넘길 수 있습니다.
간혹 이 오류로 인해서 logstash 가 먹통이 되는 걸 예방 할 수 있기 때문 입니다.