はじめに
参考
Graphite をとりあえずはじめる
Graphite って?
こちらを参考にさせて頂いて個人的に整理。
- django*1 アプリのフロントエンド(graphite-web)と carbon というバックエンドで構成される
- graphite-web は Graphite のフロントエンドで django によるウェブアプリ
- carbon は Graphite のバックエンド
- whisper は DB ライブラリ
Graphite の導入(パッケージのインストール)
sudo yum remove httpd24* sudo yum --enablerepo=epel install graphite-web graphite-web-selinux mysql mysql-server MySQL-python sudo yum --enablerepo=epel install python-carbon
graphite-web の設定
sudo sh -c 'cat << EOT >> /etc/graphite-web/local_settings.py DATABASES = { 'default': { 'NAME': 'graphite', 'ENGINE': 'django.db.backends.mysql', 'USER': 'root', 'PASSWORD': '', 'HOST': 'localhost', 'PORT': '3306', } } EOT '
Graphite の初期設定
Graphite のダッシュボードへの認証設定等を行う。
/usr/lib/python2.6/site-packages/graphite/manage.py syncdb
sensu と Graphite の連携
vmstat のメトリクスを sensu を介して Graphite に送る設定(その 1)
プラグインをダウンロードする。
cd /etc/sensu/plugins/ sudo wget https://raw.github.com/sensu/sensu-community-plugins/master/plugins/system/vmstat-metrics.rb sudo chmod +x vmstat-metrics.rb
プラグインの設定をする。
/etc/sensu/conf.d/metrics_vmstat.json
以下のように設定する。
{ "checks": { "vmstat_metrics": { "type": "metric", "handlers": ["graphite"], "command": "/etc/sensu/plugins/vmstat-metrics.rb --scheme stats.:::name:::", "interval": 60, "subscribers": [ "test" ] } } }
vmstat のメトリクスを sensu を介して Graphite に送る設定(その 2)
ハンドラスクリプトをダウンロードする。
cd /etc/sensu/handlers sudo wget https://raw.github.com/sensu/sensu-community-plugins/master/handlers/metrics/graphite-tcp.rb sudo chmod -x graphite-tcp.rb
sensu に Graphite のホスト、ポート番号をする。
sudo sh -c 'cat << EOT >> /etc/sensu/conf.d/graphite_tcp.json { "graphite": { "server":"127.0.0.1", "port":"2003" } } EOT '
ハンドラの設定をする。
sudo sh -c 'cat << EOT >> /etc/sensu/conf.d/handler_graphite.json { "handlers": { "graphite": { "type": "pipe", "command": "/etc/sensu/handlers/graphite-tcp.rb" } } } EOT '
ここまでで上のスクリーンショットまではいけるはず。
Graphite と RabbitMQ の連携
事前に...
RabbitMQ の exchanges に metrics を追加する必要がある(かもしれない)
python-txamqp のインストール
sudo yum --enablerepo=epel install -y python-txamqp.noarch
carbon.conf の修正
--- carbon.conf.original 2014-03-10 14:51:53.970894388 +0000 +++ carbon.conf 2014-03-10 14:53:58.191979797 +0000 @@ -175,19 +175,19 @@ # CARBON_METRIC_INTERVAL = 60 # Enable AMQP if you want to receve metrics using an amqp broker -# ENABLE_AMQP = False +ENABLE_AMQP = True # Verbose means a line will be logged for every metric received # useful for testing # AMQP_VERBOSE = False -# AMQP_HOST = localhost -# AMQP_PORT = 5672 -# AMQP_VHOST = / -# AMQP_USER = guest -# AMQP_PASSWORD = guest -# AMQP_EXCHANGE = graphite -# AMQP_METRIC_NAME_IN_BODY = False +AMQP_HOST = localhost +AMQP_PORT = 5672 +AMQP_VHOST = /sensu +AMQP_USER = sensu +AMQP_PASSWORD = mypass +AMQP_EXCHANGE = metrics +AMQP_METRIC_NAME_IN_BODY = True # The manhole interface allows you to SSH into the carbon daemon # and get a python interpreter. BE CAREFUL WITH THIS! If you do
/etc/sensu/conf.d/handler_graphite.json の修正
{ "handlers": { "graphite": { "type": "amqp", "exchange": { "type": "topic", "name": "metrics", "passive": "true" }, "send_only_check_output": true } } }
まだまだ
- 続くよー
- ひと通り触って行き詰まったところでこちらの資料を拝見させて頂き、資料の解りやすさとイメージしきれていなかった部分が明確になって濡れた