メモリがお安くなった今日この頃。
「よーしパパ、年度末だし 32GB 積んだサーバ買っちゃうぞ〜」
と意気込んでメモリ盛り盛り16GBやら32GBのサーバを買って、意気揚々とセットアップしていざ監視系に組込んでみたら
「あれれー? 何だかおかしいよ〜? メモリの空き容量(Memory Free)がnanになっちゃってるよ〜?」
と、Cacti でサーバ監視してるのに、大容量のメモリを積んだサーバの Memory Usage の Memory Free が取得できなくなったことはないでしょうか?
SNMPでの取得ができていないのかと snmpwalk で確認すると、
$ snmpwalk -v 1 -c public foobar.jp .1.3.6.1.4.1.2021.4 UCD-SNMP-MIB::memIndex.0 = INTEGER: 0 UCD-SNMP-MIB::memErrorName.0 = STRING: swap UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 18530296 UCD-SNMP-MIB::memAvailSwap.0 = INTEGER: 18530296 UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 16288872 UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 13028976 UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 31559272 UCD-SNMP-MIB::memMinimumSwap.0 = INTEGER: 16000 UCD-SNMP-MIB::memBuffer.0 = INTEGER: 81832 UCD-SNMP-MIB::memCached.0 = INTEGER: 2343540 UCD-SNMP-MIB::memSwapError.0 = INTEGER: 0 UCD-SNMP-MIB::memSwapErrorMsg.0 = STRING:
ちゃんと返してる。
それなのに、グラフがちゃんと描画されない。
これの原因は、Cacti にデフォルトで設定されている上限値を越えているので、ちゃんと処理できなくなっている。ということらしいです(↓)。
Cacti • View topic - Memory not reporting correctly http://forums.cacti.net/about38955.html
TheWitness Posted: Wed Aug 11, 2010 2:25 pm
The max value in the data template needs to be adjusted (add a few zeros). Then, simply delete the RRDfile and start again.TheWitness
対処法は、その上限値を増やしてやればいいので、Cacti の [Console] から
[Data Templates] → [ucd/net - Memory - Free] と開き、
Data Source Item の Maximum Value の項目に 0 を追加するなどで、上限値を引き上げましょう。
デフォルトではこれが 10GB になっているので、0 を追加して 100GB にしてやればOK。
こんな感じにちゃんとグラフが描画されるようになるはず。
グラフが出ない場合は、グラフに対応する rrd ファイルを一度削除します。
rrd ファイルは /var/log/cacti/rra/ に入っていて、ファイル名は [Console] の [Data Sources] から監視対象を開いた [Data Source Path] に書いてあります。
例えば、[foobar - Memory - Free] を開くと [