字数:3655
参考与引用
主要参考,这里
更多可参考链接,虽然部分内容与Graphite无直接关联,但是Graphite在整体解决方案中有至关重要的作用:
- statsD官方导读
- git上statsd开源工程
- s上关于监控API的探讨
- influxdb的java客户端开源工程
- 运维监控方案探讨
- statsd应用示例
- influxdb介绍
- 用fluxdb作监控数据方案
- influxdb安装https官方帮助
- influxdb的java客户端调用
- Graphite监控解决方案
- statd与Graphite
安装与使用Graphite
(1)在线安装
sudo apt-get update
sudo apt-get install graphite-web graphite-carbon
安装的版本是安装的版本是0.9.15-1
(2)为Django配置数据库
Django是基于Python的一个MTV框架(模型M,模板T和视图V),正是Graphite使用的web框架,Django的一些数据我们要找数据库去保存,默认是保存在sqlite3上,这次我们不去更改,但设置一下用户名和密码以及给ubuntu用户授权写,这个很重要,否则在访问Graphite时会提示sqlite的数据文件无法写入,授权的办法比如:
sudo chown -hR ubuntu /var/lib/graphite/graphite.db
(3)配置Graphite的web相关属性
打开Graphite的web属性配置文件:sudo vim /etc/graphite/local_settings.py
,几个基本的修改:
- 打开
SECRET_KEY = 'a_salty_string'
,内容设定个较长的固定内容,用于生成hash时作为salt - 设定一下时区
TIME_ZONE = 'Asia/Shanghai'
- 打开新用户授权登录
USE_REMOTE_USER_AUTHENTICATION = True
- 配置一个sqlite3数据库
DATABASES = {
'default': {
'NAME': '/var/lib/graphite/graphite.db',
'ENGINE': 'django.db.backends.sqlite3',
'USER': 'root',
'PASSWORD': 'password',
'HOST': 'ser.tao.de',
'PORT': '8083'
}
}
一般情况,sqlite3作为文件数据库,不开放远程访问。
- 同步数据库:
sudo graphite-manage syncdb
建一些表结构和默认数据,会提示安装Django’s auth system
You have installed Django's auth system, and don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use 'root'):
Email address: daniel.tao@tao.de
Password:
Superuser created successfully.
(4)设置carbon carbon是Graphite的后端存储方案,主要的几个配置文件是:
ubuntu@VM-0-13-ubuntu:~/program/influxdb-1.5.3-1$ sudo vim /etc/default/graphite-carbon
CARBON_CACHE_ENABLED=true
ubuntu@VM-0-13-ubuntu:~/program/influxdb-1.5.3-1$ sudo vim /etc/carbon/carbon.conf
ENABLE_LOGROTATION = True
ubuntu@VM-0-13-ubuntu:~/program/influxdb-1.5.3-1$ sudo vim /etc/carbon/storage-schemas.conf
增加一段:
[test]
pattern = ^test\.
retentions = 10s:10m,1m:1h,10m:1d
设置carbon的集成数据方法:sudo cp /usr/share/doc/graphite-carbon/examples/storage-aggregation.conf.example /etc/carbon/storage-aggregation.conf
,目前没有改动
启动carbon:sudo service carbon-cache start
(5)安装apache2以便使用web的方式访问Graphite
安装apach2:sudo apt-get install apache2 libapache2-mod-wsgi
停用默认站点:sudo a2dissite 000-default
加上Graphite的站点:
sudo cp /usr/share/graphite-web/apache2-graphite.conf /etc/apache2/sites-available
sudo a2ensite apache2-graphite
sudo service apache2 reload
由于80商品已经被nginx用了,暂未尝试作对应的配置,因此这里的端口改为81,通过http:/serv.tao.de:81访问Graphite页面: