一、
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
、监控效果图如下
(图片版请看附件)