MRTGを使ったネットワーク監視技法
第2回 MRTGとは,どんなもの?
今回は,本連載のメイントピックである「MRTG」とはどんなものなのか,まずはツールの全体像を紹介します。
MRTGの出力例
ここでMRTGの出力例を見てみましょう。MRTGでルータのトラフィックを監視すると,図1に示したようなグラフで見ることができます。実際には日,週,月,年の期間を示す4つのグラフから構成されます。
MRTGの基本プログラム
MRTGは,いくつかのプログラムから構成されます。主なものは,以下のようになります。
- ① 監視対象機器にトラフィック量等を問い合わせ,それをグラフ化するプログラム
→mrtg,rateup - ② 監視対象機器に問い合わせるときに使用するパラメータの雛形を作成するプログラム
→cfgmaker - ③ 複数の監視対象機器がある場合,それぞれのHTMLファイルが作られます。これらのHTMLファイルをリンクしたトップページ的なHTMLファイルを作成するプログラム
→indexmaker
①のmrtgは,5分ごとに実行されるプログラムになります。②,③にあるcfgmakerとindexmakerは,パラメータファイルなどを作るときに使います。ですので,運用に入ってしまえば使うことはなく,次の出番は監視対象機器が増えたときなどになります。
MRTGを動かすには
MRTGの根幹となるものはmrtgというPerlでできたプログラムです。このプログラムを使って監視対象機器を5分ごとに計測するようにしますが,その実行方法には,以下の2つの方法があります。
- ① cronでmrtgを5分ごとに実行する
- ② daemonとしてmrtgを実行する
パフォーマンスの点で見ると,cronに比べdaemonは都度のプログラムのロードがない分,メリットがあります。ですが,この2つは使い分けると良いでしょう。MRTGはパラメータの設定で,グラフにいろいろとお化粧ができます。その試行錯誤をしているときは,cronで実行することを前提にしたパラメータにしておき,納得のいくパラメータができ,運用に入るようになったら,daemonとして実行するようにパラメータを書き換えるようにしてみましょう。なお,具体的な設定方法などは,あとで説明します。
MRTGのインストールには別のプログラムも必要
MRTGの最大の特徴は,計測結果をグラフに表すことです。実際のグラフは,PNGファイルになります。このためにMRTGがGD Graphic Libraryを呼び出しています。したがって,MRTGをインストール(コンパイル)する前に,GD Graphic Libraryをインストールしておく必要があります。さらにGD Graphic Library以外にも必要なライブラリがあります。それらもインストールされていなければなりません。インストール手順は後述しますが,以下に必要なものを示します。
- GD Graphic Library
- libpng
- zlib
MRTGで監視できるもの
標準的には,ルータのトラフィック量の監視ですが,ほかにもいろいろなものが監視できます。MRTGの監視のためのデータ取得方法には,以下の2種類があります。
- SNMPを使ってデータを取得する
- プログラムを使ってデータを取得する
SNMPを使ったデータ取得
はじめに,SNMPを使ったデータの取得の例を見ていきましょう。
今,メールサーバにおけるメールの送信プロセス数がどれくらいあるのか,監視をするとします。メールサーバでは,POSTFIXが動いているとした場合,送信メールのプロセスはsmtpdになります。このsmtpdの数をグラフ化することができます。また,メールサーバのディスク容量の空き具合(使用量)も監視することができます。
この2つは,SNMPのエージェントに常時監視させることができるので,MRTGは,SNMPを通してデータを受け取り,それをグラフ化するだけになります。
プログラムを使ったデータ取得
次の例は,SNMPは使わずにMRTGが動作しているサーバ上で,プログラムを動かして得られたデータをグラフ化するものです。たとえば,社内システムにアクセスする際の認証にradiusを使っているとしましょう。このとき何人の人がアクセスしているかの推移をMRTGでグラフ化することができます。
radiusにはradacctというコマンドを使ってアクセス中のアカウントを取得することができます。MRTGのパラメータの中でこのradacctを起動するように記述して,radacctが返す値をひろうようにします。これでアクセスしている人の推移をグラフ化ができるようになるわけです。
次回は
次回は実際にMRTGのインストールをしてみます。ベースのプラットフォームはUNIXを予定しています。

