Cactiのデータソースの最大値をrrdtoolで修正する

サーバにメモリを増設したところcactiでメモリの空き容量が表示されなくなりました。

メモリを増設したことで空き容量が増え、cactiの「ucd/net - Memory - Free」データテンプレートの「Maximum Value」よりも値が大きくなったことが原因の様な気がしたので、試しに10倍に変更してみました。

・・・が、一向に改善する気配がありません。rrdtoolで直接rrdファイルの中をのぞいてみると、ファイル内に最大値の設定があるため、一度データソースが作成されるとテンプレートを変更しても反映されないようでした。

なので、データテンプレートの編集後、rrdtoolで直接データソースの最大値を修正してみました。

rrdファイルの内容を確認する

rrdファイルのパスは、cactiの設定画面で対象となるデータソースの「Data Source Path」に設定されています。
<path_rra> という名前を「<cactiのインストールディレクトリ>/rra」と読み替えれば実際のパスがわかります。

rrdtool info /path/to/cacti/rra/hogehoge.rrd 
 :
ds[mem_free].index = 0
ds[mem_free].type = "GAUGE"
ds[mem_free].minimal_heartbeat = 600
ds[mem_free].min = 0.0000000000e+00
ds[mem_free].max = 1.0000000000e+07
ds[mem_free].last_ds = "10114784"
ds[mem_free].value = NaN
ds[mem_free].unknown_sec = 10
 :

念のためにバックアップしておく

rsync -av /path/to/cacti/rra/ /path/to/backup/

rrdファイルを修正して再確認

rrdtool tune /path/to/cacti/rra/hogehoge.rrd  --maximum mem_free:100000000

rrdtool info /path/to/cacti/rra/hogehoge.rrd 
 :
ds[mem_free].index = 0
ds[mem_free].type = "GAUGE"
ds[mem_free].minimal_heartbeat = 600
ds[mem_free].min = 0.0000000000e+00
ds[mem_free].max = 1.0000000000e+08
ds[mem_free].last_ds = "10114748"
ds[mem_free].value = NaN
ds[mem_free].unknown_sec = 14
 :

もしくは最大値を未設定にすることも出来るようです。

rrdtool tune /path/to/cacti/rra/hogehoge.rrd  --maximum mem_free:NaN

rrdtool info /path/to/cacti/rra/hogehoge.rrd 
 :
ds[mem_free].index = 0
ds[mem_free].type = "GAUGE"
ds[mem_free].minimal_heartbeat = 600
ds[mem_free].min = 0.0000000000e+00
ds[mem_free].max = NaN
ds[mem_free].last_ds = "10114748"
ds[mem_free].value = NaN
ds[mem_free].unknown_sec = 14
 :