使用 collectd 和 Graphite 监控服务器

Graphite 只是一个数据绘图工具,安装 Graphite 完以后啥也不能干,需要其他工具喂它数据,所以具体的数据采集工作是由第三方工具完成,Graphite 的设计体现了 Unix 的思想:只做一件事,把事情做好。Graphite 支持的第三方工具很多,Bucky, collectd, Collectl, Charcoal, Diamond, Ganglia, Host sFlow, statsd, Tasseo 等等。这里 VPSee 选用 collectd 来收集机器的各个性能参数,collectd 安装在需要被监控的机器上。

安装 collectd,创建一个 collectd.d 目录便于存放稍后会遇到的插件配置文件 graphite.conf,并在 collectd.conf 包含这个目录 :

$ sudo apt-get install collectd

$ sudo mkdir /etc/collectd/collectd.d
$ sudo vi /etc/collectd/collectd.conf
...
Include      "/etc/collectd/collectd.d"

安装 git 并下载 collectd-carbon 插件:

$ sudo apt-get install git

$ sudo git clone https://github.com/indygreg/collectd-carbon.git /opt/collectd-plugins

修改插件的配置文件的 ModulePath 部分,指向 carbon_writer.py 文件所在目录,并且修改 LineReceiverHost 部分:

$ sudo vi /etc/collectd/collectd.d/graphite.conf
<LoadPlugin "python">
    Globals true
</LoadPlugin>

<Plugin "python">
    # carbon_writer.py is at path /opt/collectd-plugins/carbon_writer.py
    ModulePath "/opt/collectd-plugins/"

    Import "carbon_writer"

    <Module "carbon_writer">
        LineReceiverHost "monitor.vpsee.com"
        LineReceiverPort 2003
        DifferentiateCountersOverTime true
        LowercaseMetricNames true
        TypesDB "/usr/share/collectd/types.db"
    </Module>
</Plugin>

修改好配置文件后重启服务:

$ sudo /etc/init.d/collectd restart

大功告成,等着客户端的 collectd 收集数据发送给监控服务器的 carbon(监听端口为 2003)吧,然后递交给 graphite 绘制图形。

评论 (8 Comments)

  1. 请问vpsee,collectd和cacti有什么区别呢?

  2. 你这文章写的,标题中的collectd就拼错了,多了一个e,文章中这个错词就用了N处,然后collectd也没有一个官方地址。

  3. 真是好同志啊,已经更正,谢谢;)

  4. 我已经配好了graphite,我用自己写的脚本往2003号端口上发数据,graphite的web前端能看到数据,绘出图来。
    但是我按照你这篇文章写的,安装了collectd之后,并配置之后,没有任何反应,可以帮我分析一下吗?

  5. $ sudo make /etc/collectd/collectd.d 这里有错误,make 应该是mkdir。请确定下,谢谢!

  6. apt-get安装后的collectd是4.10版本,请问怎么安装最新的5.2版本?

  7. 使用configure,make,make install后,没有相应的执行文件

  8. 启动collectd的时候提示
    Could not find plugin python.
    这是什么原因

发表评论