본문 바로가기
BIG-DATA/LOGSTASH

[LOGSTASH] 무작정 시작하기 (1) - 설치 & 실행

by 허도치 2019. 11. 26.

  이 포스트에서는 ElasticStack 중 하나인 로그를 수집(input)하고 분석하고 변환(filter)하여 출력(output)하는 Logstash에 대하여 알아보도록 하겠다. Logstash는 단독으로는 잘 사용하지 않으며 주로 Filebeat이나 Kafka와 함께 사용한다. 이번 시간에는 간단하게 Console로 입력하고 출력하는 예제로 진행하겠지만, 이후 진행되는 포스트는 Filebeat으로 수집하고 Kafka 또는 Flume으로 데이터를 내보내는 방법들을 다룰 것이다.

  

출처: https://www.elastic.co/kr/products/logstash

1. Logstash란?

   1-1. 수집한 로그를 분석하고 변환하여 내보내는 데이터 수집 엔진.

   1-2. 변환단계에서 민감한 데이터들을 삭제, 가공할 수 있음.

   1-3. 분석 및 변환을 위한 방대한 양의 Filter 라이브러리가 존재함.

         - grok으로 비정형 데이터를 분석하여 구조화된 데이터로 가공할 수 있음.

         - IP 주소에서 위치 좌표 해독할 수 있음.

 

   1-4. 로그를 분석하여 특성에 맞는 output을 선택하여 내보낼 수 있음.

   

 

2. 설치.

   2-1. Logstash 다운로드.

         - logstash-7.3.1.zip 다운로드

         - [ C:\work\logstash-7.3.1 ]에 압축해제.

 

   2-2. JDK 다운로드.

         - Logstash는 8 또는 11 버전에서 지원함

         - jdk-11.0.5_windows-x64_bin.zip 다운로드

         - [ C:\work\logstash-7.3.1\java ]에 압축해제. ( 원하는 경로에 설치해도 상관없음. )

 

 

3. 파일살펴보기.

   3-1. logstash.yml

         - logstash 실행 환경 설정 파일.

         - 실행 옵션들을 정의하는 문서로써 명령줄에서 옵션을 사용하지 않아도됨.

 

   3-2. pipelines.yml

         - 여러 logstash 인스턴스를 사용하는 경우에 작성하는 설정 파일.

         - pipeline별로 설정 파일이 필요함. logstash_1.yml, logstash_2.yml

 

   3-3. log4j.properties

         - Logging 관련 옵션 설정 파일.

 

   3-4. jvm.options

         - 자바 가상 머신 실행환경 설정 파일.

 

 

4. 환경설정 및 실행.

   - 작업폴더: C:\work\logstash-7.3.1

 

   4-1. [ ./conf.d/logstash.conf ] 작성.

1
2
3
4
5
6
7
8
9
input {
  stdin { }
}
 
output {
  stdout {
    codec => rubydebug
  }
}
cs

         - 1~3 ln: Console에서 입력받기.

         - 5~9 ln: Console에 출력하기.

 

   4-2. [ logstash_start.bat ] 작성

1
2
3
4
5
6
7
8
9
10
11
rem logstash_start.bat
@echo off
 
rem 현재 디렉토리 설정
pushd %~dp0
set LS_HOME=%cd%
popd
 
set JAVA_HOME=%LS_HOME%\java\jdk-11.0.5
 
%LS_HOME%\bin\logstash.bat --path.config %LS_HOME%\conf.d\logstash.conf --config.reload.automatic
cs

         - 5~7 ln: 현재 파일이 있는 위치를 Logstash 홈 디렉토리로 설정.

         - 9 ln: 위에서 설치한 JDK를 JAVA_HOME으로 지정.

         - 11 ln: Configuration 파일을 지정, [ --config.reload.automatic ] 설정 파일이 바뀌면 자동으로 reload.

 

   4-3. [ ./logstash_start.bat ] 실행.

         - 실행결과.

         - "Hello, World" 입력결과.

 

 

 

  이상으로 Logstash를 설치하고 간단하게 실행까지 해보았다. 실행 테스트용으로 input과 output만 작성한 것이므로 간단하게 보여질 것이다. 다음 포스트에서는 조금 더 많은 데이터를 읽어들이고 filter를 추가하여 분석, 변환하고 출력까지 해보려고 한다.

  filter에서 grok이라는 라이브러리를 사용할계획인데 정규표현식을 모르면 조금 어렵게 느껴질 수 있으므로, 반드시 선행학습을 하기 바란다.

  

댓글