ようへいの日々精進XP

よかろうもん

CentOS 6.4 に growthforecast を構築するメモ

はじめに

  • この年の瀬に growthforecast の環境を構築する必要が発生したのでメモ
  • perlbrew を使う
  • try and error で構築したのでちょっと心配(すいません)

参考


memo

準備

sudo yum -y install pkgconfig glib2-devel gettext libxml2-devel pango-devel cairo-devel
sudo yum -y groupinstall "Development Tools"
sudo yum -y install perl-ExtUtils-MakeMaker

growthforecast 用のユーザーを作成

特に大きな理由は無いがアプリケーションを動作させるユーザーを作成し、そのユーザー内でアプリケーションを動作させる為に growthforecast を動作させるユーザーを作成する。

useradd gf

以降の操作は全て gf ユーザーで行う。(ユーザー名は環境に応じて読み替える)

perlbrew のインストール

curl -kL http://install.perlbrew.pl | bash
echo '[[ -s "$HOME/perl5/perlbrew/etc/bashrc" ]] && source "$HOME/perl5/perlbrew/etc/bashrc"' >> .bash_profile
source $HOME/perl5/perlbrew/etc/bashrc

perlbrew で Perl をインストール

perlbrewruby で言うところの rvmrbenv に相当するものだと思っている。

perlbrew available
perlbrew install perl-5.16.3
perlbrew switch perl-5.16.3

perlbrew available でインストール可能な perl のバージョンを確認して perlbrew install ${perl_version}${perl_version} をインストールって流れ。perlbrew switch で複数インストールされた perl のバージョンを切り替える。

cpanm のインストール

perlbrew を使って cpanm をインストール。

perlbrew install-cpanm

growthforecast のインストール

cpanm がインストール出来たら GrowthForecast をインストール。

cpanm -n GrowthForecast

順調、順調。

ログディレクトリとデータディレクトリを作成する

GrowthForecast が利用するログのディレクトリ、生成される rrd データが保存されるディレクトリを作成する。

mkdir /home/gf/data
mkdir /home/gf/log

growthforecast を起動する

growthforecast.pl --port=5125 --data-dir=/home/growthforecast/data > /home/growthforecast/log/growthforecast.log 2> /home/growthforecast/log/growthforecast.err &

この状態で起動した場合、以下のようなエラーが出力されて GrowthForecast が起動しないことがあった。

Can't locate Plack/Loader.pm in @INC (@INC contains: /home/gf/perl5/bin/lib /home/gf/perl5/bin/extlib/lib/perl5 ~/perl5/lib/perl5 /home/gf/perl5/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3/x86_64-linux /home/gf/perl5/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3 /home/gf/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/x86_64-linux /home/gf/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3 .) at /home/gf/perl5/bin/growthforecast.pl line 13.
BEGIN failed--compilation aborted at /home/gf/perl5/bin/growthforecast.pl line 13.

以下のように .bashrcperl のライブラリへのパスを記述することで正常に起動することを確認した。

export PERL_CPANM_OPT="--local-lib=~/perl5"
export PERL5LIB="/home/gf/perl5/lib/perl5"
export PATH="~/perl5/bin:$PATH"

上記を設定後に source .bashrc を実行して上記の設定を反映させる。

テスト

以下のように構築した growthforecast にデータをポストする。

curl -F number=$RANDOM http://xxx.xxx.xxx.xxx:5125/api/hoge/huga/value

$RANDOM を使うことで乱数を生成することが出来るので、それを利用してグラフらしくテストしてみると以下のようにグラフが生成される。

f:id:inokara:20131230183040p:plain


最後に

  • 今更ながら growthforecast の構築についてまとめてみたけど本当にお手軽
  • データを api のパラメータとして投げることが出来るので小難しい監視環境を構築する必要がないのが嬉しい
  • 構築に際しては自分の Perl 関連の知識がヘボ過ぎて try and error を繰り返してしまった
  • ただ、perlbrewcpanm はとても便利だと思う