ネットワーク機器のSNMP MIB/OIDまとめ

[NetOpsCoding Advent Clender](http://qiita.com/advent-calendar/2016/netopscoding) 12/20の記事になります。


SNMPのOID情報って、案外まとめられてそうで纏められてないので、ここに私が知っている範囲の情報をまとめていきます。
利用頻度が高い物をまとめているため、勿論全てではありません。
**OIDとMIBと意味を理解して、健全で安心な監視ライフを送りましょう！！！！！**

# 標準MIB

### 機器自体の情報のMIB(SNMPv2-MIB)
| OID | MIB | 説明 |
|:-:|:-:|:-:|
|1.3.6.1.2.1.1.5.0|sysName|機器のホスト名|
|1.3.6.1.2.1.1.1.0|sysDescr|機器に関する説明(機種情報やOSバージョン等)|
|1.3.6.1.2.1.1.6.0|sysLocation|snmp locationで登録されている文字列|

### Interfaceに関するMIB(IF-MIB)
| OID | MIB | 説明 |
|:-:|:-:|:-:|
|1.3.6.1.2.1.2.1.0|ifNumber|機器に存在するInterfaceの数(Loopback等の論理も含む)|
|1.3.6.1.2.1.2.2.1.1|ifIndex|InterfaceのifIndexの番号(snmpwalkで一覧確認)|
|1.3.6.1.2.1.2.2.1.2.(ifIndex)|ifDescr|インタフェース名(Eth0/0等)|
|1.3.6.1.2.1.31.1.1.1.18.(ifIndex)|ififAlias|インタフェースのDescription|
|1.3.6.1.2.1.2.2.1.7.(ifIndex)|ifAdminStatus|論理的なインタフェースの状態(1:up 2:down)|
|1.3.6.1.2.1.2.2.1.8.(ifIndex)|ifOperStatus|物理的なインタフェースの状態(1:up 2:down)|
|1.3.6.1.2.1.2.2.1.4.(ifIndex)|ifMtu|インタフェースのMTU値|
|1.3.6.1.2.1.2.2.1.5.(ifIndex)|ifSpeed|インタフェースの帯域(~~bps)|
|1.3.6.1.2.1.31.1.1.1.15.(ifIndex)|ifHighSpeed|インタフェースの帯域(~~Mbps)|
|1.3.6.1.2.1.2.2.1.10.(ifIndex)|ifInOctets|インタフェースで受信したパケットの総バイト数(32bitカウンタ)|
|1.3.6.1.2.1.2.2.1.16.(ifIndex)|ifOutOctets|インタフェースで送信したパケットの総バイト数(32bitカウンタ)|
|1.3.6.1.2.1.31.1.1.1.6.(ifIndex)|ifHCInOctets|インタフェースで受信したパケットの総バイト数(64bitカウンタ こちらを推奨)|
|1.3.6.1.2.1.31.1.1.1.10.(ifIndex)|ifHCOutOctets|インタフェースで送信したパケットの総バイト数(64bitカウンタ こちらを推奨)|
|1.3.6.1.2.1.31.1.1.1.7.(ifIndex)|ifHCInUcastPkts|インタフェースで受信したUnicastパケットの総数|
|1.3.6.1.2.1.31.1.1.1.11.(ifIndex)|ifHCOutUcastPkts|インタフェースで送信したUnicastパケットの総数|
|1.3.6.1.2.1.31.1.1.1.8.(ifIndex)|ifHCInMulticastPkts|インタフェースで受信したMulticastパケットの総数|
|1.3.6.1.2.1.31.1.1.1.12.(ifIndex)|ifHCOutMulticastPkts|インタフェースで送信した総Unicastパケット数|
|1.3.6.1.2.1.31.1.1.1.9.(ifIndex)|ifHCInBroadcastPkts|インタフェースで受信したBroadcastパケットの総数|
|1.3.6.1.2.1.31.1.1.1.13.(ifIndex)|ifHCOutBroadcastPkts|インタフェースで送信したBroadcastパケットの総数|
|1.3.6.1.2.1.2.2.1.13.(ifIndex)|ifInDiscards|破棄した受信パケットの総数|
|1.3.6.1.2.1.2.2.1.19.(ifIndex)|ifOutDiscards|破棄した送信パケットの総数|
|1.3.6.1.2.1.2.2.1.14.(ifIndex)|ifInErrors|受信したパケットのエラー総数|
|1.3.6.1.2.1.2.2.1.20.(ifIndex)|ifOutErrors|送信したパケットのエラー総数|
|1.3.6.1.2.1.2.2.1.14.(ifIndex)|ifInUnknownProtos|受信したパケットのうちプロトコルが不明で破棄したパケット(送信は無し)|


### IP通信に関するMIB(IP-MIB)

| OID | MIB | 説明 |
|:-:|:-:|:-:|
|1.3.6.1.2.1.4.3.0|ipInReceives|受信したパケットの総数|
|1.3.6.1.2.1.4.4.0|ipInHdrErrors|ヘッダのエラーにより破棄した受信パケットの総数|
|1.3.6.1.2.1.4.5.0|ipInAddrErrors|無効なIPアドレスで破棄した受信パケットの総数|
|1.3.6.1.2.1.4.12.0|ipOutNoRoutes|経路が存在しないため破棄した送信パケットの総数|
|1.3.6.1.2.1.4.8.0|ipInDiscards|破棄した受信パケットの総数|
|1.3.6.1.2.1.4.11.0|ipOutDiscards|破棄した送信パケットの総数|
|1.3.6.1.2.1.4.9.0|ipInDelivers|フォワードしたパケットの総数(32bitなのであまり信用できません)|
|1.3.6.1.2.1.4.14.0|ipReasmReqds|IP Fragmentによって分割された、連結する必要のあるパケット総数|
|1.3.6.1.2.1.4.15.0|ipReasmOKs|IP Fragmentから再構成に成功したパケットの総数|
|1.3.6.1.2.1.4.16.0|ipReasmFails|IP Fragmentから再構成に失敗したパケットの総数|
|1.3.6.1.2.1.4.19.0|ipFragCreates|機器自体がフラグメントを実施したパケットの総数|
|1.3.6.1.2.1.4.34.1.3.1.4.(IPv4Addr)|ipAddressIfIndex.ipv4|IPv4からIFindex値を算出|
|1.3.6.1.2.1.4.34.1.3.2.16.(IPv6Addr)|ipAddressIfIndex.ipv6|IPv6からIFindex値を算出|

# メーカーMIB
### IOS-XR(Cisco)
| OID | MIB | 説明 |
|:-:|:-:|:-:|
|1.3.6.1.4.1.9.3.6.11.1.1|cardIndex|各カードのIndex番号一覧|
|1.3.6.1.4.1.9.9.109.1.1.1|cpmCPUTotalPhysicalIndex|各CPUのIndex番号|
|1.3.6.1.2.1.47.1.1.1.1.7.(Index)|entPhysicalName|各CPUの名称|
|1.3.6.1.4.1.9.9.109.1.1.1.1.7.(index)|cpmCPUTotal1minRev|CPUの1分平均利用率(%)|
|1.3.6.1.4.1.9.9.109.1.1.1.1.8.(index)|cpmCPUTotal5minRev|CPUの5分平均利用率(%)|
|1.3.6.1.4.1.9.9.221.1.1.1.1.2|cempMemPoolType|各メモリの機能一覧(1:other 2:processorMemory 3:ioMemory 4:pciMemory 5:fastMemory 6:multibusMemory 7:interruptStackMemory 8:processStackMemory 9:localExceptionMemory 10:virtualMemory 11:reservedMemory 12:imageMemory 13:asicMemory 14:posixMemory)|
|1.3.6.1.4.1.9.9.221.1.1.1.1.6|cempMemPoolValid|各メモリが正常に利用可能かどうか|
|1.3.6.1.4.1.9.9.221.1.1.1.1.18.(index)|cempMemPoolHCUsed|メモリ利用量(byte)*1|
|1.3.6.1.4.1.9.9.221.1.1.1.1.20.(index)|cempMemPoolHCFree|メモリ残量(byte)*1|
|1.3.6.1.4.1.9.9.16.1.1.1|ciscoPingEntry|SNMP pingエントリの一覧表示|
|1.3.6.1.4.1.9.9.16.1.1.1.16.(EntryID)|ciscoPingEntryStatus|SNMP pingエントリーの状態(1:active 2:notInService 3:notReady 4:createAndGo 5:createAndWait 6:destroy)*2|
|1.3.6.1.4.1.9.9.16.1.1.1.2.(EntryID)|ciscoPingProtocol|Pingで使うプロトコル*2|
|1.3.6.1.4.1.9.9.16.1.1.1.3.(EntryID)|ciscoPingAddress|Pingで使うアドレスの指定(16進数)*2|
|1.3.6.1.4.1.9.9.16.1.1.1.7.(EntryID)|ciscoPingDelay|Pingの間隔(0-3600000ms)*2|
|1.3.6.1.4.1.9.9.16.1.1.1.4.(EntryID)|ciscoPingPacketCount|Pingの回数(1-2147483647)*2|


*1 目的のプロセスのメモリを取得する方法は下記が参考になります
 [IOS-XR: SNMPによるCPUメモリー使用量モニタリング](https://supportforums.cisco.com/ja/document/141626)

*2 実際にPingを使うには @kooshin さんの下記記事が参考になります
[CiscoルータでSNMPからpingする](http://qiita.com/kooshin/items/7a43e7c064aad9778018)


### JUNOS(Juniper)
| OID | MIB | 説明 |
|:-:|:-:|:-:|
|1.3.6.1.4.1.2636.3.1.13.1.5|jnxOperatingDescr|ラインカードや電源の登録名称|
|1.3.6.1.4.1.2636.3.1.13.1.1|jnxOperatingContentsIndex|各パーツのIndex(ルーティングエンジン,ラインカード,電源等)|
|1.3.6.1.4.1.2636.3.1.13.1.2|jnxOperatingL1Index|機器のパーツのL1レベルでの役割種別Index(物理的に存在しない場合は0)|
|1.3.6.1.4.1.2636.3.1.13.1.4|jnxOperatingL2Index|機器のパーツのL2レベルでの種別Index(無い場合は0)|
|1.3.6.1.4.1.2636.3.1.13.1.4|jnxOperatingL3Index|機器のパーツのL3レベルでの種別Index(機能として無い場合は0)|
|1.3.6.1.4.1.2636.3.1.13.1.11.9.x.0.0|jnxOperatingBuffer|ルーティングエンジンのメモリ使用率(%) (x=ルーティングエンジンの番号)|
|1.3.6.1.4.1.2636.3.1.13.1.11.7.x.0.0|jnxOperatingBuffer|ラインカードのメモリ使用率(%) (x=ラインカード番号)|
|.1.3.6.1.4.1.2636.3.1.13.1.8.9.x.0.0|jnxOperatingCPU|ルーティングエンジンのCPU使用率(%) (x=ルーティングエンジンの番号)|
|1.3.6.1.4.1.2636.3.1.13.1.8.7.x.0.0|jnxOperatingCPU|ラインカードのCPU使用率(%) (x=ラインカード番号)|
|1.3.6.1.4.1.2636.3.1.15.1.8.9.x.0.0|jnxFruState|ルーティングエンジンの状態 x=ルーティングエンジン番号(unknown(1) empty(2) present(3) ready(4) announceOnline(5) online(6) announceOffline(7) offline(8) diagnostic(9) standby(10))|
|1.3.6.1.4.1.2636.3.1.15.1.8.7.x.0.0|jnxFruState|ラインカードの状態 x=ラインカード番号(unknown(1) empty(2) present(3) ready(4) announceOnline(5) online(6) announceOffline(7) offline(8) diagnostic(9) standby(10))|
|1.3.6.1.4.1.2636.3.1.15.1.5|jnxFruName|各パーツの名称|
|1.3.6.1.4.1.2636.3.1.15.1.9|jnxFruTemp|機器の各温度状態取得|
|1.3.6.1.4.1.2636.3.7|jnxPingMIB|機器からPingを実施する(特殊条件が必要)*3|
|1.3.6.1.4.1.2636.3.8|jnxTraceRouteMIB|機器からTracerouteを実施する(特殊条件が必要)*3|

*3 Ping,TracerouteをSNMP越しに実施して結果を取得するには、Read-Write権限が必要、かつコンフィグでping-mibを読み込みさせておく必要があります。
詳しくは下記を参照して見て下さい
[[Junos] SNMP Remote Ping Operation on Junos](https://kb.juniper.net/InfoCenter/index?page=content&id=KB26596&actp=search) 


# 参考
[[SNMP]MIB-2ツリー配下のOIDの一覧](http://park1.wakwak.com/~ima/freebsd_netsnmpoidlist_p4.html)
[MIB の仕様] (http://www.cisco.com/japanese/warp/public/3/jp/service/manual_j/rt/10k/c1semg/chapter03/1903_03B_3.pdf)
[JUNIPER-IF-MIB](http://iphostmonitor.com/mib/JUNIPER-IF-MIB.html)
[CiscoルータでSNMPからpingする](http://qiita.com/kooshin/items/7a43e7c064aad9778018)
[[Junos] SNMP Remote Ping Operation on Junos](https://kb.juniper.net/InfoCenter/index?page=content&id=KB26596&actp=search)