CentOS 5.5 安装Graphite
1.系统信息汇总
[root@cc-monitor conf]# uname -a
Linux cc-monitor 2.6.18-194.32.1.el5 #1 SMP Wed Jan 5 17:52:25 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
[root@cc-monitor conf]# python -V
Python 2.4.3
[root@cc-monitor conf]# getenforce
Disabled
2.安装Graphite依赖包
添加额外的源
除了CentOS源base、updates、extra之外,再添加两个源:epel和rpmforge。
# 安装epel源
wget Fedora-epel/5/i386/epel-release-5-4.noarch.rpm
yum install epel-release-5-4.noarch.rpm
# 安装rpmforge源
wget
yum install rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
安装依赖包
依赖包相当多,争取一次搞定
yum -y install bitmap bitmap-fonts Django pycairo python-devel python-ldap python-memcached mod_wsgi python-sqlite2 glibc-devel gcc gcc-c++ git openssl-devel python-zope-interface httpd memcached python-hashlib django-tagging python-twisted python-simplejson
这里还是做一下简单说明:
cairo是graphite的绘图库,是必须的软件。
bitmap-fonts字体也是需要的,否则可能图形显示不正常
python-twisted必须安装rpmforge源的python-twisted-core-8.2.0-1.el5.rf,这也是为什么添加rpmforge源的原因。
mod_wsgi是apache的模块
3.安装Graphite组件
Graphite组件包括三个部分:carbon、whisper和graphite-web
下载地址:
https://github.com/graphite-project/graphite-web/downloads
https://github.com/graphite-project/whisper/downloads
https://github.com/graphite-project/carbon/downloads
# install graphite-web
tar zxvf graphite-web-0.9.10.tar.gz
cd graphite-web-0.9.10
python setup.py install
cd ..
# install whisper
tar zxvf whisper-0.9.10.tar.gz
cd whisper-0.9.10
python setup.py install
cd ..
# install carbon
tar zxvf carbon-0.9.10.tar.gz
cd carbon-0.9.10
python setup.py install
4.配置apache服务
创建 Graphite 的虚拟主机配置:/etc/httpd/conf.d/graphite.conf,创建方法如下:
cat > /etc/httpd/conf.d/graphite.conf
Listen 8080
# You may need to manually edit this file to fit your needs.
# This configuration assumes the default installation prefix
# of /opt/graphite/, if you installed graphite somewhere else
# you will need to change all the occurances of /opt/graphite/
# in this file to your chosen install location.
<VirtualHost *:8080>
ServerName graphite
DocumentRoot "/opt/graphite/webapp"
# I've found that an equal number of processes & threads tends
# to show the best performance for Graphite (ymmv).
WSGIDaemonProcess graphite processes=5 threads=5 display-name='%{GROUP}' inactivity-timeout=120
WSGIProcessGroup graphite
# You will need to create this file! There is a graphite.wsgi.example
# file in this directory that you can safely use, just copy it to graphite.wgsi
WSGIScriptAlias / /opt/graphite/conf/graphite.wsgi
Alias /content/ /opt/graphite/webapp/content/
<Location "/content/">
SetHandler None
</Location>
# NOTE: In order for the django admin site media to work you
# must change @DJANGO_ROOT@ to be the path to your django
# installation, which is probably something like:
# /usr/lib/python2.6/site-packages/django
Alias /media/ "/usr/lib/python2.4/site-packages/django/contrib/admin/media/"
<Location "/media/">
SetHandler None
</Location>
# The graphite.wsgi file has to be accessible by apache. It won't
# be visible to clients because of the DocumentRoot though.
<Directory /opt/graphite/conf/>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
配置mod_wsgi模块
在 /etc/httpd/conf.d/wsgi.conf文件中添加以下两行:
LoadModule wsgi_module modules/mod_wsgi.so
WSGISocketPrefix /var/run/wsgi
5.配置Graphite
运行以下命令创建配置文件
cd /opt/graphite/conf/
for i in graphite.wsgi carbon.conf storage-schemas.conf storage-aggregation.conf; do cp $i.example $i; done
cd /opt/graphite/webapp/graphite/
cp local_settings.py.example local_settings.py
运行以下命令创建数据库:
cd /opt/graphite/webapp/graphite/
python manage.py syncdb
chown -R apache:apache /opt/graphite/
6.启动服务和程序
service httpd start
/opt/graphite/bin/carbon-cache.py start
安装已经完成。在浏览器中使用:8080,使用安装graphite的主机的ip代替。可以访问即可以肯定的告诉你CentOS 5安装Graphite成功了
7.安装node-js和statsd
#先安装python2.6
yum install bzip2* glibc-devel
cd Python-2.6.8
make clean
./configure
make
make install
ln -s /usr/local/bin/python /usr/bin/python
#再安装node-js
wet
cd node-v0.8.7
./configure
make
make install
#验证安装是否成功
[root@cc-monitor statsd-2.0.1]# node -v
v0.8.7
#安装statsd
git clone
cp -R statsd /opt/graphite/
#Create /opt/graphite/statsd/local.js
[root@cc-monitor statsd]# cat local.js
{
graphitePort: 2003
, graphiteHost: "localhost"
, port: 8124
}
#start nodejs/statsd
cd /opt/graphite/statsd
nohup /usr/local/bin/node stats.js local.js &