注目トピック

Wikiガイド

最近の更新

2022-12-28
2021-10-12
2018-08-20
2013-10-30
2013-02-06
2011-06-22
2010-08-13
2009-03-27
2008-11-14
2008-11-13
2008-10-01

EXPRESSSCOPEエンジンを使う / [応用編2] サーバのセンサー情報の取得とグラフ化

<前のページ | 1 | 2 | 3 | 4 | 5 | 次のページ>

グラフ化

それでは取得したデータをグラフ化する方法を紹介しましょう。サーバの稼働情報をグラフ化するツールとしてはMRTGが長年定番として使われてきましたが、最近はRRDtoolを利用するケースが増えているようです。RRDtoolはMRTGと同じ作者(Tobias Oetiker氏)によって開発されたツールで、MRTGをより柔軟にして汎用性を高めたものがRRDtoolとなっています。ただし柔軟性が増した分、RRDtoolのセットアップはMRTGに比べると面倒です。

幸いipmitoolにはRRDtoolを使ってサーバの情報をグラフ化するためのスクリプトが付属しているので、それを利用することにします。利用するスクリプトはソースアーカイブのcontribディレクトリに入っていますが、Ubuntu 7.10のバイナリパッケージをインストールしたところ/usr/share/ipmitoolに配置されていました。

ApacheとRRDtoolのインストール

今回設置するスクリプトはipmitoolで収集したデータをRRDtoolで記録し、CGIスクリプトでグラフ化してWebページに表示するというものです。そこで、まずはWebサーバ(Apache)とRRDtoolをインストールします。

$ sudo apt-get install apache2 rrdtool

次にRRDtoolのデータベースファイルを格納するディレクトリを作成します。Ubuntu 7.10の場合、Apacheのドキュメントルートが/var/wwwに設定されているのでこの下に/var/www/rrdというディレクトリを作成しました。このディレクトリはデータ収集スクリプトの実行ユーザーが書き込め、かつCGIスクリプトの実行ユーザーが読み出しできるようにしておく必要があります。そこで以下のようにオーナーを変更しました。

$ sudo mkdir /var/www/rrd $ sudo chown morihide:www-data /var/www/rrd

「morihide」は筆者の(監視ホスト上での)ユーザー名で、「www-data」はApacheの実行グループ名です。これにより、CGIスクリプトはwww-dataグループの権限で/var/www/rrdにあるファイルを読み出せるようになります(データベースファイル自体もその他のユーザー(other)から読み出せる必要があります)。

データベースファイルの作成

ディレクトリを用意したら、データベースファイルを作成します。これにはcreate_rrds.shスクリプトを利用します。実行する前にスクリプト中の「hostname」の行と、「ipmi_cmd」の行、「rrd_dir」の行を以下のように修正します。

$ cat /usr/share/ipmitool/create_rrds.sh
#!/bin/bash
#
#  Copyright (c) 2003 Fredrik Ohrn.  All Rights Reserved.
#
#  See the included COPYING file for license details.
#

# Edit the variables

hostname="i110Rc-1h"  ←監視対象サーバのホスト名

ipmi_cmd="/usr/local/bin/ipmitool -I lanplus -H 172.17.4.129 -U hmori -P xxxxxxxx"  ←サーバのBMCにアクセスするためのipmitoolコマンド
rrd_dir="/var/www/rrd"  ←データベースファイルを配置するディレクトリ

# No need to edit below this point.

IFS="
"

for line in `eval $ipmi_cmd -c -v sdr list full` ; do

        IFS=,

        split=($line)

        file="$rrd_dir/$hostname-${split[0]}.rrd"

        if [ -e "$file" ] ; then
                echo "Skipping existing file $file"
                continue
        fi

        echo "Creating file $file"

        rrdtool create "$file" \
                --step 300 DS:var:GAUGE:900:${split[16]}:${split[17]} \
                RRA:AVERAGE:0.5:1:288 \
                RRA:AVERAGE:0.5:6:336 \
                RRA:AVERAGE:0.5:12:720
done

修正したらスクリプトを実行して、データベースファイルを作成します。このスクリプトはroot権限は必要としないので、一般ユーザーの権限で実行します。

$ /usr/share/ipmitool/create_rrds.sh

<前のページ | 1 | 2 | 3 | 4 | 5 | 次のページ>


関連記事