목차
- IntelliJ에서 logstash source project 설정, 디버깅 환경 설정 - 1
- IntelliJ에서 logstash source project 설정, 디버깅 환경 설정 - 2
source download
- logstash source download : Releases · elastic/logstash · GitHub
- 배포본 download : logstash - open source log management
여기서는 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]
댓글 없음:
댓글 쓰기