[컴] IntelliJ에서 logstash source project 설정, 디버깅 환경 설정 - 2

IntelliJ 에서 logstash 설정하기 , Ruby project 로 설정하기


목차
  1. IntelliJ에서 logstash source project 설정, 디버깅 환경 설정 - 1
  2. IntelliJ에서 logstash source project 설정, 디버깅 환경 설정 - 2



source download



여기서는 logstash 소스를 아래 경로에 설치한다.

  • logstash path : c:\temp\aSource\logstash2


vendor folder 카피

배포본 소스의 vendor 부분을 logstash source 로 copy 하자.

  • c:\logstash\vendor\



Open Project

project 를 intellij 의 File > Open 으로 열자.


IntelliJ Project 설정


  • Project Structure > SDKs > + 버튼 > JRuby SDK > C:\jruby-1.7.19\bin\jruby.exe 선택
  • Project Structure > Modules > module 선택 > + 버튼 > JRuby
  • Apply > OK


configuration 설정

Edit Configuration > + 버튼 > Ruby >
  • Ruby script : C:\temp\aSource\logstash2\lib\logstash\runner.rb
  • Script arguments : agent -f c:\\temp\\aSource\\logstash2\\myconf.conf
  • Working directory : c:\temp\aSource\logstash2\lib
  • Environment variables : GEM_PATH=c:\temp\aSource\logstash\vendor\bundle\jruby\1.9

GEM_PATH 가 제대로 지정돼야 LoadError 가 나지 않는다. 기본적으로 GEM_PATH 를 설정하지 않으면 위의 Project Structure 에서 설정된 JRuby 의 gem 의 경로만 인식하게 된다.





참고사항


breakpoint

breakpoint 를 지정하면, logstash source 의 breakpoint 는 잘 동작하지만, gem 에 있는 breakpoint 는 자동으로 멈추지 않는다. 하지만, 한 step 씩 따라가는 것은 동작한다.

configuration 의 path delimiter

logstash.1.4.2 의 configuration 에서 input 으로 file 을 지정할 때 사용하는 path 는 windows 에서나 unix 에서나 "/" 를 사용해야 한다.

input {
  file {
    path => "c:/temp/aSource/logstash/bin/ttt*.log"
    start_position => "beginning"
  }
}

logstash 에서는 filewatch 를 사용하는데 watch.rb의 _discover_file 에 보면 Dir.glob 를 사용하고 있다. Dir.glob 는 "\" 를 escape 문자로 사용하기 때문에 path 에서는 "\" 를 사용하지 않고, '/' 만 사용한다고 한다.[ref. 1]



References


  1. Class: Dir (Ruby 2.1.1)






댓글 없음:

댓글 쓰기