用Graphite监控服务器运行状况

June 13, 2018
graphite 监控

字数: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页面:

Graphite效果图


loading