使用 nohup 或 disown 如果你要让某个进程运行在后台。

在logstash-filter中ruby code模块下无法使用第三方模块

Logstash | 作者 waswang | 发布于2018年08月21日 | 阅读数:3699

hi
   由于需要在logstash中加入一些逻辑,故打算在filter中调用公司的中间件。
   我的环境是centos6.5,logstash是使用的最新版本6.3.2。ruby是使用的1.8.7(2.5.0也尝试过),在ruby两个版本下都能直接调通公司中间件。
   
   经过测试,直接在ruby代码中是能直接调用中间件的。但是将代码移植到logstash filter中就不行了。
  无论是将代码直接放到配置文件中的filter - ruby -code{}中,还是讲代码封装到一个文件,在filter中直接引用文件均不行
          Logstash.filters.ruby:Ruby exception occurred:no such file to load --XXX 
             (XXX  为 调用中间件需要引入的require)

 后续我又自己自定义了一个filter插件,在自定义filter的gemspec文件中引入这个require,也是失败。
   Logstash stopped processing because of an error :(VersionConflict) Bundler could not find compatible versions for gem 'XXX'
 
在系统中,直接通过irb=>require 'XXX',是能成功为true的。
 

后来在网上查找的时候,发现一篇文章(见末尾相关链接)。他也引入了第三方模块来操作mysql。但是经过我查找logstash文件,发现这些模块其实是已经封装到他们安装启动文件中的,而我需要引用的模块肯定是不在logstash安装文件中的。难道是不在logstash中的模块就不支持调用吗?

想请问大家:
    logstash中能调其他的第三方require模块吗?如果能需要怎么做才能把它引入进来呢?

 
已邀请:

lvwh

赞同来自:

你好,请问这个问题有解决吗

要回复问题请先登录注册