3

collectd.conf でコメントを外しましLoadPlugin dbiたが、collectd を再起動すると次のようになります。

Stopping collectd:                                         [  OK  ]
Starting collectd: Could not find plugin dbi.
                                                           [  OK  ]

そのプラグインを有効にするにはどうすればよいですか? OS は centos 6.4 で、プラグインyum list allは表示されません。collectd-dbi

[root@virtualbox ~]# yum list all | grep collectd | grep dbi
[root@virtualbox ~]# 

不足していたものをインストールしましlibdbi-dbd-mysqlたが、何も変わりませんでした。

4

1 に答える 1

4

CentOS 6.3 でも同じ問題が発生しました。問題は、EPEL yum リポジトリに collectd-dbi rpm がないことでした。他の場所から dbi プラグインを入手する必要があります。

インストールした collectd のバージョンを確認する

$ yum info collectd

これが私にとっての結果でした

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Installed Packages
Name        : collectd
Arch        : x86_64
Version     : 4.10.7
Release     : 1.el6
Size        : 1.3 M
Repo        : installed
From repo   : epel

誰かが作成した RPM を Web で検索してみることができますが、私の場合、正確なバージョンの RPM を見つけることができませんでした。このため、collectd をソースからコンパイルすることが唯一の解決策だと思います。以下は、collectd をコンパイルして dbi プラグインをインストールするために行った手順です。

collectd リポジトリのクローンを作成し、既にインストールされているバージョンをチェックアウトします

git clone https://github.com/collectd/collectd.git
cd collectd/
git checkout collectd-4.10.7

依存関係をインストールして、collectd をコンパイルします。以下は、これをコンパイルするためにインストールする必要があるすべてのものですが、インストールする必要があるものは他にもあるかもしれません。libdbi-devel が必要であることに注意してください。インストールされていない場合、configure スクリプトを実行すると、dbi プラグインは有効化されず、コンパイルされません。

sudo yum install autoconf automake flex ppl cloog-ppl cpp libgomp mpfr glibc-devel glibc-headers kernel-headers gcc libtool libtool-ltdl libtool-ltdl-devel libgcrypt-devel libgpg-error-devel libdbi libdbi-devel bison byacc db4-cxx db4-devel gdbm-devel perl-ExtUtils-MakeMaker perl-ExtUtils-ParseXS perl-Test-Harness perl-devel

以下を実行し、エラーがないことを確認します

./build.sh && ./configure && make

コンパイルに問題がないと仮定すると、dbi プラグインをコンパイルする必要があります。あなたはそれを見つけることができますsrc/.libs/dbi.so

リンクされたすべてのライブラリがインストールされていることを確認してください

$ ldd src/.libs/dbi.so
linux-vdso.so.1 =>  (0x00007fff109ff000)
libdbi.so.0 => /usr/lib64/libdbi.so.0 (0x00007fca4a53c000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fca4a338000)
libc.so.6 => /lib64/libc.so.6 (0x00007fca49fa3000)
libm.so.6 => /lib64/libm.so.6 (0x00007fca49d1f000)
/lib64/ld-linux-x86-64.so.2 (0x00007fca4a95a000)

問題がなければ、次のように dbi.so 共有オブジェクトを collectd lib ディレクトリにインストールできます。

sudo install -o root -g root src/.libs/dbi.so /usr/lib64/collectd/

これで、collectd を再起動して、dbi ライブラリをロードできるはずです。

$ sudo service collectd restart
Stopping collectd:                                         [  OK  ]
Starting collectd:                                         [  OK  ]

それが役立つことを願っています

于 2015-03-23T20:18:26.000 に答える