2014-09-22 4 views
3

Logstash 1.4.1을 최신 버전과 비교하여 실행하고 있는데, 설치 정보가 들어있는 설치 폴더를 찾을 수 없습니다. github의 최신 코드는 gembag.rb, Gemfile 등이 있습니다. ..)Logstash에 보석을 추가하는 방법

현재 문제는 Logstash에 기본적으로 제공되지 않는 몇 가지 보석을 사용해야한다는 것입니다. 단순히 require 'gemname'이 작동하지 않는 것 같습니다. 누구든지 제 3 자 보석을 추가하는 방법을 설명하는 독서에 직접 안내하거나이 작업을 수행 할 수있는 몇 가지 샘플 코드를 보여줄 수 있습니까?

대단히 감사합니다.

답변

9
cd /opt/logstash 
env GEM_HOME=vendor/bundle/jruby/1.9 GEM_PATH="" java -jar vendor/jar/jruby-complete-1.7.11.jar -S gem install gemname 

로컬 젬 파일을 설치하는 경우 파일 경로를 GEM_PATH에 넣으십시오.

+0

환상적인 해결책 인 @Alain입니다. 나는 심지어 최신 logstash와 함께 이것이 아직도 할 수 있다고 생각하니? –

+0

1.4.0 logstash 설치시이 작업을 수행했습니다. 최신 버전은 1.4.2입니다. 너무 많이 변경하면 안됩니다 ... –

+0

그냥 1.4.2에서 실행 중임을 확인했습니다. – schadr

5

이것은 logstash 2.0에서 저에게 도움이되었습니다.

env GEM_HOME=/opt/logstash/vendor/bundle/jruby/1.9 /opt/logstash/vendor/jruby/bin/jruby /opt/logstash/vendor/jruby/bin/gem install PACKAGE_NAME -v PACKAGE_VERSION 

은 그 때 나는 선 포함 /opt/logstash/Gemfile을 편집했다 : 우리는 또한 길을 따라 어느 시점에서 yum install ruby-devel 않았다 알고

gem "PACKAGE_NAME", "PACKAGE_VERSION" 

을하지만이 필요한 경우 기억하지 않습니다 이게 작동합니다. 예를 들어

1

:

env GEM_HOME=vendor/bundle/jruby/1.9 vendor/jruby/bin/jruby vendor/jruby/bin/gem install zookeeper -v 1.4.11 -V 

편집 Gemfile :

gem "zookeeper", "1.4.11" 
0

Logstash 미래에 JRuby를 버전을 변경할 수 있습니다. 예를 들어 JRuby 2.3.0은 logstash 6.0.0에서 사용됩니다. 아무리 오래되거나 사용 새 버전을 logstash하는 보석을 설치하지 않으려면,이 명령을 실행

env GEM_HOME=$$(echo /usr/share/logstash/vendor/bundle/jruby/*/) /opt/logstash/vendor/jruby/bin/jruby /opt/logstash/vendor/jruby/bin/gem install PACKAGE_NAME -v PACKAGE_VERSION 

는 사실, 여기에 전체 스크립트 모두 보석을 설치하고 gemfile에 패키지 메타 데이터를 추가합니다

env GEM_HOME=$$(echo /usr/share/logstash/vendor/bundle/jruby/*/) /opt/logstash/vendor/jruby/bin/jruby /opt/logstash/vendor/jruby/bin/gem install PACKAGE_NAME -v PACKAGE_VERSION 
echo 'gem \"PACKAGE_NAME\", \"PACKAGE_VERSION\"' >> /usr/share/logstash/Gemfile 
관련 문제