基于CentOS6.5,statsD和Graphite的部署过程

最近在整理爬虫,采用scrapy,想部署一套分布式爬虫系统,graphite作为爬虫的监控,废话不多说直接上手
系统版本:CentOS release 6.5 (Final)
Python版本:Python 2.7.6

开始部署Graphite
1、系统依赖
引用
yum -y install libpng-devel


2、安装mysql、nginx(此处省略,可用源码或者yum安装,这里遇到一点问题,刚开始安装的是mysql5.6的版本,但是后面安装mysql-python,测试的时候 import MySQLdb出现问题,一直提示找不到libmysqlclient_r.so.16,进mysql lib目录一看,尼玛根本没有这个只有libmysqlclient_r.so.15和libmysqlclient_r.so.18,回忆以前安装mysql5.1时没有遇到这个问题,为了节省时间,只要对mysql降级)

3、安装Django(pip视为已安装,不做过多赘述,这里也需要说明下,这里耽误我不少时间,刚开始没有制定django版本,默认装了个1.8,麻痹啊,各种不兼容啊,还找不到问题,经过一番努力,偶然返现版本兼容问题,降级,安装指定版本1.5.8)
引用
pip install Django==1.5.8
pip install django-tagging


4、有用到mysql数据库安装mysql模块
引用
pip install mysql-python


5、开始搞Graphite(默认安装目录为/opt/graphite)
引用
pip install carbon
pip install whisper
pip install graphite-web


6、cairo和pycairo(这里直接用yum,版本为1.8.X,也可以使用源码安装)

7、配置carbon(这里直接采用默认配置)
引用
cd /opt/graphite/conf
cp carbon.conf.example carbon.conf
cp storage-schemas.conf.example storage-schemas.conf


8、修改Django的数据库配置(配置文件位置/opt/graphite/webapp/graphite/settings.py)
引用
#Initialize deprecated database settings
DATABASE_ENGINE = ''
DATABASE_NAME = ''
DATABASE_USER = ''
DATABASE_PASSWORD = ''
DATABASE_HOST = ''
DATABASE_PORT = ''

DATABASES = {
  'default': {
    'NAME': 'name',
    'ENGINE': 'django.db.backends.mysql',
    'USER': 'user',
    'PASSWORD': 'password',
    'HOST': '192.168.2.244',
    'PORT': '3306'
  }
}


9、设置完成数据库,需要进行数据同步
引用
cd /opt/graphite/webapp/graphite
python manage.py syncdb


10、安装Twisted(注意版本)
引用
pip uninstall Twisted
pip install "Twisted<12.0"


11、启动carbon-cache服务
引用
cd /opt/graphite
bin/carbon-cache.py start


12、OK基础完成,接下来配置WEB(Nginx+uWSGI模式)
12.1、需要先安装uwsgi
引用
pip install uwsgi

12.2、配置、启动uwsgi服务
引用
cd /opt/graphite/conf
cp graphite.wsgi.example wsgi.py
cd /opt/graphite/
touch uwsgi.xml
vim uwsgi.xml
<uwsgi>
  <socket>127.0.0.1:8630</socket>
  <chdir>/opt/graphite/conf</chdir>
  <module>wsgi</module>
  <master>True</master>
  <processes>4</processes>
  <pidfile>/var/run/uwsgi-graphite.pid</pidfile>
  <vacuum>True</vacuum>
  <max-requests>5000</max-requests>
  <daemonize>/var/log/uwsgi-graphite.log</daemonize>
  <stats>127.0.0.1:9192</stats>
  <protocol>http</protocol>
</uwsgi>

12.3、启动uwsgi
uwsgi /opt/graphite/uwsgi.xml
12.4/nginx配置
引用
server {
        listen 80;
        server_name localhost;
        proxy_buffer_size 64k;
        proxy_buffers   32 32k;
        proxy_busy_buffers_size 128k;

        location / {
                include uwsgi_params;
                proxy_pass http://127.0.0.1:8630;
        }

        location /static/admin/ {
                alias /usr/local/lib/python2.7/site-packages/django/contrib/admin/static/admin/;
        }
}

12.5、配置完成,重新启动nginx,访问主机ip,就会出现graphite的页面

猜你喜欢

转载自80082828.iteye.com/blog/2208948