Collectd+mogodb plugin 源码 安装
git clone https://github.com/mongodb/mongo-c-driver.git
cd mongo-c-driver
git checkout secondary
make && make install
git clone https://github.com/collectd/collectd.git
cd collectd
修改Collectd得文件
src/curl.c
if (wp->response_time)
start = cdtime ();
+ else
+ start = cdtime ();
src/write_mongodb.c
- status = mongo_connect (node->conn, node->host, node->port);
+ status = mongo_connect (node->conn, node->host, node->port, MONGO_SECONDARY_OK);
yum install libgcrypt.x86_64 libgcrypt-devel.x86_64
yum install libtool-ltdl-devel.x86_64
yum install libvirt-devel.x86_64
yum install libmongodb.x86_64
yum install perl-devel.x86_64
librabbitmq-devel.x86_64
yum install perl-ExtUtils-Embed.noarch : libperl
libmemcached-devel.x86_64
yum install rrdtool-devel.x86_64
libcurl-devel.x86_64
编译collectd
build.sh
./configure --with-libmongoc=/usr/local/lib/libmongoc.so --enable-write_mongodb --prefix=/usr/local/etc/collectd
没有问题后
make && make install
启动mongodb
启动collectd
修改collectd.conf 文件, 启用write_mongodb plugin,# 注释得表示该插件尚未启用, ##表示插件未满足安装条件
将对应项进行修改。
启动出错
ERROR: lt_dlopen ("/opt/collectd/lib/collectd/write_mongodb.so") failed: file not found.
The most common cause for this problem are missing dependencies.
Use ldd(1) to check the dependencies of the plugin / shared object.
ldd /usr/local/etc/collectd/lib/collectd/write_mongodb.so
linux-vdso.so.1 => (0x00007fffa3ffe000)
libmongoc.so.0.6 => not found
libdl.so.2 => /lib64/libdl.so.2 (0x00007f1134fe8000)
libc.so.6 => /lib64/libc.so.6 (0x00007f1134c2f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1135614000)
解决方法将
libmongoc.so.0.6考至/lib64中
启动collectd,成功!