Logstash Plugin이 존재하지 않는 개인적인 로그 포맷을 ElasticSearch에 올리는 과정

안녕하세요.
개인적인 로그 포맷을 Logstash에서 파싱을 하여 ElasticSearch에 올리고자 하는데 질문이 있습니다.

우선 제 로그 포맷은 이렇습니다.
포맷: 시간 Level [servername] [From, To, msgId, brand] pid msg
예시: 2018-08-22 12:13:42.123 INFO [SampleServer] [SampleServer,SampleServer,234bc3e-23cd-12v-2312, SampleBrand] 9493 ---- [Response][PUT] /abc/de/qwer/feeg/profile - statusCodeL200

여기서 제가 시간, Level, servername 등 각각의 요소들을 json 형태로 파싱해서 넣어야 할텐데 어떠한 방식으로 해야할지 모르겠습니다.
새로 스크립트를 짜서 해당 로그를 json형태로 직접 바꾸고 저장한 뒤 그 파일을 logstash input에 넣고 filter없이 output으로 elasticsearch를 사용해야 하는 것인지, 아니면 grok filter를 이용해서 해야하는지 궁금합니다.

그리고 한 가지 더, 이렇게 커스텀 로그를 ElasticSearch에 넣어야 하는 경우 index template을 반드시 지정해주어야 하나요?? 사실 지금 커스텀 로그를 시도하기 전에 CombinedApacheLog를 logstash를 활용해서 Elasticsearch에 저장했었는데, 데이터가 변환되는 과정이랑 grok fileter에서 CombinedApacheLog의 세부 소스코드를 볼 수 있다면 참 좋을텐데 이것도 어디서 정보를 얻어야하는지 모르겠더라구요.. 답변해주시면 감사하겠습니다..

filter 에서 grok 을 이용하는 것을 추천드리고요, 데이터 변경되는 과정은 중간 중간

output { 
  stdout { 
    codec => rubydebug
  } 
}

로 확인 하시면서 하시는게 제일 무난합니다.

넵 grok으로 한번 해보겠습니다 stdout을 활용하고 있는데 잘 안되네요 초보개발자라서요ㅠㅠ 도움 주셔서 정말 감사합니다

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.