Logstash 살펴보기

ELK 스택에서 로그를 프로세싱하고 저장소에 실시간으로 적재해주는 프로그램인 Logstash 에 대해서 살펴본다.

자바 프로그램

Logstash 는 자바 프로그램이다. 그래서 Java Runtime 이 필요하다. 그런데, Logstash 에는 Java Runtime 이 내장되어 있어서 별도로 설치하지 않아도 된다.

하지만 이 자바 때문에 프로그램이 무겁다.

Logstash 정의

다음과 같이 정의가 머리속에 담아 두기 좋다.

실시간 파이프라인(Pipeline) 기능을 가진 데이터 수집 엔진을 가진 오픈 소스 소프트웨어다.

파이프라인(Pipeline)

Logstash 는 파이프라인(Pipeline) 형식으로 데이터를 처리 한다.

INPUTS 은 데이터를 입력받는 부분에 대한 설정이다. OUTPUTS 은 어디로 데이터를 보낼 것인지 하는 부분인데, 대부분 데이터 저장소를 지정한다. FILTERS 부분은 입력받은 데이터를 가공처리하는 부분을 말하는데, Logstash 의 핵심부분이라고 할 수 있다.

logstash 플러그인

logstash 는 자체 플러그인을 가지고 있다. 이 플러그인을 활용하면 미리 설정된 FILTERS 에 맞게 로그를 처리하고 OUTPUT 을 해준다.

logstash 를 설치했다면 다음과 같이 지원되는 리스트를 확인해 볼 수 있다.

OUTPUT 플러그인 중에 Elasticsearch 를 설치해 보자.

logstash.yml

이 파일은 Logstash 실행을 제어하기 위한 것이다. 파이프라인 세팅, 설정 파일 위치 지정, 로깅 옵션등을 지정할 수 있다. 이 파일에 적은 옵션은 커맨드 라인으로 지정해도 된다.

주요한 설정은 다음과 같다.

logstash.yml 파일에 pipeline 관련 설정도 있다. 이것 때문에 헷깔리는 사람들이 많은데, 여기서 pipeline 설정을 하지 않아도 된다. 각각의 pipeline 설정은 pipeline.yml 에서 설정하는데, 여기서 설정하지 않은 값은 logstash.yml 파일에서 읽어 들인다. 쉽게 말해서 Default 값을 지정하는 것이라고 보면 된다.

pipeline.yml

pipeline 에 대한 설정을 하는 것이다. 대략 다음과 같다.

path.config 에서 디렉토리에 .conf 확장자 파일을 모두 읽어 들이도록 한다.

-f 옵션 없이 실행

보통 -f 옵션을 주고 실행하는 이유는 pipeline 설정파일을 지정하기 위해서다. 하지만 logstash.yml 과 pipeline.yml 파일을 작성했다면 -f 옵션 없이 실행할 수 있다.

위에 두가지 설정을 한 이유다.

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">