今回は,MRTGの機能を補完するツール,rrdtoolについて使用方法を紹介します。
MRTGの弱点と改善策
MRTGは,5分ごとに監視対象機器からデータを取得しますが,同時にグラフファイルの作成も常に行っています。また取得データは,テキストファイルに保存しているため,効率もあまりよくありません。
これらの点を改善するために,MRTGの作者のTobias氏は取得データの保存と閲覧を別々のプログラムで行うように機能拡張しています。それがrrdtoolというデータベースツールです。RRDとはRound Robin Databaseを指していますが,新しいデータを一番古いデータ箇所に書き,輪のように繰り返していくことで,効率よくデータを保管するようにしたものです。
rrdtoolのインストール
rrdtoolは,1.3.x, 1.2.x, 1.0.xの3つのバージョンがあります。rrdtool-1.0.xは,このtarballだけで,実行プログラムを生成できますが,それより上のバージョンは依存関係にあるパッケージをインストールしなければなりません。
実際のところ,1.2.xでは10個もないので,1つずつインストールしていってもなんとかできるのですが,1.3.xは手に負えないほどのパッケージの量になります。しかし,FreeBSDではportsを使うことで,それらの依存パッケージも含めて容易にインストールできますので,ここでは時間こそかかりますが,Portsを利用して,rrdtool-1.3.7をインストールすることにします。
# cd /usr/ports/databases/rrdtool
# make
# make install
このPortsを使うことで,依存関係にある約60個のパッケージがインストールされます。インストールされるパッケージは,以下のコマンドでリストできますので,導入済みプログラムに影響がないか,確認しておきましょう。
# make all-depends-list
仮想化技術で独立したサーバを使う
最近は,仮想化技術を使ったサーバを容易に作れるようになりました。導入済みのプログラムとの衝突に悩むよりは,仮想化技術で独立したサーバに監視環境を構築する方が安心して運用サーバが作れると思います。ESXiやXen Serverなどのハイパーバイザー型の仮想化サーバで運用することも考えられてはどうでしょうか。
もっと手軽にrrdtoolを使いたい
上でも触れましたが,低いバージョンのrrdtool-1.0.50.tar.gzならば,
./configure --prefix=/usr/local/rrdtool
make
make install
といった手順で,すぐに利用できるようになります。rrdtoolのお試しならば,バージョン1.0.x でも十分な気がします。
rrdtoolを使うための設定
Portsからrrdtoolをインストールすると,実行に必要なプログラム等は,以下のパスにインストールされます。
| rrdtool | /usr/local/bin |
| Library | /usr/local/lib/perl5/site_perl/5.8.9 |
この情報をmrtg.cfgに反映させるわけですが,mrtg.cfgはスクリプトを使って作成してきました。よってrrdtoolを使う設定もスクリプトに記述して,mrtg.cfgに反映させることにします。以下の赤色で強調された3行を追加してください。
リスト cfg_mrtg2.shの編集
/usr/local/mrtg-2/bin/cfgmaker \
--global "WorkDir: /usr/local/apache2/htdocs/mrtg2" \
--global "IconDir: /mrtg/icons/" \
--global "options[_]: growright,bits" \
--global "Language: eucjp" \
--global "LogFormat: rrdtool" \
--global "PathAdd: /usr/local/bin/" \
--global "LibAdd: /usr/local/lib/perl5/site_perl/5.8.9/" \
--if-template cfg_mrtg2.temp \
--output="mrtg2.cfg" \
HIMITSU@192.168.1.208 \
HIMITSU@192.168.1.203 \
HIMITSU@192.168.1.201
(これまでのものと区別するためにmrtg2と名称変更しています)

