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");
我使用'LoadPlugin name_of_my_plugin'命令。因爲它是我自己的插件,所以我需要以某種方式在那裏註冊函數/方法,但是儘管有文檔說明,但我並沒有成功。 – Martin
現在工作嗎? – blackpen
不幸的不是。使用DBI插件和Postgres數據庫 - 它結束於以下日誌: 'dbi插件:cdbi_connect_database:dbi_driver_open_r(Pg)失敗。嚴重性=錯誤' – Martin