2015年10月10日土曜日

graphiteの環境の構築

CentOS 6.5
■Graphiteの構成
 Graphite-Web
 Carbon
 Whisper

■graphiteのインストール準備

 graphiteをpip(pythonのパッケージ管理ツール)でインストールする。(本家サイトを参照)

#graphiteの構成要素のcarbonをインストールするために、pythonの開発ヘッダーを入れる。

$ sudo yum install python-devel

#pipのセットアップを行うため、setuptoolsをインストールする

$ wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python

#続いてpipのインストール

$ curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | sudo python
準備完了!

■graphiteのインストール

 では、さっそくgraphiteのインストールを始める。
$ sudo pip install https://github.com/graphite-project/ceres/tarball/master
$ sudo pip install whisper
$ sudo pip install carbon
$ sudo pip install graphite-web
特にエラーなし。
デフォルトでは、/opt/graphite/にインストールされる。とマニュアルにあるが、
 /usr/lib/python2.6/site-packages/opt/graphite/
に出来上がっている。/opt/graphiteにまとめておきたいので、インストールし直し。
$ sudo pip uninstall carbon
$ sudo pip uninstall graphite-web
$ sudo pip install carbon --install-option="--prefix=/opt/graphite" --install-option="--install-lib=/op¥t/graphite/lib"
$ sudo pip install graphite-web --install-option="--prefix=/opt/graphite" --install-option="--install-lib=/opt/graphite/lib"
$ ls /opt/graphite
bin conf examples lib storage webapp

■graphiteのセットアップ(本家サイトを参照)

graphite-webでは、local_settings.pyを読み込んで設定されるみたいなので、設定を変更する。
サイトのページには
 /opt/graphite/webapp/graphite/local_settings.py
があると記載があったが、見あたらなかった。exampleファイルがあったので、コピーして使う。

$ mkdir /opt/graphite/webapp/graphite
$ cd /opt/graphite/webapp/graphite
$ cp /opt/graphite/lib/graphite/local_settings.py.example ./local_settings.py
$ sudo vi local_settings.py
#以下、変更箇所
TIME_ZONE = 'Asia/Tokyo'
LOG_RENDERING_PERFORMANCE = True
LOG_CACHE_PERFORMANCE = True
LOG_METRIC_ACCESS = True

■carbonのセットアップ(本家サイトを参照)

・carbon.conf
 carbonデーモン用の設定ファイル。ファイル内のセクションは
 [cache]・・・carbon-cacheに関する設定ファイル
 [relay]・・・carbon-relayに関する設定
 [aggregator]・・・carbon-aggregatorに関する設定

今回は設定変更なし進める。

$ cp carbon.conf.example carbon.conf

・storage-schemas.conf

 メトリクスの保持期間の設定をするためのファイル。ここの設定でwhisperに伝達する。
この設定のポイントは

  ・ファイルの上から順に適用される
  ・正規表現が使える
  ・メトリクス名にマッチした最初のパターンが使われる
  ・最初にメトリクスが送られた来たときに、保持期限が設定される
  ・この設定が変更されても、生成済みwspファイルには反映されない。whisper-resize.pyを使って変更する必要がある。
とのこと。

記載例)

[apache_busyWorkers]
pattern = ^servers\.www.*\.workers\.busyWorkers$
retentions = 15s:7d,1m:21d,15m:5y

1行目はセクション名。2行目は
3行目は、7日間は15秒間平均(デフォルトは平均)、21日間は1分平均、5年間は15分平均
という意味になる。
今回はデフォルトで。

$ cp storage-schemas.conf.example storage-schemas.conf
$ less storage-schemas.conf

 Schema definitions for Whisper files. Entries are scanned in order,
# and first match wins. This file is scanned for changes every 60 seconds.
#
#  [name]
#  pattern = regex
#  retentions = timePerPoint:timeToStore, timePerPoint:timeToStore, ...

# Carbon's internal metrics. This entry should match what is specified in
# CARBON_METRIC_PREFIX and CARBON_METRIC_INTERVAL settings
[carbon]
pattern = ^carbon\.
retentions = 60:90d

[default_1min_for_1day]
pattern = .*
retentions = 60s:1d
 
すべてのデータを60秒間平均で1日保持。



■carbonの実行

$ /opt/graphite/bin/carbon-cache.py start


ImportError: Twisted requires zope.interface 3.6.0 or later: no module named zope.interface.

エラーが出た。調べてみると、とりあえずzope.interface自体をインストールする方法があるらしい。

$ sudo pip install zope.interface==3.6.0
$ sudo /opt/graphite/bin/carbon-cache.py start



Starting carbon-cache (instance a)

#ログも確認してみる
$ cd /opt/graphite/storage/log/carbon-cache/
$ ls
carbon-cache-a
$ cd  carbon-cache-a
$ less console.log

10/10/2015 23:39:36 :: Log opened.
10/10/2015 23:39:36 :: twistd 15.4.0 (/usr/bin/python 2.6.6) starting up.
10/10/2015 23:39:36 :: reactor class: twisted.internet.epollreactor.EPollReactor.
10/10/2015 23:39:36 :: ServerFactory starting on 2003
10/10/2015 23:39:36 :: Starting factory <twisted.internet.protocol.ServerFactory instance at 0x308e290>
10/10/2015 23:39:36 :: ServerFactory starting on 2004
10/10/2015 23:39:36 :: Starting factory <twisted.internet.protocol.ServerFactory instance at 0x3097b90>
10/10/2015 23:39:36 :: ServerFactory starting on 7002
10/10/2015 23:39:36 :: Starting factory <twisted.internet.protocol.ServerFactory instance at 0x3097bd8>
10/10/2015 23:40:36 :: /opt/graphite/conf/storage-aggregation.conf not found, ignoring.
10/10/2015 23:41:36 :: /opt/graphite/conf/storage-aggregation.conf not found, ignoring.
10/10/2015 23:42:36 :: /opt/graphite/conf/storage-aggregation.conf not found, ignoring.
10/10/2015 23:43:36 :: /opt/graphite/conf/storage-aggregation.conf not found, ignoring.

ちゃん起動しているようです。



0 件のコメント:

コメントを投稿