CloudForecastを使ってみる

CloudForecastで検索すると、作者の @kazeburo さんよりも上位に @riywo さんが来るのがすごいな。


というわけで、シンプルで使いやすと噂のCloudForecastを使ってみることにします。ただ、監視する対象がないので、どうにもこうにも検証がしづらいのですが、とりあえずはインストールログとして。


参考ににさせて頂いたのは、以下のサイト。

インストール

環境
下準備

インストール前に動作に必要なパッケージをインストールする。

# yum install gcc perl-devel rrdtool-perl net-snmp net-snmp-utils net-snmp-perl git
インストール
  1. 本体のソースを入手する。(配置する場所は適宜)
$  cd /opt
$ git clone https://github.com/kazeburo/cloudforecast.git
$ cd cloudforecast
  1. cpanmをダウンロードする
    • Perlモジュールをそれぞれのアプリケーションに閉じた環境にインストールして実行できるようにするためにcpanmを利用します。
$ wget --no-check-certificate http://cpanmin.us/
  1. 必要なPerlモジュールをインストールする
$ mkdir extlib

$ perl Makefile.PL*1
$ perl cpanm -v -l extlib --installdeps .

完了まで少し時間がかかるので、小休止。

以下のように出力されればインストール完了。

Successfully installed .
XX distributions installed

設定

SNMPの設定

本体を動作させる前に、監視で利用するSNMPの設定をする(/etc/snmp/snmpd.conf)。とりあえず動作させるために、以下の設定をする(riywoさんのパクリです)。そして、snmpdをrestartする。

view    all     included .1      80
access  notConfigGroup  ""      any     noauth  exact   all     none    none
disk / 10000
CloudForecastの設定

ひとまず、自ホストのみを監視するように設定する。

  • CloudForecast自身の設定
$ mv cloudforecast_sample.yaml cloudforecast.yaml

とりあえずは変更しない。

  • 監視対象ホストの設定
$ mv server_list_sample.yaml server_list.yaml
$ vi server_list.yaml
    • 以下のようにlocalhostを監視するように設定
--- #Test
servers:
  - config: basic.yaml
    hosts:
      - 127.0.0.1 localhost Test Server
$ vi host_config/basic.yaml
component_config:
resources:
  - traffic:wlan0
  - disk:/
  - basic

起動!

データ保管用ディレクトリを作成して、監視デーモンを起動します。

$ mkdir data
$ ./cloudforecast_radar -r > /tmp/cloudforecast_radar.log 2>&1

これで監視デーモンが起動して、5分間隔でポーリングをする。「-r」オプションは、設定ファイル変更時に、デーモンを再起動して設定ファイルを再読み込みするため。

WEBからグラフを確認

./cloudforecast_web -r > /tmp/cloudforecast_web.log 2>&1 &

としたが、モジュールが足りず起動しなかったので、足りないモジュールをインストールする。手順としては、本体インストール時と同じ。

$ perl cpanm -v -l extlib CGI Text::Xslate
$ perl cpanm -v -l extlib HTML::FillInForm::Lite.pm

これで起動したので、ブラウザから http://localhost:5000/ へアクセスして確認する。


グラフが描画されていればOK。

設定の更新

試しに設定ファイルを更新してみたら、デーモンが監視・WEBとも落ちてしまった。なぜだ。。。


ひとまず今日はこのへんまで。設定ファイルの更新時の挙動と、起動や停止のinitスクリプト化も考えなきゃいけないので、次はそのあたりをやってみようと思う。

これがうまくいったら、会社Cactiを置き換えてしまいたいなとも思う。

*1:これを忘れるとモジュールのインストールで失敗する。(kazeburoさんやriywoさんのエントリにはこの記載がなかったので結構はまった。。そして id:memememomo さんの上述のエントリに助けられました。)