例えば、--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のようになる。
それでは、実際に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.