負荷テストの学び(4)

(1)~(3)では負荷試験について、負荷をかける方法を学びました。
今回は負荷をかけられたサーバの状態を知る方法についてです。

Ganglia

GangliaはRRDtoolのフロントエンドだと思えばいいみたいです。
監視したいサーバ内で、gmondのようなGangliaのプロセスを立ち上げて、監視するプロセスとマルチキャストで通信します。

以下、KLabのスライドから持ってきました。

主に利用するのは以下の3つのようです。
1. gmond
監視対象のサーバで動くデーモンです。
2. gmetad
管理サーバで動くデーモンです。gmondと通信を行い、データをRRDに保存します。
3. ganglia-web
RRDのデータを見やすく表示します

使ってみる

CentOSyum search ganglia したところいくつかあったので、とりあえずいくつか入れておきます。

ganglia.i686 : Ganglia Distributed Monitoring System
ganglia.x86_64 : Ganglia Distributed Monitoring System
ganglia-devel.i686 : Ganglia Library
ganglia-devel.x86_64 : Ganglia Library
ganglia-gmetad.x86_64 : Ganglia Metadata collection daemon
ganglia-gmond.x86_64 : Ganglia Monitoring daemon
ganglia-gmond-python.x86_64 : Ganglia Monitor daemon python DSO and metric
                            : modules
ganglia-web.x86_64 : Ganglia Web Frontend
libnodeupdown-backend-ganglia.x86_64 : Ganglia backend for libnodeupdown
yum install ganglia ganglia-devel ganglia-gmond ganglia-gmetad ganglia-web

次にデフォルトの設定で起動してみます。

service gmond start
service gmetad start

正しく動いていたら、/var/lib/ganglia の下にファイルができていると思います。

次にganglia-webで可視化します。

cd /var/www/html
mkdir ganglia

そしたら、localhost/ganglia にアクセスします。
私の場合は、error_logに以下が出ていたので、/etc/httpd/conf.d/ganglia.confを編集しました。

 client denied by server configuration: /usr/share/ganglia

具体的には、アクセスするクライアントのIPアドレスだけAllowにしました。

  Alias /ganglia /usr/share/ganglia

  <Location /ganglia>
    Order deny,allow
    Deny from all
    Allow from 126.213.x.xx
#    Allow from 127.0.0.1
#    Allow from ::1
    # Allow from .example.com
  </Location>

実際にアクセスする可視化出来てました。

デフォルトではCPUとメモリの状態しか出ませんが、あとは自分が知りたい指標に合わせてカスタマイズしましょうってことで。


これで、負荷試験からレスポンスタイムの計測、サーバの状態の可視化などが一通りできるようにりました。
あとは実践あるのみ!