2016-09-29 19 views
3

CollectdのプラグインPerlとPythonとその登録機能についてお聞きしたいと思います。Collectd - Perl/Pythonプラグイン - 登録機能が動作しない

私はPerlで(そしてPythonでも)プラグインをコーディングし、読み書き機能を設定してからCollectd(plugin_register関数)に登録しようとしました。すべての場合、それは働いていませんでした。毎回、ログが表示さ:

は「my_plugin」プラグインの設定を見つけましたが、プラグイン がロードされていないか、構成コールバックを登録しませんでした。 重大度=警告

私のプラグインはperl.confにロードされています。

以下、Collectd.perlのドキュメントから直接得られるプラグインの例を添付します。このプラグインは、私のプラグインと同じ結果を持っています。

package Collectd::Plugins::FooBar; 
    use strict; 
    use warnings; 
    use Collectd qw(:all); 

    sub foobar_read 
    { 
    my $vl = { plugin => 'foobar', type => 'gauge' }; 
    $vl->{'values'} = [ rand(42) ]; 
    plugin_dispatch_values ($vl); 
    return 1; 
    } 
    sub foobar_write 
    { 
    my ($type, $ds, $vl) = @_; 
    for (my $i = 0; $i < scalar (@$ds); ++$i) { 
     print "$vl->{'plugin'} ($vl->{'type'}): $vl->{'values'}->[$i]\n"; 
    } 
    return 1; 
    } 

    sub foobar_match 
    { 
    my ($ds, $vl, $meta, $user_data) = @_; 
    if (matches($ds, $vl)) { 
     return FC_MATCH_MATCHES; 
    } else { 
     return FC_MATCH_NO_MATCH; 
    } 
    } 

    plugin_register (TYPE_READ, "foobar", "foobar_read"); 
    plugin_register (TYPE_WRITE, "foobar", "foobar_write"); 
    fc_register (FC_MATCH, "foobar", "foobar_match"); 

答えて

1

できるだけ設定を投稿してください。

ドキュメントはLoadPluginの構成は、(ログファイルから、あなたのケースでは問題に思わないこと)collectd.confファイルに行くと言っています。

あなたが指定したパス...(プラグインとプラグインの午後ファイル名の大文字と小文字を一致させる)と、それに一致する/path/to/perl/plugins/Collectd/Plugins/FoorBar.pmであなたのfoobar.pmモジュールを置きます。

LoadPlugin perl 
# ... 
<Plugin perl> 
    IncludeDir "/path/to/perl/plugins" 
    BaseName "Collectd::Plugins" 
    EnableDebugger "" 
    LoadPlugin "FooBar" 

    <Plugin FooBar> 
    Foo "Bar" 
    </Plugin> 
</Plugin> 
+0

私は 'LoadPlugin name_of_my_plugin'コマンドを使用します。それは私自身のプラグインなので、どうにかして関数/メソッドを登録する必要がありますが、ドキュメンテーションの指示にもかかわらず成功しませんでした。 – Martin

+0

それは今動作していますか? – blackpen

+0

不幸ではありません。 DBIプラグインとPostgresデータベースでは、次のログで終了します。 'dbiプラグイン:cdbi_connect_database:dbi_driver_open_r(Pg)が失敗しました。 severity = err' – Martin

関連する問題