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