竹富島からこんばんわ。かっぱです。
はじめに
Graphite
とGrafana
を 1 時間位使ってみた- どちらともセットアップは簡単(但し、
Dockerfile
作るのは苦労した)
参考
環境
Graphite
はこちらのDockerfile
を使ったGrafana
は上記のDockerfile
で構築したコンテナに手動で構築した
Graphite だけなら
以下のような手順で利用可能。
git clone https://github.com/inokappa/dockerfiles.git cd dockerfiles/graphite docker build -t your_name/repo_name docker run -t -d your_name/repo_name
Graphite + Grafana は...
Dockerfile
で表現しようとすると色々と面倒なので上記の Graphite
コンテナ上に手動で構築した。以下、サクッと手順。(上記の Dockerfile
で Graphite
を利用出来る状態からの手順...)
まずは上記の docker
コンテナを以下のようにして起動。
docker run -t -i -p 1919:1919 your_name/repo_name /bin/bash
次に tarball
をダウンロードして展開。
wget http://grafanarel.s3.amazonaws.com/grafana-1.5.4.tar.gz tar zxvf grafana-1.5.4.tar.gz
展開したファイルを DocumentRoot
以下に置く。
cp -rfp grafana-1.5.4 /var/www/html/grafana
config.js
を下記のように設定、修正する。
--- grafana-1.5.4/config.sample.js 2014-05-13 13:09:27.000000000 -0400 +++ grafana/config.js 2014-05-28 09:07:15.965941347 -0400 @@ -13,7 +13,7 @@ * elasticsearch url: * For Basic authentication use: http://username:password@domain.com:9200 */ - elasticsearch: "http://"+window.location.hostname+":9200", + //elasticsearch: "http://"+window.location.hostname+":9200", /** * graphite-web url: @@ -22,7 +22,7 @@ * in nginx or apache for cross origin domain sharing to work (CORS). * Check install documentation on github */ - graphiteUrl: "http://"+window.location.hostname+":8080", + graphiteUrl: "http://172.17.0.2", /** * Multiple graphite servers? Comment out graphiteUrl and replace with something like this:
上記のように graphiteUrl:
のみを設定する。今回 Graphite
は 172.17.0.2
という IP
でアクセスしているので graphiteUrl:
にも "http://172.17.0.2"
を設定する。
また、今回は Graphite
と Grafana
を同じ Apache
で別のポートで動作させたいので以下のようにそれぞれ設定、修正する。
ポイントとしては graphite-web.conf
の冒頭に記載されている CORS
対策の以下の記述。
Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods "GET, OPTIONS" Header set Access-Control-Allow-Headers "origin, authorization, accept"
CORS
の詳細についてはこちらあたりが詳細に書かれている。
monit で全てのサービスを起動する
これで準備完了なので以下のように monit
を起動することで関連するサービスが全て起動する。
/etc/init.d/monit start
以下のように起動しているプロセス等が確認出来る。
Graphite と Grafana
関連するプロセスが起動して暫くすると...
Graphite
左ペインから cpuUsage
を選択した画面。尚、Graphite
> carbon
> aggregater
以下のツリーは別の Docker
コンテナの情報。carbon
の aggregater
を設定することで他のホストの情報もグラフに表示することが出来る(ようだ)。
Grafana
Graphite
に蓄積されているメトリクスから cpuUsage
と memUsage
を表示してみた。設定も簡単で以下のように Graphite
の設定が適切であれば自動的に Graphite
に蓄積されているメトリクスがプルダウンに表示されて選択するだけで簡単にグラフに落としこむことが出来る。
簡単なのは素晴らしい。
ということで
Graphite
とGrafana
を1
時間位使ってみたSensu
ではGraphite
が標準っぽい状況なのでも少し掘り下げてみたいGrafana
はKibana
っぽいカッコよさを残しつつGraphite
と連携して簡単にメトリクスを可視化出来るツールでお気に入り!