サーバ監視に nagios を使っている。履歴は nagiosgraph 経由で RRDtool。nagiosgraph の良いところは、何も考えなくても nagios の出力が RRDtool に取り込まれるところ。しかし、ピーク値が残らないという問題を一月以上、放置したままだった。



<p>例えば、過去一日の間の CPU load の最大値が 1.0 だったとする。それが、過去一週間のグラフでは、CPU load の最大値が 0.6 などに丸められていた。これでは、最大瞬間風速が判らない。</p>

<p>ようやく nagiosgraph の insert.pl を調べると、RRA(Round Robin Archive) の consolidation (データ圧縮) が AVERAGE のみであることが判った。前々から、そうではないかと疑っていたのだけれど。</p>

<pre class="prettyprint">
$ds .= “ RRA:AVERAGE:0.5:1:” . $RRA_1min;
$ds .= “ RRA:AVERAGE:0.5:6:” . $RRA_6min;
$ds .= “ RRA:AVERAGE:0.5:24:” . $RRA_24min;
$ds .= “ RRA:AVERAGE:0.5:288:” . $RRA_288min;
</pre>

<p>そこで、MAX と MIN も記録に残すことにした。</p>

<pre class="prettyprint">
$ds .= “ RRA:AVERAGE:0.5:1:” . $RRA_1min;
$ds .= “ RRA:AVERAGE:0.5:6:” . $RRA_6min;
$ds .= “ RRA:AVERAGE:0.5:24:” . $RRA_24min;
$ds .= “ RRA:AVERAGE:0.5:288:” . $RRA_288min;
$ds .= “ RRA:MIN:0.5:1:” . $RRA_1min;
$ds .= “ RRA:MIN:0.5:6:” . $RRA_6min;
$ds .= “ RRA:MIN:0.5:24:” . $RRA_24min;
$ds .= “ RRA:MIN:0.5:288:” . $RRA_288min;
$ds .= “ RRA:MAX:0.5:1:” . $RRA_1min;
$ds .= “ RRA:MAX:0.5:6:” . $RRA_6min;
$ds .= “ RRA:MAX:0.5:24:” . $RRA_24min;
$ds .= “ RRA:MAX:0.5:288:” . $RRA_288min;
</pre>

<p>AVERAGE は傾向把握用、MAX は最大瞬間風速記録用。MIN は…使い道が思いつかないけれど、とりあえず入れておく。RRD(Round Robin Database) を後から作り直すのは困難だから。</p>

<p>ついでに、グラフも nagiosgraph そのままではなくて、自前で作ってみると、楽しい… nagiosgraph でも生きていけるけど、RRDtool のフロントエンドとして、なにかまともなのを用意したい。自前のグラフ作成スクリプトを cron で動かすか、このスクリプトを cgi にするか、RRDtool 付属の cgi を使うか、cacti みたいな便利ツールを入れるか。</p>

<p>以下のページを参考にした。
<ul>
<li>RRDtoolの使い方</li>
</ul>
</p>