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");
私は 'LoadPlugin name_of_my_plugin'コマンドを使用します。それは私自身のプラグインなので、どうにかして関数/メソッドを登録する必要がありますが、ドキュメンテーションの指示にもかかわらず成功しませんでした。 – Martin
それは今動作していますか? – blackpen
不幸ではありません。 DBIプラグインとPostgresデータベースでは、次のログで終了します。 'dbiプラグイン:cdbi_connect_database:dbi_driver_open_r(Pg)が失敗しました。 severity = err' – Martin