Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby fluent自定义插件注册抛出;未知输出插件";_Ruby_Openstack_Fluentd - Fatal编程技术网

Ruby fluent自定义插件注册抛出;未知输出插件";

Ruby fluent自定义插件注册抛出;未知输出插件";,ruby,openstack,fluentd,Ruby,Openstack,Fluentd,我正在尝试修改一个现有的Fluentd插件,并将其用于我的定制。因此,我: git从github克隆了插件repogit克隆 编辑我的更改 gem构建插件.gemspec gem安装插件.gem 创建了一个提及插件类型的配置 运行fluentd-c-vv 最后我在fluentd日志中得到了这个(fluent plugin swift是我编辑的插件,插件的类型是'swift'): 编辑-1:用于澄清 我还检查了要注册的插件的命名约定。 插件出现在/lib/fluent/plugin/中。 文件名也

我正在尝试修改一个现有的Fluentd插件,并将其用于我的定制。因此,我:

  • git从github克隆了插件repo<代码>git克隆
  • 编辑我的更改
  • gem构建插件.gemspec
  • gem安装插件.gem
  • 创建了一个提及插件类型的配置
  • 运行
    fluentd-c-vv
  • 最后我在fluentd日志中得到了这个(fluent plugin swift是我编辑的插件,插件的类型是'swift'):

    编辑-1:用于澄清 我还检查了要注册的插件的命名约定。 插件出现在
    /lib/fluent/plugin/
    中。 文件名也是
    out\u swift.rb
    。最后 在文件中,插件注册为:

    Fluent::Plugin.register_output('swift', self)
    
    还有什么方法,我可以检查注册插件的列表,以及它用来注册到fluend的名称吗

    注意: 同样的方法以前也适用于我,我必须重新做这件事,因为有人格式化了机器,我有我的更改


    请告诉我我的方法有什么问题?

    可能是安装路径有问题,请检查以下内容:

    键入
    gem环境

    您将看到安装目录,如:

    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>
    
    cd-gem/
    
    现在检查你的文件是否存在。 如果没有,你得到了答案

    解决方案:
    只需将您的文件复制到此目录并启动fluentd,如上所述,这可能与您用于安装插件的gem有关,对于我在CentOS7中的情况,td代理gem如下所示:

    td-agent-gem install <pluginname>
    
    td代理gem安装
    
    您是否尝试安装带有“fluent gem”的插件?是的,我之前尝试过,但得到了相同的响应…:/您是否可以共享插件的目录结构,插件注册时提到的插件名称,以及文件名的格式应为
    .rb
    很好,但我知道名称约定,我检查过了,该文件位于
    **/lib/fluent/plugin/**
    中,文件名为
    out\u swift.rb
    ,文件内的注册信息为:
    fluent::plugin.register\u output('swift',self)
    好的,我不确定有什么问题,但请在问题中添加此信息,我需要查看安装部分
    td-agent-gem install <pluginname>