ruby fluent自定义插件注册抛出“未知输出插件”

s4n0splo  于 2022-12-18  发布在  Ruby
关注(0)|答案(3)|浏览(165)

我试图修改一个现有的Fluentd插件,并使用它与我的定制。所以我:

  1. git从github.git clone <url>克隆了插件库
    1.编辑我的更改
    1.一米一米一
    1.一米二米一x
    1.创建了一个配置,说明插件的类型
    1.已运行**fluentd -c <fluend_conf.conf> -vv**
    我最终在fluentd日志中得到了这个(fluent-plugin-swift是我编辑的插件,插件类型是**'swift'**):
2017-03-22 15:00:27 +0000 [info]: fluent/engine.rb:126:block in configure: 
gem 'fluent-plugin-swift' version '0.0.1'

2017-03-22 15:00:27 +0000 [error]: fluent/supervisor.rb:369:rescue in
main_process: config error file="fluend_conf.conf" error="Unknown output plugin 
'swift'. Run 'gem search -rd fluent-plugin' to find plugins"

EDIT-1:为了澄清我还检查了要注册的插件的命名约定。插件存在于<base_dir>/lib/fluent/plugin/中。文件的名称也是out_swift.rb。最后在文件中,插件注册为:

Fluent::Plugin.register_output('swift', self)

还有什么办法,我可以检查注册插件的列表,以及它用来注册到fluend的名称?

**注:**以前我也是这样做的,我不得不重做,因为有人格式化了我的机器。

请让我知道我的做法有什么问题?

zi8p0yeb

zi8p0yeb1#

问题可能出在安装路径上,请检查以下各项:
类型**gem environment**
您将看到安装目录,如下所示:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.6.8
  - RUBY VERSION: 2.4.0 (2016-12-24 patchlevel 0) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.4.0
  - USER INSTALLATION DIRECTORY: /root/.gem/ruby/2.4.0
  - RUBY EXECUTABLE: /usr/local/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - SPEC CACHE DIRECTORY: /root/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /usr/local/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux

进入安装目录目录,现在执行

cd gem/<ur_custom_plugin>

现在检查你的文件是否在那里。如果没有,你就得到了答案。

**解决方案:**只需将文件复制到此目录并启动fluentd

50few1ms

50few1ms2#

如上所述,这可能与您使用哪个gem来安装插件有关,对于我在CentOS7中的情况,td-agent-gem如下所示:

td-agent-gem install <pluginname>
sbtkgmzw

sbtkgmzw3#

1.安装ruby开发环境
brew安装rbenv
1.现在从ruby环境运行fluentD
~/.rbenv/垫片/流体
1.这是指/etc/fluent/fluent.conf
1.从ruby环境安装插件
~/.rbenv/shims/gem安装流畅插件重写标签过滤器

相关问题