简介
Graphite是一种企业级监控工具。
Graphite由三个组件组成:
carbon - 一种侦听时间序列数据的高性能服务
whisper - 一个用于存储时间序列数据的简单数据库
graphite-web - Graphite的用户界面和用于渲染图形和仪表板的API
度量指标通过Carbon服务进入堆栈,该服务将数据写入Whisper数据库以进行长期存储。 用户与Graphite Web UI或API交互,后者又查询Carbon和Whisper以获取构建所请求图形所需的数据。
安装
- 安装whisper
pip install --no-binary=:all: https://github.com/graphite-project/whisper/tarball/master
- 安装carbon
pip install --no-binary=:all: https://github.com/graphite-project/carbon/tarball/master
如果出现如下错误:
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
这是由于缺少一些依赖造成的,解决方法如下:
sudo apt-get install python-dev \
build-essential libssl-dev libffi-dev \
libxml2-dev libxslt1-dev zlib1g-dev \
python-pip
- 安装graphite-web
pip install --no-binary=:all: https://github.com/graphite-project/graphite-web/tarball/master
- 配置
修改配置文件:把/opt/graphite/conf 下的.example结尾的文件拷贝命名(去掉.example)。
修改配置文件:/opt/graphite/webapp/graphite/local_settings.py.example文件拷贝(去掉.example)。
之后修改local_settings.py文件:
DEBUG = True #不设置 页面不能正常显示
TIME_ZONE = 'Asia/Shanghai' #设置时区
启动
#启动 carbon服务
sudo /opt/graphite/bin/carbon-cache.py start
#启动web服务
sudo /usr/bin/python /opt/graphite/bin/run-graphite-devel-server.py --port=8085 --libs=/opt/graphite/webapp /opt/graphite
启动carbon可能报如下错误:
TypeError: NewBase must define encode
这是由于python的six模块兼容性导致的,需要卸载老版本,安装新版本。解决方法如下:
sudo pip install six --upgrade --ignore-installed six
访问web页面
可以通过http://ip:8085 访问到graphite页面
如果出现如下错误:
OperationalError: no such table: auth_user
这是由于没有初始化数据库导致的,解决方法如下:
cd /opt/graphite/webapp/
sudo PYTHONPATH=/opt/graphite/webapp django-admin.py migrate --settings=graphite.settings --run-syncdb
测试
python /opt/graphite/examples/example-client.py
ps: 在安装期间出现很多很多的问题,大部分是因为依赖版本问题导致的不兼容问题,Google可以解决99.9%的问题。
END