一、 Graphite 准备
1 、安装依赖包
[root@~]#rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
 
[root@collectd ~]# yum install -y bitmap bitmap-fonts-compat Django django-tagging fontconfig cairo python-devel python-memcached python-twisted  pycairo mod_python python-ldap python-simplejson memcached python-zope-interface mod_wsgi python-sqlite2 git gcc gcc-c++ make
 
2 、安装 Graphite 组件
Graphite 组件: whisper carbon graphite-web
安装方式:源代码、 pip virtualenv (本例使用源码安装)
 
下载文件
[root@]# wget https://launchpad.net/graphite/0.9/0.9.10/+download/graphite-web-0.9.10.tar.gz
[root@]# wget https://launchpad.net/graphite/0.9/0.9.10/+download/carbon-0.9.10.tar.gz
[root@]# wget https://launchpad.net/graphite/0.9/0.9.10/+download/whisper-0.9.10.tar.gz
 
安装方法(默认安装位置 /opt/graphite 目录)
whisper carbon graphite-web 安装方法相同,解压软件,进入软件目录,执行以下命令
[root@collectd soft]# tar zxvf carbon-0.9.10.tar.gz
[root@collectd soft]# cd carbon-0.9.10
[root@collectd carbon-0.9.10]# python setup.py install
 
[root@collectd soft]# tar zxvf graphite-web-0.9.10.tar.gz
[root@collectd soft]# cd graphite-web-0.9.10
[root@collectd graphite-web-0.9.10]# python setup.py install
 
[root@collectd soft]# tar zxvf whisper-0.9.10.tar.gz
[root@collectd soft]# cd whisper-0.9.10
[root@collectd whisper-0.9.10]# python setup.py install
 
3 、配置 graphite
1 )设置 graphite 配置文件
[root@collectd ~]# cd /opt/graphite/conf/
[root@collectd conf]# cp carbon.conf.example carbon.conf
[root@collectd conf]# cp storage-schemas.conf.example storage-schemas.conf
[root@collectd conf]# cp graphite.wsgi.example graphite.wsgi
其中:
         /opt/graphite/conf 是配置文件存放目录
carbon.conf carbon 的配置文件,分三个片段 cache relay aggregator
storage-schemas.conf 配置文件定义数据的存储
graphite.wsgi 配置文件配置 django
2 )设置 apache 虚拟主机
apache 虚拟主机配置有一个样例在 graphite-web 安装包内的 examples/example-graphite-vhost.conf ,复制这个文件到 apache 配置文件
 
下图为虚拟主机配置文件

 
3 )初始化数据库
[root@collectd ~]# cd /opt/graphite/webapp/graphite
[root@collectd graphite]# cp local_settings.py.example local_settings.py
[root@collectd graphite]# python manage.py syncdb
[root@collectd graphite]# chown -R apache.apache /opt/graphite/



4 )启动 apache 服务
[root@collectd ~]# service httpd start
 
5 )启动 carbon
[root@collectd ~]# cd /opt/graphite/
[root@collectd graphite]# ./bin/carbon-cache.py start
 
4 、安装测试
浏览器访问 172.16.19.105:8080 地址后就可以看到 graphite web 界面。如下图:
 
 
 
 
 
 
 
 
 
5 、运行 graphite-web 安装包内的 examples/example-client.py 可以喂数据给 graphite
[root@collectd examples]# python example-client.py
产生的数据格式如下:
 
 
 
对应在浏览器窗口中的显示为在 system 目录下, loadavg_15min loadavg_5min loadavg_1min 这三条线就是 example-client.py 的数据产生的图形
注意事项: 默认显示 24 小时,因此可能好像没有图形出现。可以点击上图中右箭头选择时间范围,如下图:
 

 
6 、常见问题(网上找到的)
问题 1 pycairo 安装提示 python 版本太低
解决办法 打开 http://cairographics.org/pycairo/, 有个 pycairo py2cairo
问题 2: 安装 py2cairo 提示 python2.6 未发现或 cairo 模块未发现
解决办法 :  yum install pycairo python-devel
 
问题 3: cairo 模块需要字体
[FATAL] Failed to create text with cairo, this probably means cairo cant find any fonts. Install some system fonts and try again
解决办法 :  yum install bitmap-fonts-compat
 
问题 4: 不能导入 django 模块
解决办法 :   yum install Django
 
问题 5: 不能导入 tagging 模块
解决办法 :   yum install django-tagging
 
问题 6: 不能导入 mod_python 模块
解决办法 :   yum install mod_python
 
问题 7: 不能导入 memcache 模块
解决办法 :  yum install python-memcached
问题 8: 不能导入 ldap 模块
解决办法 :   yum install python-ldap
 
问题 9: 不能导入 twisted
解决办法 :   yum install python-twisted
 
问题 10: 不能导入 txamqp 模块
解决方法 :    https://launchpad.net/txamqp/ 下载 txamqp 模块,然后运行 python setup.py install 安装即可
 
问题 11 DatabaseError: attempt to write a readonly database
解决办法: 运行建立数据库命令,且将新建立的数据库文件修改成为 httpd 服务 (apache httpd ) 运行的用户,最好将整个 /opt/graphite 修改为 httpd 服务运行的用户
7 、参考文章
Installing Graphite - Graphite 官方网站的安装指南
Installing Graphite - Graphite 文档网站 的安装指南
OperationalError: unable to open database file
 
二、 collectd 安装
Collect 下载地址: http://collectd.org/files/collectd-5.1.1.tar.bz2
 
1 、安装依赖包
[root@collectd ~]# yum -y install perl-ExtUtils-MakeMaker
 
2 、安装 collectd
[root@collectd soft]# tar jxvf collectd-5.1.1.tar.bz2
[root@collectd soft]# cd collectd-5.1.1
[root@collectd collectd-5.1.1]# ./configure --prefix=/usr/local/collectd --enable-cpu --enable-memory --enable-ping --enable-swap
[root@collectd collectd-5.1.1]# make && make install
注意 collectd 是以插件方式对各个组件进行监控的,在编译前可以使用以下命令查看模块:
[root@collectd collectd-5.1.1]# ./configure –help
目前还没有发现 collectd 是否可以在安装 collectd 完成之后再动态的添加插件
3 collectd 配置
[root@collectd ~]# vi /usr/local/collectd/etc/collectd.conf
collectd.conf 中添加以下行:
Include      "/usr/local/collectd/etc/collectd.d"
 
创建 collectd.d 配置目录
[root@collectd ~]# mkdir /usr/local/collectd/etc/collectd.d
 
添加 /usr/local/collectd/etc/collectd.d/graphite.conf 配置文件,文件内容如下:
[root@collectd ~]# vi /usr/local/collectd/etc/collectd.d/graphite.conf
 
 
 
 
 
 
 
4 、安装 collectd-carbon 插件
[root@collectd ~]# git clone https://github.com/indygreg/collectd-carbon.git /usr/local/collectd/plugins/
 
启动 collectd 服务
[root@collectd ~]# /usr/local/collectd/sbin/collectd
 
这样就完成了 ,collectd 会收集数据 , 将数据发送给 graphite carbon 监听端口(默认为 2003 Graphite 将根据数据绘制图形。
5 、多机监控
多机监控其实也非常简单,就是按照上述步骤在多台被监控机上安装配置 collectd 即可
但是一定要注意时间同步问题,将时间同步之后再重启一下 collectd 守护进程即可
 
6 、监控效果图如下




(图片版请看附件)