[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 |