使用graphite和cabot搭建监控服务

转载 2016年05月30日 15:17:07
说起监控,我们一般会首先想到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/






相关文章推荐

zabbix3.2+Grafana4.0实现可视化监控图形

Grafana 是 Graphite 和 InfluxDB 仪表盘和图形编辑器。Grafana 是开源的,功能齐全的度量仪表盘和图形编辑器,支持 Graphite,InfluxDB 和 OpenTSD...

Graphite详解

Graphite详解Graphite是一个开源实时的、显示时间序列度量数据的图形系统。Graphite并不收集度量数据本身,而是像一个数据库,通过其后端接收度量数据,然后以实时方式查询、转换、组合这些...
  • chszs
  • chszs
  • 2016年03月19日 01:06
  • 4670

Graphite监控上手指南

主要讨论内容 在本文中我们将会谈及如下用于创建Graphite监控系统的主题: Carbon和Whisper简介 Whisper存储模式和聚合 Graphite Web应用 ...

使用StatsD, Graphite, Grafana, Kamon搭建可用于JVM项目的可视化性能监控系统

原文地址:http://skaka.me/blog/2015/07/21/kamon-statsd-graphite-grafana-introduction/ 1. 什么是性能监控系统 这里...

拥抱开源,DNSPod推出基于Graphite协议的云监控服务

近日,特斯拉公司CEO马斯克的一篇博客又掀起了一阵特斯拉风暴,在视专利为财富的汽车产业,特斯拉将采取“开源模式”,决定开放特斯拉的专利技术,向全世界宣布这是拥有互联网思维的汽车厂商的“开源精神”。 ...

开源服务内部监控系统 graphite简介

开源监控系统,大名鼎鼎的有nagois,catis。公司就有运维采用nagios作服务器与服务状态监控,同时结合插件提供邮件短信报警功能;catis通过snmp协议对服务器进行监控,利用RRDTool...
  • zoubf
  • zoubf
  • 2017年02月16日 11:01
  • 745

Python + Statsd + Graphite 搭建监控平台

Python + Statsd + Graphite 搭建监控平台 在网上找了很久,没有一篇很完整很清晰地介绍Statsd+Graphite搭建监控平台,正好边摸索边尝试边写下来,方便大家。...

WEB监控系列第二篇:web监控搭建——graphite+statsd(服务器上搭建)

转贴请注明原址:http://blog.csdn.net/crazyhacking/article/details/8464235 1 说明 (1)因为1 想安装在一个目录下 2不能使用root权...

Jmxtrans + Graphite 监控 Kafka

Jmxtrans简介 JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统...
  • yxydde
  • yxydde
  • 2017年04月21日 17:38
  • 609

DevOps实战:Graphite监控上手指南

在本文中,我将提供一个帮助读者了解用Graphite套件创建监控系统所涉及的全部工作的指南。 主要讨论内容 在本文中我们将会谈及如下用于创建Graphite监控系统的主题: Carbon和W...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用graphite和cabot搭建监控服务
举报原因:
原因补充:

(最多只允许输入30个字)