CactiのRRD容量拡大スクリプト

Cactiのデフォルトで作ると、MRTGと似たような感じでデータを丸めるようなRRDファイルが作られますが、ディスク容量に余裕がある場合には5分データを10年分保存しても、それほど困りません。例えば、一年前のある一日との一日グラフでの傾向比較など、データが残っていれば色々使い道があるのではないかと思います。

ラウンドロビンしてデータを丸めて小さく持つのがRRDToolの特徴ですが、その丸め処理を敢えて捨てることで、単にAPIの整備された時系列データストレージとして使うことになります。

というわけで、既に作ってしまったRRDファイルの保存サイズを変更するスクリプトです。処理内容としては、rrdtool resize コマンドを各RRDファイルに対して行います。

制限事項:

  • 期間を延ばした場合、過去の分については短い解像度のデータが存在しないため、普通にCactiで長期間のグラフを表示できなくなります。増やした過去の期間分、5分データに1日平均の値でもベタに突っ込んであげれば、とりあえずグラフは出るようになるはずです。
  • rra_resizeの@resize_rraを、以下の順で増やしたい行数に変えてください。
    • 5分平均
    • 30分平均
    • 2時間平均
    • 1日平均
  • 例えば、標準で600行(5分×600行=2日ちょい)のものを、2年保存するようにしたければ、2*365*24*60/5=210240行必要になるので、増分は209640となり、これを上記スクリプトに記述します。