이 포스트에서는 ElasticStack 중 하나인 로그를 수집(input)하고 분석하고 변환(filter)하여 출력(output)하는 Logstash에 대하여 알아보도록 하겠다. Logstash는 단독으로는 잘 사용하지 않으며 주로 Filebeat이나 Kafka와 함께 사용한다. 이번 시간에는 간단하게 Console로 입력하고 출력하는 예제로 진행하겠지만, 이후 진행되는 포스트는 Filebeat으로 수집하고 Kafka 또는 Flume으로 데이터를 내보내는 방법들을 다룰 것이다.
1. Logstash란?
1-1. 수집한 로그를 분석하고 변환하여 내보내는 데이터 수집 엔진.
1-2. 변환단계에서 민감한 데이터들을 삭제, 가공할 수 있음.
1-3. 분석 및 변환을 위한 방대한 양의 Filter 라이브러리가 존재함.
- grok으로 비정형 데이터를 분석하여 구조화된 데이터로 가공할 수 있음.
- IP 주소에서 위치 좌표 해독할 수 있음.
1-4. 로그를 분석하여 특성에 맞는 output을 선택하여 내보낼 수 있음.
2. 설치.
2-1. Logstash 다운로드.
- [ 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이라는 라이브러리를 사용할계획인데 정규표현식을 모르면 조금 어렵게 느껴질 수 있으므로, 반드시 선행학습을 하기 바란다.
'BIG-DATA > LOGSTASH' 카테고리의 다른 글
[LOGSTASH] 무작정 시작하기 (3) - Filebeat To Kafka (0) | 2019.11.28 |
---|---|
[LOGSTASH] 무작정 시작하기 (2) - filter (0) | 2019.11.26 |
댓글