labunix's blog

labunixのラボUnix

FreeBSD10.1-RC4のsnmpwalkでメモリの空き容量を表示する。

■FreeBSD10.1-RC4のsnmpwalkでメモリの空き容量を表示する。

 FreeBSD10.1-RC4にnet-snmp(snmpd/snmptrapd)をインストールしてみた。
 http://labunix.hateblo.jp/entry/20141119/1416323890

■FreeBSDはsysctlで確認出来る。
 例えば、1GBのメモリを積んでる。(仮想マシンなので。。。)

$ sysctl hw.physmem | awk '{print $2/1024/1024"MB"}'
1000.05MB

■sysctlのパラメータを探すの面倒なので、snmpwalkでこんな感じ。

$ for list in memTotalReal memTotalFree ;do \
    snmpwalk -c public -v 1 localhost ${list}; \
  done | awk '{printf "%s ",$(NF-1)}' | \
  awk '{print "Used :  "($1-$2)/1024"M\nFree :  "$2/1024"M\nTotal: "$1/1024"M"}'
Used :  145.492M
Free :  854.559M
Total: 1000.05M

■Linuxのfreeの書式風に。

$ for list in memTotalReal memTotalFree memShared memBuffer memCached ;do \
    snmpwalk -c public -v 1 localhost ${list}; \
  done | awk '{printf "%s ",$(NF-1)}' | awk 'OFS="," {print "Mem:",$1,($1-$2),$2,$3,$4,$5}'
Mem:,1024052,148984,875068,49848,19552,23508

■Debianでの出力

$ free | head -2 | sed s/"  *"/","/g
,total,used,free,shared,buffers,cached
Mem:,8014268,4859192,3155076,0,61664,3609696

■swapとかも出来るようですが、今日はここまで。。。

$ snmpwalk -c public -v 1 localhost mem
UCD-SNMP-MIB::memIndex.0 = INTEGER: 0
UCD-SNMP-MIB::memErrorName.0 = STRING: swap
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 2096988 kB
UCD-SNMP-MIB::memAvailSwap.0 = INTEGER: 2096988 kB
UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 1024052 kB
UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 894256 kB
UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 833292 kB
UCD-SNMP-MIB::memMinimumSwap.0 = INTEGER: 16000 kB
UCD-SNMP-MIB::memShared.0 = INTEGER: 41160 kB
UCD-SNMP-MIB::memBuffer.0 = INTEGER: 19552 kB
UCD-SNMP-MIB::memCached.0 = INTEGER: 23432 kB
UCD-SNMP-MIB::memSwapError.0 = INTEGER: noError(0)
UCD-SNMP-MIB::memSwapErrorMsg.0 = STRING: