CentOS 6上安装部署Graphite编程接口教程

Graphite 是一个Python写的web应用,采用django框架,Graphite用来进行收集服务器所有的即时状态,用户请求信息,Memcached命中率,RabbitMQ消息服务器的状态,Unix操作系统的负载状态,Graphite服务器大约每分钟需要有4800次更新操作,Graphite采用简单的文本协议和绘图功能可以方便地使用在任何操作系统上

环境介绍:

OS: CentOS6.5 x86_64 Minimal

1. 安装EPEL扩展库

# yum install -y epel-release

# sed -i s/#baseurl=/baseurl=/g /etc/yum.repos.d/epel.repo
# sed -i s/mirrorlist=/#mirrorlist=/g /etc/yum.repos.d/epel.repo

# yum clean all

2. 安装系统所需套件
yum install -y python python-devel python-pip
yum groupinstall -y 'Development Tools'

3. 安装配置Graphite相关软件(MySQL部分可以分开配置,使用独立的服务器)
# yum install -y graphite-web graphite-web-selinux mysql mysql-server MySQL-python

# mysql_secure_installation

Set root password? [Y/n] Y
New password: graphite
Re-enter new password: graphite
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
# mysql -uroot -pgraphite

mysql> CREATE DATABASE graphite;
mysql> GRANT ALL PRIVILEGES ON graphite.* TO 'graphite'@'localhost' IDENTIFIED BY 'graphite';
mysql> FLUSH PRIVILEGES;
mysql> exit;
# vi /etc/graphite-web/local_settings.py

DATABASES = {
 'default': {
 'NAME': 'graphite',
 'ENGINE': 'django.db.backends.mysql',
 'USER': 'graphite',
 'PASSWORD': 'graphite',
 }
}
# /usr/lib/python2.6/site-packages/graphite/manage.py syncdb

Would you like to create one now? (yes/no): yes
Username (leave blank to use 'root'): root
E-mail address: guosuiyu@gmail.com
Password: graphite
Password (again): graphite
4. 启动Apache服务,作为Graphite的Web服务器
# /etc/init.d/httpd start

5. 安装底层的绘图与数据采集软件
# yum install -y python-carbon python-whisper

6. 启动数据采集进程
# /etc/init.d/carbon-cache start

7. 更新配置,保留所有metrics目录下数据90天(默认仅保留1天,也就是说看不到1天以前的数据绘图)
# vi /etc/carbon/storage-schemas.conf

[carbon]
priority = 101
pattern = ^carbon\.
retentions = 60:90d

[default_1min_for_90days]
priority = 100
pattern = .*
retentions = 60:90d
发送一些测试数据
# python /usr/share/doc/graphite-web-0.9.12/example-client.py

sending message
--------------------------------------------------------------------------------
system.loadavg_1min 0.01 1446086849
system.loadavg_5min 0.03 1446086849
system.loadavg_15min 0.05 1446086849
8. 查看当前服务器进程
# netstat -lntp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address     Foreign Address     State       PID/Program name
tcp        0      0 0.0.0.0:80        0.0.0.0:*           LISTEN      2131/httpd
tcp        0      0 0.0.0.0:2003      0.0.0.0:*           LISTEN      2210/python
tcp        0      0 0.0.0.0:2004      0.0.0.0:*           LISTEN      2210/python
tcp        0      0 0.0.0.0:22        0.0.0.0:*           LISTEN      1566/sshd
tcp        0      0 127.0.0.1:25      0.0.0.0:*           LISTEN      976/master
tcp        0      0 0.0.0.0:7002      0.0.0.0:*           LISTEN      2210/python
tcp        0      0 0.0.0.0:3306      0.0.0.0:*           LISTEN      2063/mysqld
9. 生成24小时的模拟数据,体验Graphite的绘图功能
安装nc命令
# yum install -y nc

创建生成模拟数据的脚本
# vi feed_random_data.sh

#!/bin/bash
#
# Generate random pageview data and feed Graphite

tree_path=metrics.random.pageview
time_period_hours=24

now_timestamp=$(date +%s)
minutes_number=$((${time_period_hours}*60))

echo ${minutes_number}
timestamp=$((${now_timestamp}-${minutes_number}*60))
for i in $(seq 1 ${minutes_number}); do
  echo "echo ${tree_path} $(($RANDOM%5000)) ${timestamp} | nc localhost 2003"
  echo ${tree_path} $(($RANDOM%5000)) ${timestamp} | nc localhost 2003
  let timestamp+=60
done
执行脚本,将数据喂给Graphite,在使用nc命令的时候固定格式为:

echo 目录结构 数值 时间戳 | nc 服务器地址 服务端口
例如:

echo metrics.random.pageview 3680 1446095415 | nc localhost 2003
# chmod +x feed_random_data.sh
# ./feed_random_data.sh

当然,也可以参考上面的example-client.py脚本,使用Python的方式来喂数据。

然后,打开Graphite Web,即可看到如下所示的绘图:

 

使用账号root/graphite登陆以后,还可以创建一个Dashboard,将多个绘图放在一起方便查看:

Graphite还支持通过API生成图片,方便我们获取,如下所示:
API URL:http://graphite.readthedocs.org/en/latest/render_api.html

时间: 2024-10-25 19:00:24

CentOS 6上安装部署Graphite编程接口教程的相关文章

