主页 > 服务器技术 > 系统性能监控利器-collectd详解

系统性能监控利器-collectd详解

PDF版本

系统监控是作为网站运维、网站性能优化必不可少的工具,目前比较常用的有Nagios、Cacti以及Zabbix,笔者用过后两个,其中Zabbix确实很强大,web界面操作也比较不错。不过这几个工具安装起来那可并不简单,其中Nagios的复杂那可是出了名的。

插播:关于服务器端监控命令请参考前文《Linux服务器性能追踪以及服务器监控常用命令》

笔者近期一直在尝试用Collectd,一款性能监控程序,C语言开发(高效)、无需系统cron支持(独立)、简单易用。Collectd是插件式架构,主要分为输入、输出类型插件,具体可以参考collectd官方网站。
Collectd的官方网站 http://collectd.org/

1. 安装
Ubuntu和CentOS都可以用apt或者yum安装。

sudo yum install collectd.x86_64 collectd-apache collectd-ping collectd-nut collectd-snmp collectd-mysql collectd-rrdtool

要注意的是,安装collectd的时候要注意CPU架构,64位的一定要带上x86_64,否则装不上。

2. 启动
sudo /etc/init.d/collectd start
这样,就启动了collectd deamon程序。

Collectd前端程序

Collectd的deamon程序搞定之后,我们需要安装客户端,collectd的客户端非常多,大家可以参考这个列表。
Collectd前端列表 http://collectd.org/wiki/index.php/List_of_front-ends

我们选择第一个Collectd Graph Panel。

wget http://pommi.nethuis.nl/storage/software/cgp/cgp-0.3.tgz
tar -zxvf cgp-0.3.tgz
mv cgp-0.3 /var/www/html/cgp

注意:此处假设你的apache document root位于/var/www/html。

然后修改一下cgp的配置(笔者测试的版本为 collectd 4.10.3, Collectd Graph Panel 0.3)

vim conf/config.php

修改如下一行(笔者机器的默认配置,注意如果启用了network插件,这个位置会变)

$CONFIG['datadir'] = '/var/lib/collectd';

这时,所有一切都基本搞定,打开浏览器,输入 http://your-host/cgp
Collectd front end

配置多服务器监控
Collectd支持多服务器监控,通过network插件,可以将一个collectd配置成为server,其他的配置成为client,然后client会向服务器端发送数据,所有的统计都会记录在服务端。

简单的配置如下,在plugin network下面:

  Listen "192.168.8.1"

如果启用的是内网IP,甚至不用验证。(collectd验证请参考官网wiki)。服务器端也很简单,加上Server配置即可。

这里主要共享一下笔者在配置中遇到的几个注意点:
1. collectd是基于udp协议的,所以在查看deamon程序的时候试用netstat -nupl,笔者习惯写 netstat -ntpl所以费了好大劲才确认了collectd服务启动成功。
2. 在collectd启动中,如果启用FQDNLookup选项,确保服务器的hostname和IP一致,比如我的hostname是robbin-server-01,这个不是一个FQDN,所以需要在/etc/hosts里面添加一行:127.0.0.1 robbin-server-01,否则会启动不成功。(可以在/var/log/messages里面查看日志)
3. 在试用collectd-web作为前端的时候,需要先执行require验证的脚本,看系统配置是否满足。
 
4. 如果是CGP,注意权限问题。参考collectd-graphic-panel官网的一段评论如下:

Xan says: January 29, 2011 at 15:17
Error:No Collectd hosts found in /var/lib/collectd/rrd
All seems to be correct: the server, and collectd, but CGP show me that error. How can I fix it?
Thanks,
Xan,

pommi says: January 29, 2011 at 19:56
Hi Xan, This message can mean 2 things:
1. Your collectd datadir is not in /var/lib/collectd/rrd. Set $CONFIG['datadir'] in conf/config.local.php to set the correct one.
2. Your webserver user (for example: user www-data when Debian/Apache2) is not allowed to read the files in /var/lib/collectd/rrd

参考链接:

Collectd官方网站 http://collectd.org
Collectd多服务器监控配置 http://collectd.org/wiki/index.php/Networking_introduction
Collectd前端列表 http://collectd.org/wiki/index.php/List_of_front-ends

推荐阅读:

Linux服务器性能追踪以及服务器监控常用命令


声明: 本站所有文章欢迎转载,所有文章未说明,均属于原创,转载均请注明出处。
本文有效链接: http://www.drupal001.com/2012/07/system-monitor-collectd/
版权所有: Drupal与高性能网站架构 http://www.drupal001.com


,

评论:5

发表评论
  1. avatar
    回复 jndxjing
    12/09/20

    想请教您,我按照这些步骤配置好后,打开浏览器,没有出图,出现了uncategorized。请问这可能是什么原因造成的呢?谢谢您。还有就是我安装collectd-mysql时,找不到这个软件包。
    非常感谢!

    • avatar
      回复 robbin
      12/09/20

      1. 你查看一下数据是否存储成功。
      2. 你看一下PHP是否装GD等扩展(如果用的是php的前端),可能需要绘图。

      • avatar
        回复 jndxjing
        12/09/21

        好的,非常感谢。再想请教一下,查看数据是否存储成功是不是如果collectd存储数据的文件夹里有RRD文件,就说明有数据存储并生成呢?PHP里装上了GD扩展,发生错误时,从apache的日记里看到,在index.php和html.inc.php里出现了例如undefined index和undefined viariable的错误,这是否是因为PHP环境搭建出现问题?
        在本文中,是否遵照collectd.conf的默认配置就可以了,不用再改动其他东西吗?
        初次接触这个东西,有些地方不大明白,多谢啦!

        • avatar
          回复 robbin
          12/09/30

          基本遵照默认就可以了,默认情况下要启用RRD扩展,然后读取RRD文件就可以了。
          PHP也是要读取RRD文件,至于PHP的问题,这个要看具体的情况了。

  2. avatar
    回复 gdyunfan
    15/05/14

    第一次接触,学习一下

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注


4 + 八 =

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

引用:0

下面所列的是引用到本博客的链接
系统性能监控利器-collectd详解 来自 Drupal与高性能网站架构
顶部