第7回 RRDtoolでグラフ化モニタリングSNMPによるネットワークモニタリング「第2版」(2/8 ページ)

» 2007年05月30日 09時05分 公開
[大澤文孝,ITmedia]

 ここでは、原稿執筆時点で最新となるバージョン1.2.23(rrdtool-1.2.23.tar.gz)をダウンロードすることにする。ダウンロード後は、次のように展開してconfigure実行し、インストールする。

 RRDtoolのmakeには、「libpng」「freetype」「libart」などのライブラリが必要だ。それらがインストールされていないとconfigureでエラーとなるので適時インストールしてほしい。


$ tar xzvf rrdtool-1.2.23.tar.gz
$ cd rrdtool-1.2.23
$ ./configure
$ make
$ su
# make install

 RRDtoolは、バージョン/usr/local/rrdtool-1.2.23ディレクトリにインストールされる。このディレクトリではバージョン番号が付いていて以降の操作がしづらくなるので、以下の説明では、次のようにシンボリックリンクを張っておくことにする。


# ln -s /usr/local/rrdtool-1.2.23 /usr/local/rrdtool

 manは/usr/local/rrdtool-1.2.23/man/ に含まれている。ここにはMANPATHが通っていないのでmanコマンドで参照できない。/etc/man.configを変更してMANPATHを設定しておくのが望ましい。

RRDtoolの初期設定

 RRDtoolをインストールすると、binサブディレクトリにもっとも基本となる「rrdtoolコマンド」がインストールされる。

 rrdtoolコマンドは、


rrdtool [コマンド名] [各種オプション]

という引数を与えることによって、RRDファイルを作成したり、値を格納したり、取り出したり、グラフ化したりするためのコマンドだ。

 RRDtoolを使うにあたっては、まず、RRDファイル(データベースとなるファイル)を作成しなければならない。そのためには、rrdtoolコマンドにcreateを付けて実行する。


rrdtool create [ファイル名] [オプション]

 指定すべきオプションは、次の通りだ。

 下記のうち、3)と4)はフィールド定義であり、必要な個数を繰り返し指定する。

1)--start 記録開始タイムスタンプ

 記録を開始する時刻をUNIXタイムシリアル(1970-01-01からの経過秒数)で指定する。

 標準値は「現在時刻-10秒」だが、横軸を「1時間単位」とか「30分単位」とかキッチリとした時間でグラフ化したいときに都合が悪い。そのため、タイムスタンプ値を明示的に指定したほうがよい。タイムスタンプ値は、dateコマンドを使って、例えば次のようにすると取得できる。


$ date --date "20070101 00:00:00" +%s
1167577200

2)--step インターバル

 何秒間隔でデータを記録するのかを指定する。標準値は300秒(5分)だ。

3)DS:データセット名:データ型:heatbeat:min:max

 RRDに記録すべきデータフィールドを定義する。

 データセット名は、いわゆる一般的な「データフィールド(列名)」に相当するもので、任意の名称だ。データ型は、そのデータがどのような形式をもつのかを示す(表1)

表1■データ型

データ型 意味
GAUGE その時刻の瞬間値を示す。時刻との関連性がない
COUNTER 統計値。時刻が増えれば値は増え、減ることはない。例えば送受信パケット数などを示すのに用いる。グラフ化するときに、前回との差分の平均値をとることができる
DERIVE COUNTERと同じだが、値が減ることもある
ABSOLUTE COUNTERと同じだが、0リセットされる可能性があるものを示す
COMPUTE 引数に逆ポーランド法による数式を記述し、任意の計算値を示す。やや複雑なので本稿での解説は割愛する

 上記のheadbeatは、指定した時間以内にデータが格納されないときに、Unknown(値不明)扱いとする時間(秒)を示すものだ。この値は、--stepオプションで指定した値よりも大きなものでなければならない。

 より具体的に言えば、「heatbeat以上の間隔でデータが格納されたときには、あえて異常とみなして取りこぼすようにする」ための指定だ。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