はじめに
fluentd(td-agent)でapacheアクセスログを解析してどーこーの一環で、解析結果をグラフ表示したいのでgrowthforecastを入れてみました。
fluentd × growthforecastの導入に関しては別記事で書く予定なのでここはいったん
growthforecast入れて表示できるところだけをメモメモ
参考記事
1.GrowthForecast を CentOS 6.3 にインストールして Supervisor で管理してみた
2.サイトのレスポンスタイムをリアルタイムでグラフ表示する方法 nginx → LTSV → Fluentd(td-agent) → GrowthForecast
3.GrouthForecast公式
社内のサーバに個人的に入れてみたかった経緯もあり、参考記事2のほうはインストールする環境もrootぽかったので
growthforecast用のユーザを作ってそこにインストールする形の記事1を主に参考にさせて頂きました!
ありがとうございますm(_ _)m
ではさっそく
あじぇんだ
1.RRDTool依存ライブラリのインストールインストール
2.growthforecastユーザ作成
3.perlbrewインストール
4.Perlbrew から Perlインストール
5.cpanmインストール
6.growthforecastインストール
7.ポートあける(iptables)
8.growthforecastの起動&動作確認&停止
9.補足
ほとんど参考にさせて頂いた記事のまんまできました。
つまづかなければ所要時間30分くらいかと思います
参考記事と同様ですが、これ以降コマンドはすべて #…root $…一般ユーザ(今回はgrowthforecastユーザ) で行います
1.RRDTool依存ライブラリのインストールインストール
GrowthForecastに必要なRRDTool依存するライブラリをインストールします
# yum groupinstall "Development Tools" # yum install pkgconfig glib2-devel gettext libxml2-devel pango-devel cairo-devel
2.growthforecastユーザ作成
Perlbrewを入れてgrowthforecastを動かすためのユーザを作成します
# useradd growthforecast # passwd growthforecast ※適当なパスワードを入力。忘れないようにね # ls -l /home total 16 drwxr-xr-x. 3 root wheel 4096 Jan 13 16:24 ./ dr-xr-xr-x. 26 root wheel 4096 Dec 16 19:57 ../ drwx------ 11 growthforecast growthforecast 4096 Jan 14 11:22 growthforecast/
3.perlbrewインストール
perlbrewは、erlのインストール管理ツールです。
複数のバージョンのperlをインストールし簡単に切り替えられます。
また、ユーザを切り替えてから行います。
※インストール # su - growthforecast $ curl -kL http://install.perlbrew.pl | bash ※確認 $ pwd /home/growthforecast $ ls -al ※結果一部省略 drwx------ 6 growthforecast growthforecast 4096 Jan 13 16:41 2014 . drwxr-xr-x. 3 root wheel 4096 Jan 13 16:24 2014 .. drwxrw---- 3 growthforecast growthforecast 4096 Jan 13 16:41 2014 .pki drwxrwxr-x 4 growthforecast growthforecast 4096 Jan 13 16:38 2014 .plenv drwxrwxr-x 4 growthforecast growthforecast 4096 Jan 13 16:38 2014 .pyenv drwxrwxr-x 3 growthforecast growthforecast 4096 Jan 13 16:41 2014 perl5 ※次回からperlbrewが有効になるように.bashrcに追記 $ echo '[[ -s "$HOME/perl5/perlbrew/etc/bashrc" ]] && source "$HOME/perl5/perlbrew/etc/bashrc"' >> .bash_profile ※最初は手動で設定ファイルを読み込み $ source .bash_profile
4.Perlbrew から Perlインストール
使用可能なperlのバージョンを確認の上、perlをインストールします
Perl公式サイトからメジャーリリースバージョンを選びます
今回はperl-5.18.2にしました
※使用可能なperlのバージョン確認 $ perlbrew available perl-5.18.2 perl-5.16.3 perl-5.14.4 perl-5.12.5 perl-5.10.1 perl-5.8.9 perl-5.6.2 perl5.005_04 perl5.004_05 perl5.003_07 ※インストール $ perlbrew install perl-5.18.2 ←失敗したので9.補足に追記 ※インストールしたperlをperlbrew listで確認 $ perlbrew list perl-5.18.2 ※切替前のperlバージョンを確認 $ perl -v This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi ※perlbrewで、Perlを切り替え $ perlbrew switch perl-5.18.2 ※バージョンが 5.18.2になっているか確認 $ perl -v This is perl 5, version 18, subversion 2 (v5.18.2) built for x86_64-linux
5.cpanmインストール
cpanm(cpanminus)は、PerlのCPANモジュールをインストールするためのツールです。
perlbrew × cpanmでローカルユーザ領域にCPANモジュールをインストールする事ができます
$ perlbrew install-cpanm cpanm is installed to /home/growthforecast/perl5/perlbrew/bin/cpanm
6.growthforecastインストール
インストール
-nオプションは--notest(テスト無しでインストール)の略です
$ cpanm -n GrowthForecast
データ&ログディレクトリ作成
$ mkdir /home/growthforecast/data $ mkdir /home/growthforecast/log
7.ポートあける(iptables)
growthforecastデフォルトポートの5125をあけておきます
rootユーザでの実行です
# sudo vi /etc/sysconfig/iptables --vi編集-- -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5125 -j ACCEPT ---------- # sudo /etc/init.d/iptables restart
8.growthforecastの起動&動作確認&停止
バックグランドで起動
$ growthforecast.pl --port=5125 --data-dir=/home/growthforecast/data > /home/growthforecast/log/growthforecast.log 2> /home/growthforecast/log/growthforecast.err & [1] 44312
起動確認
プロセス見てみる
root 44312 3.5 0.2 140316 24464 pts/1 SN 15:36 0:00 /usr/bin/perl /usr/local/bin/growthforecast.pl --port=5125 --data-dir=/home/growthforecast/data root 44313 0.0 0.1 140488 21872 pts/1 SN 15:36 0:00 /usr/bin/perl /usr/local/bin/growthforecast.pl --port=5125 --data-dir=/home/growthforecast/data root 44314 0.0 0.1 140316 21916 pts/1 SN 15:36 0:00 /usr/local/bin/growthforecast.pl (GrowthForecast::Worker 1min) root 44315 0.0 0.1 140316 21916 pts/1 SN 15:36 0:00 /usr/local/bin/growthforecast.pl (GrowthForecast::Worker) root 44316 0.6 0.2 149416 25896 pts/1 SN 15:36 0:00 /usr/local/bin/growthforecast.pl (GrowthForecast::Web) root 44317 0.0 0.2 149416 24512 pts/1 SN 15:36 0:00 /usr/local/bin/growthforecast.pl (GrowthForecast::Web) root 44318 0.0 0.2 149416 24512 pts/1 SN 15:36 0:00 /usr/local/bin/growthforecast.pl (GrowthForecast::Web) root 44319 0.0 0.2 149416 24512 pts/1 SN 15:36 0:00 /usr/local/bin/growthforecast.pl (GrowthForecast::Web) root 44320 0.0 0.2 149416 24512 pts/1 SN 15:36 0:00 /usr/local/bin/growthforecast.pl (GrowthForecast::Web) root 44322 0.0 0.0 6388 692 pts/1 S+ 15:36 0:00 grep --color=auto growthforecast
画面確認
画面の確認ですが、
今回は社内のLAN内のサーバに構築したのでプライベートIPアドレスを指定して確認します
$ ifconfig | grep 'inet addr' -B 1 em1 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:10.2.22.101 Bcast:10.2.22.255 Mask:255.255.255.0 -- em2 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:10.2.52.2 Bcast:10.2.52.255 Mask:255.255.255.0 -- lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0
プライベートIPが10.2.22.101なので「http://10.2.22.101:5125/」にアクセスして確認しました
データを入れて画面確認
下記のようにapiを叩く感じでデータを入れられます
$ curl -F number=10 http://(IP アドレス):5125/api/sample/member/register
ということで早速api叩いて確認
$ curl -F number=10 http://127.0.0.1:5125/api/sample/member/register {"error":0,"data":{"number":10,"llimit":-1000000000,"mode":"gauge","stype":"AREA","adjustval":"1","meta":"","service_name":"sample","gmode":"gauge","color":"#cc9933","created_at":"2014/01/14 16:12:04","section_name":"member","ulimit":1000000000000000,"id":1,"graph_name":"register","description":"","sulimit":100000,"unit":"","sort":0,"updated_at":"2014/01/14 16:12:04","adjust":"*","type":"AREA","sllimit":-100000,"md5":"c4ca4238a0b923820dcc509a6f75849b"}}# ※さらに値を変えて2回くらい叩いておく $ curl -F number=8 http://127.0.0.1:5125/api/sample/member/register $ curl -F number=1 http://127.0.0.1:5125/api/sample/member/register
9.補足
4.Perlbrew から Perlインストールの失敗の補足
一発目はコケたので追記の補足です
最初のインストール時うまくいきませんでした。コンソールにはこんな表示が出ます
$ perlbrew install perl-5.18.2 Fetching perl 5.18.2 as /home/growthforecast/perl5/perlbrew/dists/perl-5.18.2.tar.bz2 Download http://www.cpan.org/src/5.0/perl-5.18.2.tar.bz2 to /home/growthforecast/perl5/perlbrew/dists/perl-5.18.2.tar.bz2 Installing /home/growthforecast/perl5/perlbrew/build/perl-5.18.2 into ~/perl5/perlbrew/perls/perl-5.18.2 This could take a while. You can run the following command on another shell to track the status: tail -f ~/perl5/perlbrew/build.perl-5.18.2.log Installation process failed. To spot any issues, check /home/growthforecast/perl5/perlbrew/build.perl-5.18.2.log If some perl tests failed and you still want install this distribution anyway, do: (cd /home/growthforecast/perl5/perlbrew/build/perl-5.18.2; make install) You might also want to try upgrading patchperl before trying again: perlbrew install-patchperl Generally, if you need to install a perl distribution known to have minor test failures, do one of these command to avoid seeing this message perlbrew --notest install perl-5.18.2 perlbrew --force install perl-5.18.2
一番下に、失敗したらこれでやってみ的な一文があるので素直に--notestつきのほうでインストールしたうまくいきました
$ perlbrew --notest install perl-5.18.2 Installing /home/growthforecast/perl5/perlbrew/build/perl-5.18.2 into ~/perl5/perlbrew/perls/perl-5.18.2 This could take a while. You can run the following command on another shell to track the status: tail -f ~/perl5/perlbrew/build.perl-5.18.2.log perl-5.18.2 is successfully installed.