How to make Logstash filter plugin with Java

Logstash 의 java 필터 개발하기

** 참고문서
https://www.elastic.co/guide/en/logstash/7.2/java-filter-plugin.html

1) logstash 다운로드 및 logstash-core 라이브러리 빌드

– logstash 의 plugin 들은 logstash-core 의 API 를 이용하기 때문에 미리 빌드해야 한다
– 최신 plugin 들은 rubyUtils.gradle 파일이 필요하다. 이 버전은 logstash v7.2 부터 존재함

$ git clone --branch 7.2 --single-branch https://github.com/elastic/logstash.git logstash_72
 ## ==> logstash 브랜치 v7.2 소스 다운로드 

$ cd logstash_72 

$ ./gradlew assemble
 ## ==> 빌드하기 

$ ls -al logstash-core/build/libs
 ## ==> logstash-core-7.2.1.jar 파일 확인 

$ export LS_SRC_HOME=`pwd` 
## ==> /Users/bgmin/Workspaces/agenspop/logstash_72
logstash-core build

2) logstash filter java example 다운로드 및 빌드

$ git clone https://github.com/logstash-plugins/logstash-filter-java_filter_example ls-filter-example  
 ## ==> filter java example 소스 다운로드 

$ cd ls-filter-example 

$ echo LOGSTASH_CORE_PATH=$LS_SRC_HOME/logstash-core/ > gradle.properties  
 ## ==> build 시 필요한 LOGSTASH_CORE_PATH 속성값 설정 

$ ./gradlew gem 

$ ls -al *.gem  
 ## ==> logstash-filter-java_filter_example-1.0.0.gem 파일 확인
java_filter_example download
java_filter_example build

3) logstash_plugin install 및 테스트

$ cd /usr/local/Cellar/logstash/7.1.1  
 ## ==> logstash 바이너리 설치 위치로 이동 

$ bin/logstash-plugin install --no-verify --local /<Path>/ls-filter-example/logstash-filter-java_filter_example-1.0.0.gem  
 ## ==> logstash-plugin 을 이용해 생성된 gem 파일을 plugin 으로 등록 

$ cd /<Path>/logstash_confs && cat java_filter_example.conf  
 ## ==> 테스트용 logstash 설정 파일을 작성 

# ---------------------------------------------- 
input { 
  generator { message => "Hello world!" count => 1 } 
} 
filter { 
  java_filter_example {} 
} 
output { 
  stdout { codec => rubydebug } 
} 
# ---------------------------------------------- 

$ logstash -f java_filter_example.conf  
 ## ==> 등록한 example filter 를 통해 처리된 결과 (OK!)
... 
{
           "host" => "maxmac",
       "@version" => "1",
     "@timestamp" => 2019-07-09T04:46:34.454Z,
        "message" => "!dlrow olleH",
       "sequence" => 0 
}
example-filter-plugin install
example-filter-plugin test

Java code 자체에 대한 내용은 logstash 공식문서인 “참고문서” 링크를 보세요.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: