본문 바로가기

IT/Logstash

Logstash Filter 플러그인 코딩기

Logstash 플러그인 개발의 기본적인 스텝


1. Github repository 생성

2. logstash-output-example 복사

3. 내 플러그인에 맞게 파일명 변경

4. 플러그인 세부사항 코딩

5. Github repository push

6. process Logstash plugin install step


일단 이렇게 되는 것 같고.


플러그인은 루비(Ruby) 언어로 코딩해야 하지만 기본적인 플러그인의 몸체는 Logstash 쪽에서 지원해주고

플러그인을 제작하는 입장에서는 자바에서 메서드를 오버라이딩 하듯이 특정 부분을 '구현' 해주면 됨.




일단 루비에 대한 기본적이자 충분한 가이드를 해주는 사이트를 링크.

설치에서부터 Interactive Ruby 및 ruby .rb를 통한 기본적인 실행, 기본문법을 설명해줌.

https://www.ruby-lang.org/ko/documentation/quickstart/


제작하려는 플러그인의 특성상? 혹은 코딩에서 기본적으로 쓰이는 메서드를 찾아야했는데

내 경우는 공식(이겠지?) 사이트의 도큐먼트를 참고했다.

http://ruby-doc.org/core-2.2.0/




github에서 clone하기 위해 회사 내부 개발 특성상 방화벽 때문에 프록시 서버를 타야했는데

이건 git에만 dependency한 설정이 아니라 윈도우즈 환경변수 https_proxy를 설정해주는걸로 해결봤다.


다만 git을 사용하던 도중 - clone 명령어를 실행했는지 어쨌는지 - 다음과 같은 에러가 발생했는데

"프로시저 시작 지점 curl_multi_timeout을(를) DLL libcurl.dll에서 찾을 수 없습니다"

다음의 링크를 참고하여 해결했다. 내 경우는 회사의 온갖 잡다한 프로그램 때문에 libcurl.dll 파일 삭제가 불가능해

\Git\bin\libcurl.dll 파일을 \Git\libexec\git-core 폴더 안으로 복사하는 후자의 방법을 사용하여 해결.

http://leechwin.tistory.com/63




이후 "Output 플러그인을 만드는 방법"이란 Logstash 공식 도큐먼트의 가이드를 스텝 바이 스텝으로 따라간다.

https://www.elastic.co/guide/en/logstash/current/_how_to_write_a_logstash_output_plugin.html