我在collected.conf中未注释LoadPlugin dbi,但是现在重新启动collected给了我:
Stopping collectd: [ OK ]
Starting collectd: Could not find plugin dbi.
[ OK ]
如何启用该插件?操作系统是centos 6.4,并且yum list都没有显示collectd-dbi插件:
[root@virtualbox ~]# yum list all | grep collectd | grep dbi
[root@virtualbox ~]#
我已经安装了libdbi-dbd-mysql,但它并没有任何改变.
解决方法:
我在CentOS 6.3上遇到了同样的问题.问题最终是EPEL yum存储库中没有collect-dbi rpm.您必须从其他地方获取dbi插件.
检查您安装了哪个版本的收集
$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,但在我的情况下,找不到与我的确切版本相同的RPM.因此,我认为唯一的解决方案是编译从源代码收集的代码.以下是我编译收集并安装dbi插件所采取的步骤
克隆收集的仓库并签出您已经安装的版本
git clone https://github.com/collectd/collectd.git
cd collectd/
git checkout collectd-4.10.7
安装依赖项以编译收集的内容.以下是我需要进行编译以安装的所有内容,但可能还需要安装更多内容.注意,libdbi-devel是必需的.如果未安装,则在运行配置脚本时,将不会启用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共享库安装到收集的lib目录中,如下所示:
sudo install -o root -g root src/.libs/dbi.so /usr/lib64/collectd/
现在,您应该能够重新开始收集并加载了dbi库
$sudo service collectd restart
Stopping collectd: [ OK ]
Starting collectd: [ OK ]
希望能有所帮助