文档章节

graphite 安装使用

mickelfeng
 mickelfeng
发布于 2012/11/30 09:53
字数 1056
阅读 500
收藏 6

简介:

Graphite 是一款开源的监控绘图工具。

Graphite 可以实时收集、存储、显示时间序列类型的数据(time series data)。它主要有三个部分构成:

  1. carbon —— 基于 Twisted 的进程,用来接收数据;

  2. whisper —— 专门存储时间序列类型数据的小型数据库;

  3. graphite webapp —— 基于 Django 的网页应用程序。

下面主要说明一下graphite的安装:

一、使用pip 安装graphite:

1.安装Graphite所依赖的一些软件:

1)安装系统依赖

	
yum install cairo-devel.x86_64 fontconfig.x86_64 python-devel libffi-devel.x86_64 mysql-devel.x86_64

2)安装pip:

3)安装graphite依赖的一些python包:

      pip install -r requirements.txt

14

15

cairocffi==0.7.2

cffi==1.5.2

Django==1.6.8

django-tagging==0.3.6

MySQL-python==1.2.3

pycparser==2.14

pyparsing==1.5.6

python-memcached==1.57

pytz==2015.7

six==1.10.0

Twisted==16.0.0

txAMQP==0.6.2

uWSGI==2.0.12

whisper==0.9.15

zope.interface==4.1.3

 

2.利用源码安装graphite(源码安装是最新的版本):

graphite默认的安装路径是/opt/graphite:

1)Graphite-web: git clone https://github.com/graphite-project/graphite-web.git

2)Carbon: git clone https://github.com/graphite-project/carbon.git

3)Whisper: git clone https://github.com/graphite-project/whisper.git

4)Ceres: git clone https://github.com/graphite-project/ceres.git

 

3.安装graphite web:

1)安装配置 nginx

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

[root@test123 graphite]# cat /etc/nginx/conf.d/graphite.conf

server {

        listen        8000;

        server_name   10.13.40.216;

        charset       utf-8;

        access_log    /var/log/nginx/graphite.access.log;

        error_log     /var/log/nginx/graphite.error.log;

        location / {

            add_header Access-Control-Allow-Origin $http_origin;

            add_header 'Access-Control-Allow-Credentials' 'true';

            add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS';

            add_header 'Access-Control-Allow-Headers' 'origin, authorization, accept';

            uwsgi_pass 127.0.0.1:3031;

            include uwsgi_params;

        }

        location /static {

            alias /opt/graphite/webapp/content;

        }

        location /content {

            alias /opt/graphite/webapp/content;

            gzip off;

            include uwsgi_params;

            uwsgi_pass      127.0.0.1:3031;

        }

}

2)配置uwsgi.

1

2

3

4

5

6

7

8

9

10

11

12

13

[root@test123 graphite]# cat /opt/graphite/webapp/graphite.ini

[uwsgi]

processes = 2

socket = 0.0.0.0:3031

gid = nginx

uid = nginx

chdir = /opt/graphite/webapp/graphite

module = wsgi

buffer-size = 65536

pidfile = /var/run/uwsgi.pid

chmod-socket = 666

pythonpath = /opt/graphite/webapp

daemonize = /var/log/uwsgi.log

4.初始化一些目录,数据目录放在/data1/graphite:

1

2

mkdir -p /data1/graphite/storage/log/webapp/

chown nginx.nginx /data1/graphite/storage/log/webapp/

 

5.配置文件配置见附件。

 

二、使用virtualenv安装graphite:

virtualenv是一个python工具. 它可以创建一个独立的python环境. 这样做的好处是你的python程序运行在这个环境里, 不受其它的 python library的版本问题影响. 比如说centos6默认的python版本是2.6,但是现在python2.6在python核心团队已经不再提供支持,想使用python2.7而不影响其他使用python2.6,就用到了virtualenv。对于后期环境的迁移也很方便。

 

1.首先在centos6.x系统上安装python2.7.x

1)源码安装Python 2.7.x

1

2

3

4

5

6

7

8

# wget http://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz

# xz -d Python-2.7.8.tar.xz

# tar -xvf Python-2.7.8.tar

# cd Python-2.7.8

# 安装在/usr/local下

# ./configure --prefix=/usr/local && make && make altinstall

# /usr/local/bin/python -V

# Python 2.7.8

2.创建virtualenv python2.7环境

1)首先使用easy_install安装virtualenv:

1

# easy_install virtualenv

2)创建python2.7环境到/opt/graphite(由于graphite默认安装在/opt/graphite,方面后期迁移)

1

# virtualenv -p /usr/local/bin/python2.7 /opt/graphite

3.安装graphite:

1)进入到virtualenv环境中:

1

2

# cd /opt/graphite && source ./bin/activate

# (graphite) [root@test123 graphite]#     #这说明已经进入到虚拟环境中。

2)剩下的安装graphite可按照上述使用pip安装graphite进行操作。

 

4.启动graphite:

