我在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,有人建,但在我的情況我找不到我的確切版本。正因爲如此,我認爲唯一的解決方案是從源代碼編譯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 ]
希望可以幫到
非常好的答案,謝謝。 –