collectd - 如何安装dbi插件?

时间:2013-11-25 10:30:48

标签: mysql dbi collectd

我在collectd.conf中已取消注释LoadPlugin dbi,但现在重新启动collectd会给我:

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

如何启用该插件?操作系统是centos 6.4,yum list all没有显示collectd-dbi插件:

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

我已经安装了遗失的libdbi-dbd-mysql,但这并未改变任何内容。

1 个答案:

答案 0 :(得分:4)

我在CentOS 6.3上遇到了同样的问题。问题最终是EPEL yum repo中没有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  ]

希望有所帮助