Docker CentOS7的系统上安装部署以及基础教程_docker

说明: 本文介绍如何在CentOS7的系统上安装部署Docker环境,本文参考Docker官方文档如下链接: https://docs.docker.com/engine/installation/centos/ CentOS7的系统上安装部署Docker环境 1 CentOS7安装(略) 2 升级系统 yum update 升级完成后需要重启下系统. 3 添加docker yum源 执行如下命令: cat >/etc/yum.repos.d/docker.repo name=Docker Re

如何在CentOS 7上安装Redis服务器

大家好,本文的主题是 Redis,我们将要在 CentOS 7 上安装它.编译源代码,安装二进制文件,创建.安装文件.在安装了它的组件之后,我们还会配置 redis ,就像配置操作系统参数一样,目标就是让 redis 运行的更加可靠和快速. Redis 服务器 Redis 是一个开源的多平台数据存储软件,使用 ANSI C 编写,直接在内存使用数据集,这使得它得以实现非常高的效率.Redis 支持多种编程语言,包括 Lua, C, Java, Python, Perl, PHP 和其他很多语言.

如何在 CentOS 7 上安装 Elastic Stack

Elasticsearch 是基于 Lucene 由 Java 开发的开源搜索引擎.它提供了一个分布式.多租户的全文搜索引擎(LCTT 译注:多租户是指多租户技术,是一种软件架构技术,用来探讨与实现如何在多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性.),并带有 HTTP 仪表盘的 Web 界面(Kibana).数据会被 Elasticsearch 查询.检索,并且使用 JSON 文档方案存储.Elasticsearch 是一个可扩展的搜索引擎,可用于搜索所有类型的文本

如何在 CentOS 7 上安装 Redis 服务器

如何在 CentOS 7 上安装 Redis 服务器 大家好,本文的主题是 Redis,我们将要在 CentOS 7 上安装它.编译源代码,安装二进制文件,创建.安装文件.在安装了它的组件之后,我们还会配置 redis ,就像配置操作系统参数一样,目标就是让 redis 运行的更加可靠和快速. Redis 服务器 Redis 是一个开源的多平台数据存储软件,使用 ANSI C 编写,直接在内存使用数据集,这使得它得以实现非常高的效率.Redis 支持多种编程语言,包括 Lua, C, Java,

如何在CentOS 7上安装iRedMail集成到Samba4 AD

本系列教程将引导你了解如何在 CentOS 7 安装 iRedMail 以及 Samba4 AD 域控制器,以便域帐户可以通过 Thunderbird 桌面客户端或通过 Roundcube Web 界面发送或接收邮件. 将要安装 iRedMail 的 CentOS 7 服务器需允许通过 25 和 587 端口进行 SMTP 或邮件路由服务,并且还将通过 Dovecot 作为邮件传递代理,提供 POP3 和 IMAP 服务,两者都使用安装过程中签发的自签名证书进行安全保护. 收件人邮箱将与 Rou

在CentOS 7上安装phpMyAdmin

原文 在CentOS 7上安装phpMyAdmin phpMyAdmin是一款以PHP为基础,基于Web的MySQL/MariaDB数据库管理工具.虽然已经存在着一些诸如Adminer的轻量级数据库管理工具, 但是phpMyAdmin还是更加广泛应用于网站管理员之中来进行各种MySQL/MariaDB的管理任务.它支持几乎所有MySQL数据库/表的相关操作,比如浏览.创建.复制.删除.重命名.更改,还有MySQL用户/权限管理和数据库导入/导出.以下就是如何在CentOS 6或7上安装phpMy

在CentOS 7上安装并配置Python 3.6环境

拖了很久没有更新,抱歉啦~ 今天受邀写篇如何在 CentOS 7 上配置 Python 3 环境的文章.往常我都选择直接把我早年写的一篇文章源码编译MongoDB丢过去,让他们看其中的源码编译 Python 那一节,不过那节写的其实不太详细,而且最近被很多人催,所以还是单独写一篇好了. 当前最新的 CentOS 7.3 默认安装的是 Python 2 ,并且默认的官方 yum 源中不提供 Python 3 的安装包.有些用户想要升级使用 Python 3 但实际可能有各种各样的问题,导致出错,反

如何在Ubuntu 15.04/CentOS 7上安装Android Studio

随着最近几年智能手机的进步,安卓成为了最大的手机平台之一,在开发安卓应用中所用到的所有工具也都可以免费得到.Android Studio 是基于 IntelliJ IDEA 用于开发安卓应用的集成开发环境(IDE).它是 Google 2014 年发布的免费开源软件,继 Eclipse 之后成为主要的 IDE. 在这篇文章,我们一起来学习如何在 Ubuntu 15.04 和 CentOS 7 上安装 Android Studio. 在 Ubuntu 15.04 上安装 我们可以用两种方式安装 A

技巧:在CentOS 7上安装Vmware 10

技巧:在CentOS 7上安装Vmware 10 在CentOS 7上安装Vmware 10.0.3,我来介绍下我的经验.通常,这个版本是不能在CentOS 7工作的,因为它只能运行在比较低的内核版本3.10上. 首先,以正常方式下载并安装(没有问题).唯一的问题是在后来运行vmware程序的时候. 如何修复? 1 – 进入 /usr/lib/vmware/modules/source. cd /usr/lib/vmware/modules/source 2 – 解压 vmnet.tar. ta