关闭

使用graphite和cabot搭建监控服务

标签: gangliagraphite
512人阅读 评论(0) 收藏 举报
分类:
说起监控,我们一般会首先想到zabbix,nagios,ganglia等等。但是对于非ops开发人员而言,这些东西,多多少少让人感到陌生。所以本文将从一个服务端开发人员的视角,介绍如何通过graphite,cabot,加一个shell定时脚本,搭建监控报警服务。


python环境安装
虽然linux系统上一般都有python环境,但是默认的python版本较低。而且yum等系统工具,都依赖于默认的python。所以推荐的做法是再安装一个python,并使用virtualenv等工具,分项目进行环境管理,并与系统默认的python环境进行隔离。


以python2.7.3为例,介绍python环境的安装。

sudo yum install bzip2-devel.x86_64
sudo yum install sqlite-devel.x86_64
sudo yum install readline-devel.x86_64
sudo yum install openssl-devel.x86_64

wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
tar jxvf Python-2.7.3.tar.bz2
cd Python-2.7.3
./configure --prefix=/usr/local/python2.7.3
make && sudo make install

cd ..
wget https://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz --no-check-certificate
tar zxvf distribute-0.6.49.tar.gz
cd distribute-0.6.49
sudo /usr/local/python2.7.3/bin/python setup.py install
sudo /usr/local/python2.7.3/bin/easy_install pbr

cd ..
wget https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.10.1.tar.gz --no-check-certificate
tar zxvf virtualenv-1.10.1.tar.gz
cd virtualenv-1.10.1
sudo /usr/local/python2.7.3/bin/python setup.py install
sudo /usr/local/python2.7.3/bin/easy_install virtualenvwrapper
如果遇到 [FATAL] Failed to create text with cairo, this probably means cairo cant find any fonts. Install some system fonts and try again。可以尝试安装bitmap font。

sudo yum install bitmap.x86_64
sudo yum install bitmap-fonts-compat.noarch
相关配置
创建管理python环境的用户
为了便于环境的统一管理,创建一个普通用户进行新创建python环境的管理和相关python扩展的安装。同时,向数字公司的addops们致敬。
useradd appops
创建python环境安装目录

sudo mkdir -p /data/server/python-envs
sudo chown -R appops.appops /data/server
配置新安装的python2.7.3环境

sudo su appops -c 'vim ~/.bashrc'
添加如下内容

export WORKON_HOME=/data/server/python-envs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/python2.7.3/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/python2.7.3/bin/virtualenv
source /usr/local/python2.7.3/bin/virtualenvwrapper.sh

搭建graphite监控服务
安装步骤

创建目录:

sudo mkdir /opt/graphite
sudo chown -R appops.appops /opt/graphite

创建python虚拟环境:

sudo su appops
source ~/.bashrc
mkvirtualenv graphite
graphite安装:

pip install whisper
pip install carbon
pip install graphite-web
pip install django==1.5
pip install django-tagging
pip install uwsgi
pip install MySQL-python
pip install daemonize
graphite使用cairo进行绘图,由于系统自带的cairo版本较低(需要cairo1.10以上),使用pip安装cairo会出错,所以采用编译安装。

wget http://cairographics.org/releases/pycairo-1.8.8.tar.gz
tar zxvf pycairo-1.8.8.tar.gz
python -c "import sys; print sys.prefix"
cd pycairo-1.8.8
./configure --prefix=/data/server/python-envs/graphite
make
make install

目录说明:

bin -- 数据收集相关工具
conf -- 数据存储相关配置文件
    carbon.conf -- 数据收集carbon进程涉及的配置
    dashboard.conf -- Dashboard UI相关配置
    graphite.wsgi -- wsgi相关配置
    storage-schemas.conf -- Schema definitions for Whisper files
    whitelist.conf -- 定义允许存储的metrics白名单
    graphTemplates.conf -- 图形化展示数据时使用的模板
examples -- 示例脚本
lib -- carbon和twisted库
storage -- 数据文件存储目录
webapp -- 数据前端展示涉及程序


配置graphite-web

初始化配置文件

cd /opt/graphite/webapp/graphite
cp local_settings.py.example local_settings.py
cp /opt/graphite/conf/graphite.wsgi.example /opt/graphite/conf/graphite.wsgi
cp /opt/graphite/conf/graphTemplates.conf.example /opt/graphite/conf/graphTemplates.conf
cp /opt/graphite/conf/dashboard.conf.example /opt/graphite/conf/dashboard.conf

初始化数据库

python manage.py syncdb

启动:

uwsgi --http localhost:8085 --master --processes 1 --home /data/server/python-envs/graphite --pythonpath /opt/graphite/webapp/graphite --wsgi-file=/opt/graphite/conf/graphite.wsgi --enable-threads --thunder-lock


参考:http://wrox.cn/article/100000312/






0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1433129次
    • 积分:16704
    • 等级:
    • 排名:第628名
    • 原创:553篇
    • 转载:747篇
    • 译文:3篇
    • 评论:59条
    技术交流
    文章分类
    最新评论