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,成功!
posted @ 2013-06-09 18:03  willier  阅读(743)  评论(0编辑  收藏  举报