CentOSにRPMでGraphite+Diamondをインストールする


システムデータ取得間隔に自由度があって、グラフを自由に描けそうものを探していてGraphiteというのがとりあえず良さそうなので、とりあえず簡単に試してみたときの手順。

Graphite本体

epelにrpmがあったので、epelを使ってインストール

# rpm -ivh https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install graphite-web graphite-web-selinux mysql mysql-server MySQL-python

で、MySQLの初期設定をしておく。

# service mysqld start
# /usr/bin/mysql_secure_installation

GraphiteがMySQLを使うように設定する。そのために、/etc/graphite-web/local_settings.py に下記を追加する。(もちろん、パスワードとかは適宜設定すること)

DATABASES = {
  'default': {
    'NAME': 'graphite',
    'ENGINE': 'django.db.backends.mysql',
    'USER': 'graphite',
    'PASSWORD': 'complexpassw0rd',
    'HOST': 'localhost',
    'PORT': '3306',
  }
}

データベース権限設定を行う。

$ mysql -e "CREATE USER 'graphite'@'localhost' IDENTIFIED BY 'complexpassw0rd';" -u root -p
$ mysql -e "GRANT ALL PRIVILEGES ON graphite.* TO 'graphite'@'localhost';" -u root -p
$ mysql -e "CREATE DATABASE graphite;" -u root -p
$ mysql -e 'FLUSH PRIVILEGES;' -u root -p

Graphiteデータベースの初期化を以下のコマンドにて行う。その際、GraphiteのLoginなどに使うユーザ名、パスワードなどを聞かれるので適宜設定する。

# /usr/lib/python2.6/site-packages/graphite/manage.py syncdb

以上で、Apache を起動しておく。

# service httpd start

carbon

Carbon は集めて来たメトリクスの保存先となる。これもyumでインストール。

# yum install python-carbon

/etc/carbon/cabon.conf および、/etc/carbon/storage-schemas.conf を適宜設定する。この当たりはGraphite本家のマニュアルを参照。

その後サービスを起動しておく。

# /etc/init.d/carbon-cache start

これで、http://ホスト名/graphite にアクセスすればよい。

Diamond

とりあえずデータを取得しなければ始まらないので、お手軽にシステムデータを集めてくれるDiamondというのがあるおでこれを使う。

以下のような流れでインストールできる。

# git clone https://github.com/BrightcoveOS/Diamond.git
# cd Diamond
# make buildrpm
# cd dist/
# yum localinstall diamond-3.4.53-0.noarch.rpm

/etc/diamond/ にある diamond.conf.example を diamond.conf とし、編集する。
interval を 60 とかにし、host をGraphite(正確にはCarbon)が動いているホスト名に変更し、サービスを起動する。

/etc/init.d/diamond start

これでしばらくすると、GraphiteのWebからデータを見ることができる。

Graphiteはログインすると、カスタマイズしたグラフを保存したりできるようだけど、イマイチ使い方がわからない。
また、テンプレートのようなものがないので、綺麗なダッシュボードをつくるのは面倒そうな印象。

以上です。