반응형

[ELK] Logstash

작성일자 : 2019년 01월 28일




1. Logstash란?


Logstash는 실시간 파이프라인 기능을 가진 오픈소스 데이터 수집 엔진입니다. Logstash는 서로 다른 소스의 데이터를 탄력적으로 통합하고 사용자가 선택한 목적지로 데이터를 정규화할 수 있습니다. 다양한 고급 다운스트림 분석 및 시각화 활용 사례를 위해 모든 데이터를 정리하고 대중화합니다.


logstash는 아래와 같은 아키텍처를 가지고 있습니다.



Input을 받아 커스텀 가능한 Filters로 가공하여 Output으로 내보내는 역할을 수행합니다.  Logstash는 Elasticsearch와 연동하여 많이 사용되며 이 경우 Logstash의 Output이 Elasticsearch의 Input이 되어 동작합니다.



Filters


필터는 아래와 같은 config 형식을 사용하여 커스텀이 가능합니다. 


input {

...

}


filter {

...

}


output {

...

}




2. 설치 및 실행


환경 : Windows 7, logstash 6.5.4, JDK 1.8


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



ZIP 파일 다운로드 후 압축 해제로 간단하게 설치되며, 아래와 같은 디렉터리 구조 확인 가능



압축 해제한 폴더의 bin 아래의 logstash 실행파일을 CLI로 config 설정과 함께 실행


실행 명령어

$LOGSTASH_HOME ./bin/logstash.bat -e "input { stdin { } } output { stdout { } }"  


-e 옵션을 통해 config 설정을 명령어 라인으로 직접 입력할 수 있습니다.



Successfully started 문구가 보이면 실행 성공!




3. 기본 동작


Input Text(stdin) 입력 > Filter > Output Text(stdout)



현재 Filter를 따로 두지 않아 input이 자체 폼으로 변형 후 그대로 output으로 출력되는 모습을 확인할 수 있습니다.



  • config 파일 생성하기


-e 옵션을 통해 위와 같이 커맨드로 config 설정을 할 수 있지만, 매번 사용하기에는 번거로우니 config파일을 만들어서 적용시킬 수 있습니다.

-f 옵션을 통해 미리 만들어 놓은 config 파일을 사용할 수 있습니다.


logstash.conf Example

input{

 stdin{ }

}

filter{


}

output{

 stdout{ }

}


실행 명령어

$LOGSTASH_HOME ./bin/logstash.bat -f %CONFIG_HOME%/%CONFIG_FILE%





4. Logstash - Elasticsearch 연동


환경 : Windows 7, JDK 1.8, logstash 6.5.4, Elasticsearch 6.5.4

시나리오 : 동일 서버(localhost)에 있는 logstash와 Elasticsearch를 연동하여 logstash에 넣은 input을 가공하여 Elasticsearch에 저장 


4.1 Logstash config 설정


input {

  stdin {

  }

}

filter {

}

output {

  elasticsearch {

    hosts => ["localhost:9200"]

    index => "database"

    document_type => "table"

    document_id => "row"

  }

  stdout {

  }


- input text(stdin)을 입력 받아 필터링 없이 Elasticsearch에 저장 후 Output(stdout)을 출력

- 단순 Test를 위해 document_id를 고정

- Elasticsearch Default Port : 9200


4.2 확인


  • Logstash


"connectinTest" 직접 입력  >  Elasticsearch에 저장(로그 X)  >  stdout에 저장 내용 출력



message => connectingTest 확인 성공!!



  • Elasticsearch


Logstash에서 text 입력 후 conf 파일에 설정한 내용을 토대로 조회



message : connectingTest 확인 성공!!




5. Reference


본 과정은 필터가 없는 Input > Output의 시나리오로 진행 하였습니다.

보다 자세한 filter 사용법은 아래 User Guide를 참고하시기 바랍니다.


Logstash User Guide : https://www.elastic.co/guide/en/logstash/6.5/index.html

반응형

'도구, 툴' 카테고리의 다른 글

[Spring boot] Logback 설정  (0) 2019.07.14
[ELK] Kibana  (1) 2019.01.29
[ELK] Elasticsearch  (0) 2019.01.24
[ELK] ELK 개요  (0) 2019.01.23
R 설치  (0) 2019.01.07

+ Recent posts