snmpwalkで全MIB取得する方法

snmpwalkコマンドを利用してMIBの値を取ってくることができます。
例えば以下のような感じで実行すると、OIDが.1.3.6.1.4.1.2021.11以下の情報が表示されます。

# snmpwalk -v 2c -c public 192.168.xxx.xxx .1.3.6.1.4.1.2021.11
UCD-SNMP-MIB::ssIndex.0 = INTEGER: 1
UCD-SNMP-MIB::ssErrorName.0 = STRING: systemStats
UCD-SNMP-MIB::ssSwapIn.0 = INTEGER: 0
UCD-SNMP-MIB::ssSwapOut.0 = INTEGER: 0
UCD-SNMP-MIB::ssIOSent.0 = INTEGER: 2
UCD-SNMP-MIB::ssIOReceive.0 = INTEGER: 6
UCD-SNMP-MIB::ssSysInterrupts.0 = INTEGER: 1007
UCD-SNMP-MIB::ssSysContext.0 = INTEGER: 43
UCD-SNMP-MIB::ssCpuUser.0 = INTEGER: 0
UCD-SNMP-MIB::ssCpuSystem.0 = INTEGER: 0
UCD-SNMP-MIB::ssCpuIdle.0 = INTEGER: 98
UCD-SNMP-MIB::ssCpuRawUser.0 = Counter32: 55179
UCD-SNMP-MIB::ssCpuRawNice.0 = Counter32: 54468
UCD-SNMP-MIB::ssCpuRawSystem.0 = Counter32: 72833
UCD-SNMP-MIB::ssCpuRawIdle.0 = Counter32: 43855609
UCD-SNMP-MIB::ssCpuRawWait.0 = Counter32: 17627
UCD-SNMP-MIB::ssCpuRawKernel.0 = Counter32: 61659
UCD-SNMP-MIB::ssCpuRawInterrupt.0 = Counter32: 4195
UCD-SNMP-MIB::ssIORawSent.0 = Counter32: 5421176
UCD-SNMP-MIB::ssIORawReceived.0 = Counter32: 2046676
UCD-SNMP-MIB::ssRawInterrupts.0 = Counter32: 443555482
UCD-SNMP-MIB::ssRawContexts.0 = Counter32: 18721181
UCD-SNMP-MIB::ssCpuRawSoftIRQ.0 = Counter32: 6979
UCD-SNMP-MIB::ssRawSwapIn.0 = Counter32: 0
UCD-SNMP-MIB::ssRawSwapOut.0 = Counter32: 0

snmpwalkはOIDの指定無しで実行することもできます。

# snmpwalk -v 2c -c public 192.168.xxx.xxx

すると、大量にMIBの情報が表示されます。
OIDの指定無しで実行すると、全情報が展開されて表示されるのかと思っていたのですが、
実は表示されていないものがあります。

全OIDを知ろうと思うと以下のように最後に.をつけてあげるとOKです。

# snmpwalk -v 2c -c public 192.168.xxx.xxx .

これで全てが見れてるっぽいです。

ちなみにLinuxのサーバの情報を.ありと無しで比較した場合、これだけ取れてくる情報に差がありました。
.無しの場合

# snmpwalk -v 2c -c public 192.168.xxx.xxx > /tmp/MIB.txt
# cat /tmp/MIB.txt | wc -l
7371

.有りの場合

# snmpwalk -v 2c -c public 192.168.xxx.xxx . > /tmp/MIB.txt
# cat /tmp/Full_MIB.txt | wc -l
9392