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

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

 例えば、--stepオプションで指定した値の倍とか4倍とか8倍といった程度の値を、運用に合わせて指定すればよい。minは格納できる最小値、maxは格納できる最大値を、それぞれ示す。

 例えば正の値しか入るはずがないフィールドは、minに「0」を指定しておくとよい。これらを指定したくないときには「U」(Unknownの意味)を指定できる。

4)RRA:CFタイプ:xff:steps:rows

 RDDでは、格納された値を直接保存するのではなく、一定期間内のデータをまとめて、平均や最小最大値などを計算し、その計算結果を格納するという方式をとっている。

 この保存される形式のことを「RRA(Round Robin Archives)」と言う。これは保存域をできるだけ小さくするための工夫である。RRAでは、「CF(consolidation function:集約関数)」と呼ばれる関数を使ってデータを統合する。用意されている集約関数は、表2の通りだ。

表2■CFタイプ

CF 意味
AVERAGE 平均
MIN 最小
MAX 最大
LAST 最新値

 xff、steps、rowsでは、次の項目を指定する。

・steps

 集約するステップ数を指定する。

 すでに説明したように、データを更新する間隔は、--stepオプションで決める。stepsオプションは、この格納されたデータいくつ分を、CFを使って、さらにまとめるのかを指定する。

 例えば、--stepオプションが標準値の300秒であるとし、ここでstepsとして12を指定すると仮定する。この場合、「300秒のデータを12個分=3600秒=1時間分の計算をする」ということを意味する。

・xff

 前述のstepsオプションの区間のなかに、何割Unknown値が入っていたら、全体としてUnknownと見なすのかという割合を指定する。この値は「0〜1」の範囲である。例えば、xff=0.5であれば、50%、すなわち半分以上がUnknownであれば、全体としてUnknownとする。

・rows

 RRAとして保存する個数を指定する。これは、ラウンドロビンする周期を意味する。例えば、--stepオプションが標準値の300秒であり、stepsオプションを12として1時間分の計算をするものとしよう。

 このときrowsを「24×30 = 720」とすれば、24時間×30日分のデータをラウンドロビンすることになる。文字で記述すると分かりづらいものとなるが、「収集したデータ」と「保存されるデータ」の関係を図示すると、図2のようになる。

図2■データベースの構造

RRDファイル作成の実例

 それでは、実際にRRDファイルを作成してみたい。

 ここでは、インタフェースを出入りするパケット数――言い換えれば、通信トラフィック――の統計を保存するためのRRDファイルを作成することにする。

 ここでは、2007年5月1日から5分(=300秒)間隔で、15分ごとの平均をとり、30日分の「入力パケット数」「出力パケット数」を保存することにする(RRDtoolの実行にroot権限は必要ない)。

 まずは、2007年5月1日のUNIXタイムスタンプを調べる。


$ date --date "20070501 00:00:00" +%s
1177945200

 ここでは作成するファイル名をpackets.rrdとする。

 5分間隔で取得するから、--stepオプションの値は300(秒)だ。

 入出力パケット数は、どんどん増えていく一方であり減ることはないからCOUNTERとする。ここでは、入力パケットの保存フィールド名に「InPackets」、出力パケットの保存フィールド名に「OutPackets」という名前を付けることにする。また最小値を0とし、600秒経過しても次の値が保存されなかったときにはUnknown扱いとすることにする。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