流利的td-agent无法识别自定义插件。未知的输入插件

时间:2017-12-13 11:47:10

标签: plugins fluentd

我创建了一个名为in_vCenterCrawler.rb的自定义插件,并将其添加到文件夹/ etc / td-agent / plugin中。在/etc/td-agent/td-agent.conf文件中我有:

<source>
  @type vCenterCrawler #Also tried with in_vCenterCrawler
  port ****
  host '**.*.***.***'
  vCenterPort ***
  user "****"
  password "****"
</source>

当我运行命令&#39; -d-agent&#39;我收到错误:

config error file="/etc/td-agent/td-agent.conf" error="Unknown input plugin 'vCenterCrawler'. Run 'gem search -rd fluent-plugin' to find plugins

如果我运行&#39; gem search -rd fluent-plugin&#39;我明白了:

The program 'gem' can be found in the following packages:
* ruby
* rubygems

但在找到https://docs.fluentd.org/v0.12/articles/plugin-management中的信息后,我认为我需要将我的插件转换为gem,所以我执行了命令&#34; td-agent-gem install vCenterCrawler&#34;我得到了:

ERROR:  Could not find a valid gem 'vCenterCrawler' (>= 0) in any repository

此时我很困惑,我不知道这是一个错误还是我错过了什么。我使用td-agent 0.12.40。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我发现了什么问题。

在配置文件中,类型名称应该是插件中定义的名称,而不是插件文件本身。

在我的插件中,我有:

module Fluent
  class VCenterCrawlerInput < Input
  # First, register the plugin with the name vCenterCrawler
  Fluent::Plugin.register_input('vcentercrawler', self)
...

这意味着我将插件名称注册为vcentercrawler。我使用了:

@type vcentercrawler

它有效!