在virtualenv安装的graphite启动时不必每次都进入到虚拟环境中(cd /opt/graphite && source ./bin/activate)

只需要使用虚拟环境中的python即可,然后它会找到这个python的所有依赖。

1

2

3

# /opt/graphite/bin/python /opt/graphite/bin/carbon-relay.py start

# /opt/graphite/bin/python /opt/graphite/bin/carbon-aggregator.py start

# /opt/graphite/bin/python /opt/graphite/bin/carbon-cache.py --instance=a start

5.环境迁移

以后需要重新创建同样配置的graphite,只需要在新机器上安装上基础环境和virtualenv即可。

然后把原来的创建的虚拟环境/opt/graphite copy过来,修改配置文件即可上线使用。

 

三、使用monit进行监控:

monit是一个用于监视进程、文件、目录和设备等,可以修复停止运作或运作异常的程序,适合处理那些由于多种原因导致的软件错误,用于自动重新启动服务并发送报警。

例如:

1

2

3

4

check process carbon-cache-a whit pidfile /data1/graphite/storage/carbon-cache-a.pid

    start program = "/opt/graphite/bin/python /opt/graphite/bin/carbon-cache.py --instance=a start"

    stop program = "/opt/graphite/bin/python /opt/graphite/bin/carbon-cache.py --instance=a stop"

    if cpu is greater than 90% for 2 cycles then alert

本文转载自:http://zhhmj.blog.51cto.com/1666742/1752080

共有 人打赏支持
mickelfeng

mickelfeng

粉丝 231
博文 2690
码字总数 572815
作品 0
成都
高级程序员
私信 提问
加载中

评论(1)

溪涧顽石
溪涧顽石
mark
graphite的搭建

因为公司打算监控kafka队列信息,但是又不想直接安装KafkaOffsetMonitor这个工具,希望能够将kafka的监控信息内嵌到grafana上面,在这个项目的github上面无意中看到这个个工具可以当作一个插...

liuhuang9496
2017/04/01
0
0
用graphite diamond做监控

用graphite diamond做监控 文章 开局先贴两个文章,值得一读 很赞的blog 另一篇介绍graphite的文章 恩怨 无论是什么系统,只要上线,就需要运维,这时候很想看一些监控的图表,graphite就很方...

duoduo3_69
2014/10/28
0
0
使用graphite和grafana进行应用程序监控

graphite+grafana 介绍 grafana,按照官方的说法是 。grafana 负责数据的展示,可以配置各种不同的数据源,其中包括 graphite。 graphite 包含多个模块,这里我们使用的模块包括: Whisper:...

ChanningBJ
2016/11/21
631
0
Nagios 快速实现数据可视化的几种方式

[Nagios][1] 是一款强大的开源监控软件,但他本身不能绘图,只能查看当前数据,不能看历史数据以及趋势,也正因此,想要更舒适的使用就要搭配绘图软件,现在可搭配的绘图软件有很多,例如 pn...

OneAPM蓝海讯通
2016/04/28
18
0
有谁使用过grafana和graphite的整合以及在项目中使用过

有谁使用过grafana和graphite的整合以及在项目中使用过? 环境:linux python2.6 grafana在安装完成后,从graphite取数据的时候,grafana的图形不能显示出来,而且运行grafana的时候,内存吃...

biejunbo
2014/03/06
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

对接比特币钱包的PHP开发包

BtcTool是一个基于第三方服务和离线裸交易实现的PHP比特币应用开发包,适合不希望部署本地 节点旳PHP开发者,开发包主要包含以下特性: 利用第三方服务获取指定地址的utxo集合 离线生成消费裸...

汇智网教程
24分钟前
1
0
【自用】 VHD to VHDX

VHDX: 在VHD 2TB 的基础上提供 64TB的容量。 支持逻辑扇区大小为 4KB,和每块的大小为 256MB,来优化虚拟磁盘性能。 比VHD提供更高的安全性、可靠性和性能。 convert-VHD –path d:\Hyper-v...

Tensor丨思悟
37分钟前
1
0
30 岁转行做Python开发晚吗?而且是零基础

最近有小伙伴问小编,30 岁转行做Python开发晚吗? 小编想说,其实无论男女,只要想学,有这个动力,就直接去行动。无论年龄,无论性别,只要你想一直勇往直前,那么想做的就去做吧~这里有一...

糖宝lsh
47分钟前
11
0
详解Spring中的Profile

前言 由于在项目中使用Maven打包部署的时候,经常由于配置参数过多(比如Nginx服务器的信息、ZooKeeper的信息、数据库连接、Redis服务器地址等),导致实际现网的配置参数与测试服务器参数混淆...

watermelon11
今天
4
0
phper必知必会(二)

  1.说说你对进程,线程以及协程的理解      进程:是系统进行资源分配和调度的基本单位,是基本操作系统结构的基础。进程是程序基本执行的实体。进程与进程之间是独立的,拥有完全独立...

SEOwhywhy
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部