본문 바로가기

ELK스택

[Elasticsearch] Logstash 설치 및 실행

이번 글에서는 3가지를 정리해 보려고 합니다.

  • Logstash 파이프라인 구조
  • Logstash 설치 및 실행가능 옵션
  • Logstash 실행(input - tcp방식, output - elastic방식)
Logstash 파이프라인 구조

Logstash는 데이터를 수집을하고 그 데이터를 필요한 모양으로 가공을 하여 Elasticsearch뿐만 아니라 필요한 곳으로 데이터를 보낼 수 있습니다. 그래서 Logstash는 어느정도 규모가 있는 아키텍처 시스템에서 잘 활용이 되기도 합니다.

예를들어 수집한 데이터를 AWS S3에 올리거나 Elasticsearch에 보내거나 혹은 파일로 보내거나 이런식으로 수집한 데이터를 다른곳에 보낼때, Logstash가 유용하게 사용 될 수 있습니다.

파이프라인 구조

Logstash는 크게 3단계로 나누어지게 됩니다.

input단계는 데이터가 수집될 경로를 입력하게 되고, Filters단계는 Logstash에서 제공하는 기능을 사용하여 데이터를 가공하고 , output단계는 Logstash가 보낼 경로(적재할 곳)를 입력하면 됩니다.

좀 더 자세하게 Logstash를 공부하시고 싶은 분들은 아래 문서를 참고하시면 될 것 같습니다.

https://www.elastic.co/guide/en/logstash/current/index.html

 

Logstash Reference [7.15] | Elastic

 

www.elastic.co

 

Logstash 설치 및 실행가능 옵션

저는 Elasticsearch와 Kibana가 7.14버전이라 Logstash도 똑같은 7.14버전으로 다운로드 받았습니다.

https://www.elastic.co/kr/downloads

Elasticsearch와 Kibana는 Putty를 통해 linux서버에서 설치를 진행하여 공부하였지만, logstash는 window에서 실행을 해보려고 합니다.

 

logstash는 -e옵션과 -f옵션을 통해 실행을 할 수 있습니다.

첫번째 방법인 -e옵션은 logstash를 설치한 경로에 bin파일까지 들어간 후, logstash -e "input {stdin{}} output {stdout{}}" 명령어를 통해 실행시키면 됩니다.아래 Successfully started..~~라고 나오면 실행이 정상적으로 된것이라고 생각하면 됩니다.

이제 간단하게 입력을 해보겠습니다. hello라고 입력을 하게되면 stdout형식으로 출력이 되게 됩니다.

 

두번째 방법인 -f옵션은 -e옵션을 사용한 내용을 파일안에 저장하고 그 파일을 실행시키는 방법입니다.

실행방법은 "logstash -f workshop.conf" 명령어를 실행시켜주면 됩니다.마찬가지로 "hello file"을 입력하니 stdout형식으로 출력이 되었습니다.

-f옵션을 사용하여 logstash를 실행하면서 제가 겪은 오류인데 아래 사진과 같은 오류가 나시는 분들은 참고 하시면 될 것 같습니다. 사용할 파일 즉, workshop.conf파일이 bin디렉토리에 없어서 발생하는 오류였습니다.

 

Logstash 실행(input - tcp방식, output - elastic방식)

현재 workshop.conf파일은 아래와 같이 input은 stdin방식으로 입력받고 output은 stdout방식으로 출력하고 있습니다.

지금부터는 workshop.conf파일의 input방식을 tcp방식으로 변경하고 output방식은 elastic방식으로 변경하겠습니다.

그리고 다른 cmd창을 실행시켜 아래 명령어를 통해 실행시켜 확인해보도록 하겠습니다.

* 윈도우에서 nc명령을 사용하기위해서는 netcat을 설치해야합니다. 이 부분은 검색해서 알아보시길 바랍니다.

input - tcp방식


현재 logstash에서 tcp방식으로 input을 하였지만, output은 elasticsearch방식으로 나왔습니다. 이러한 방식뿐만 아니라 logstash에는 다양한 input방식과 output방식이 존재하므로 필요에따라 응용하여 logstash를 사용하시면 큰 도움이 될 수 있을거라고 생각합니다.