[Elastic Stack] 로그 스태시

2022. 11. 8. 21:11TIL💡/Elastic Stack

로그 활용을 위해 로그를 수집하는 쪽에서 로그 형태를 분석하고 시스템에서 인식할 수 있도록 로그를 정제하는 작업이 필요한데, 로그스태시는 이 과정을 쉽고 편하게 할 수 있도록 지원한다.

어떤 형태의 로그에 대해서도 로그를 수집 - 가공 - 전송하는 일련의 과정을 간편하게 구현하기 위한 강력한 기능까지 제공한다.

 

로그 스태시 특징

플러그인 기반

로그 스태시의 파이프라인을 구성하는 각 요소들은 전부 플러그인 형태로 만들어져 있다.

 

모든 형태의 데이터 처리

대다수의 데이터 소스에서 JSON, XML 등의 구조화된 텍스트뿐만 아니라 다양한 형태의 데이터를 입력받아 가공한 다음에 저장할 수 있다. 특히 이벤트 데이터, 즉 시간에 따라 발생하는 데이터를 처리하는 데 최적화되어 있다.

 

성능

자체적으로 내장되어 있는 메모리와 파일 기반의 큐를 사용하므로 처리 속도와 안정성이 높다. 또한 인덱싱할 도큐먼트의 수와 용량을 종합적으로 고려해 벌크 인덱싱을 수행할 뿐만 아니라 파이프라인 배치 크기 조정을 통해 병목현상을 방지하고 성능을 최적화할 수 있다.

 

안정성

엘라스틱서치의 장애 상황에 대응하기 위한 재시도 로직이나 오류가 발생한 도큐먼트를 따로 보관하는 데드 레터 큐를 내장하고 있다. 파일 기반의 큐를 사용할 경우 뜻하지 않은 로그스태시의 장애상황에서도 도큐먼트 유실을 최소화할 수 있다.

 

 

로그 스태시는 JSON 형태로 데이터를 출력하는데, @version이나 @timestamp는 로그스태시가 만든 필드로 혹시 사용자가 만든 필드와 충돌이 날 것을 대비해 앞에 @ 기호가 붙어 있다. message host 필드는 데이터와 시스템 사용자를 나타낸다.

@기호는 로그 스태시에 의해 생성된 필드, 붙지 않은 필드는 수집을 통해 얻어진 정보이다.

 

자주 사용되는 필터 플러그인

필터  플러그인 설명
grok grok 패턴을 사용해 메시지를 구조화된 형태로 분석한다. grok 패턴은 일반적인 정규식과 유사한, 추가적으로 미리 정의된 패턴이나 필드 이름 설정, 데이터 타입 정의 등을 도와준다.
dissect 간단한 패턴을 사용해 메시지를 구조화된 형태로 분석한다.
정규식을 사용하지 않아 grok에 비해 자유도는 조금 떨어지지만 더 빠른 처리가 가능하다.
mutate 필드명을 변경하거나 문자열 처리 등 일반적인 가공 함수들을 제공한다.
date 문자열을 지정한 패턴의 날짜형으로 분석한다.

 

'TIL💡 > Elastic Stack' 카테고리의 다른 글

[Elastic Stack] 키바나  (0) 2022.11.09
[Elastic Stack] 쿼리  (0) 2022.11.06
[Elastic Search] 매핑  (0) 2022.11.05
[Elastic Stack] 인덱스와 도큐먼트  (0) 2022.11.05
[Elastic Stack] 엘라스틱의 구성요소  (0) 2022.11.05