【问题标题】:How to add gems into Logstash如何将 gem 添加到 Logstash
【发布时间】:2014-11-17 00:59:30
【问题描述】:

我正在运行 Logstash 1.4.1,与最新版本相比,我在安装文件夹中找不到包含 gem 信息的任何地方(而 github 中的最新代码有那些 gembag.rb、Gemfile 等。)

我当前的问题是我需要使用 Logstash 没有开箱即用的几个 gem,只是 require 'gemname' 似乎不起作用。谁能指导我阅读解释如何添加这些 3rd 方宝石或向我展示一些可以做到这一点的示例代码。

非常感谢!

【问题讨论】:

    标签: elasticsearch rubygems logstash


    【解决方案1】:
    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 文件,请将文件的路径放在 GEM_PATH 中。

    【讨论】:

    • 这是一个很棒的解决方案@Alain。我想即使使用最新的 logstash 这仍然可行?
    • 我刚刚在我的 1.4.0 logstash 安装中执行了此操作。最新的是1.4.2,应该不会改太多……
    • 刚刚确认它也在 1.4.2 上运行
    • Alex Simenduev 的简单回答至少适用于更新版本的 Logstash。
    【解决方案2】:

    我认为最简单的方法是:

    /usr/share/logstash/bin/ruby -S gem install <gem-name>
    

    /opt/logstash/bin/ruby -S gem install <gem-name>
    

    在最新版本的 logstash 上为我工作...

    【讨论】:

    • 在 Windows 上也能很好地工作。
    【解决方案3】:

    这在 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 以包含以下行:

    gem "PACKAGE_NAME", "PACKAGE_VERSION"
    

    我知道我们在此过程中的某个时候也做过yum install ruby-devel,但我不记得是否需要这样做。

    【讨论】:

      【解决方案4】:

      例如:

      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"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多