http://www.e-agency.co.jp/column/20130423.html に記載してある通り(ほぼ?)にGrowthforecastをさくらのVPSに導入してみました。
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のバージョンを指定してインストール。ここですが、相当時間がかかるので、ルーター内部(NAT)からSSH接続していると、途中でSSHセッションが切れる場合があるので、注意。
perlbrew available perlbrew install perl-5.16.3
GrowthForecastに必要なモジュール、cpanとGrowthForecastのインストール。
yum install pkgconfig glib2-devel gettext libxml2-devel pango-devel cairo-devel perlbrew install-cpanm cpanm -n GrowthForecast
growthforecastの起動。
mkdir data mkdir log growthforecast.pl --port=5125 --data-dir=/home/growthforecast/data > /home/growthforecast/log/growthforecast.log 2> /home/growthforecast/log/growthforecast.err &
nginxのログ(LTSVフォーマット)をGrowthforecastに渡すのに、td-agentをインストールします。
vi /etc/yum.repos.d/td.repo yum install td-agent mv /etc/td-agent/td-agent.conf /etc/td-agent/td-agent.conf.org vi /etc/td-agent/td-agent.conf /etc/init.d/td-agent restart yum install fluent-cat git clone https://github.com/stanaka/fluent-plugin-tail-labeled-tsv.git cd fluent-plugin-tail-labeled-tsv/ cp fluent-plugin-tail-labeled-tsv/lib/fluent/plugin/in_tail_labeled_tsv.rb /etc/td-agent/plugin /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-datacounter /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-growthforecast
直接 Port 5125で接続するのはセキュリティ上問題があるので、Basic認証を設定しました。nginxは80で送信されてきた場合、別ポートに送信して行うことが可能なので、iptables等のファイアウォールで5125を開放する必要がありません。
</pre> vi /etc/nginx/conf.d/default.conf upstream growthforecast { server 127.0.0.1:5125; } server { listen 80; server_name xxxx.mydomain.com; proxy_connect_timeout 60; proxy_read_timeout 60; proxy_send_timeout 60; auth_basic "Secret Area"; auth_basic_user_file "/home/growthforecast/.htpasswd"; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://growthforecast; proxy_redirect off; } }
td-agentから送られてきた内容が簡単にグラフ化することができます。CPUの負荷状況なども簡単にグラフ化することが可能です。mrtgだと、snmpの設定をいろいろやらないとグラフ化できない手間を考えると、Growthforecastはシステムのログなどをグラフ化するのにもってこいのツールと思います。