企業向けのネットワーク機器ではほぼ全ての製品でSNMPをサポートしているので、標準的なMIBであれば機器の種別を問わずに同じOIDで情報を取得できる。
後々使いまわせるよう、SNMP監視や運用作業でよく使うOIDをメモしておく。
前提条件
SNMPでMIBを取得する実験台として、CiscoのL2スイッチCatalyst2960(WS-C2940-8TT-S)に以下の設定を入れて、同じサブネットのクライアントPCからsnmpwalkを行う。(後日詳しく追記するがtrap設定もここで入れておく)
hostname L2SW01 ! interface Vlan1 ip address 192.168.1.20 255.255.255.0 ! snmp-server community public RO snmp-server enable traps snmp authentication warmstart linkdown linkup coldstart
システム情報
システム情報でよく使うOIDは以下の通り。
OID | MIBシンボル名 | 備考 |
.1.3.6.1.2.1.1.3 | sysUpTime | システムの起動時間。前回の差分と比較して負の値だったら再起動が発生したと判断できる。 |
.1.3.6.1.2.1.1.5 | sysName | システムの名前。つまるところホスト名。このIPアドレスの機器のホスト名なんだっけという時に使う。 |
snmpwalkコマンドで実際に値を取得してみた結果。
### sysUpTime $ snmpwalk -v 2c -c public 192.168.1.20 .1.3.6.1.2.1.1.3 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (500485) 1:23:24.85 ### sysName $ snmpwalk -On -v 2c -c public 192.168.1.20 .1.3.6.1.2.1.1.5 .1.3.6.1.2.1.1.5.0 = STRING: L2SW01
インタフェース情報
(2017/8/30追記)インタフェース監視について、以下記事でより詳しい情報をまとめました。
SNMP監視でよく使うMIBのOID(インタフェース監視編)
インタフェース情報でよく使うOIDは以下の通り。
OID | MIBシンボル名 | 備考 |
.1.3.6.1.2.1.2.1 | ifNumber | ネットワークインタフェース数。これより下のOIDのxは1~ifNumberの数だけ存在する。 |
.1.3.6.1.2.1.2.2.1.2.x | ifDescr | 各インタフェースの概要。(GigabitEthernet 0/0など)xは1~ifNumberまで。 |
.1.3.6.1.2.1.2.2.1.8.x | ifOperStatus | 現在のインタフェースのポート状態。xは1~ifNumberまで。 |
.1.3.6.1.2.1.2.2.1.10.x | ifInOctets | 各インタフェースの受信バイト総数。前回の取得値と今回の取得値の差分を比較することで、任意の単位時間の受信バイト数を求められる。 |
.1.3.6.1.2.1.2.2.1.14.x | ifInErrors | 各インタフェースの受信エラーパケット総数。この値が上昇しているときは、取得機器もしくは対向機器のポートに何らかの問題がある。前回の取得値と今回の取得値の差分を比較することで、任意の単位時間の受信エラーパケット数を求められる。 |
.1.3.6.1.2.1.2.2.1.16.x | ifOutOctets | 各インタフェースの送信バイト総数。前回の取得値と今回の取得値の差分を比較することで、任意の単位時間の送信バイト数を求められる。 |
.1.3.6.1.2.1.2.2.1.20.x | ifOutErrors | 各インタフェースの送信エラーパケット総数。この値が上昇しているときは、取得機器のポートに問題がある可能性がある。前回の取得値と今回の取得値の差分を比較することで、任意の単位時間の送信エラーパケット数を求められる。 |
snmpwalkコマンドで実際に値を取得してみた結果。
### ifNumber $ snmpwalk -v 2c -c public 192.168.1.20 .1.3.6.1.2.1.2.1 IF-MIB::ifNumber.0 = INTEGER: 11 ### ifDescr $ snmpwalk -v 2c -c public 192.168.1.20 .1.3.6.1.2.1.2.2.1.2 IF-MIB::ifDescr.1 = STRING: FastEthernet0/1 IF-MIB::ifDescr.2 = STRING: FastEthernet0/2 IF-MIB::ifDescr.3 = STRING: FastEthernet0/3 IF-MIB::ifDescr.4 = STRING: FastEthernet0/4 IF-MIB::ifDescr.5 = STRING: FastEthernet0/5 IF-MIB::ifDescr.6 = STRING: FastEthernet0/6 IF-MIB::ifDescr.7 = STRING: FastEthernet0/7 IF-MIB::ifDescr.8 = STRING: FastEthernet0/8 IF-MIB::ifDescr.9 = STRING: GigabitEthernet0/1 IF-MIB::ifDescr.10 = STRING: Null0 IF-MIB::ifDescr.11 = STRING: Vlan1 ### ifOperStatus IF-MIB::ifOperStatus.1 = INTEGER: down(2) IF-MIB::ifOperStatus.2 = INTEGER: down(2) IF-MIB::ifOperStatus.3 = INTEGER: down(2) IF-MIB::ifOperStatus.4 = INTEGER: down(2) IF-MIB::ifOperStatus.5 = INTEGER: down(2) IF-MIB::ifOperStatus.6 = INTEGER: down(2) IF-MIB::ifOperStatus.7 = INTEGER: down(2) IF-MIB::ifOperStatus.8 = INTEGER: up(1) IF-MIB::ifOperStatus.9 = INTEGER: down(2) IF-MIB::ifOperStatus.10 = INTEGER: up(1) IF-MIB::ifOperStatus.11 = INTEGER: up(1) ### ifInOctets IF-MIB::ifInOctets.1 = Counter32: 0 IF-MIB::ifInOctets.2 = Counter32: 0 IF-MIB::ifInOctets.3 = Counter32: 0 IF-MIB::ifInOctets.4 = Counter32: 0 IF-MIB::ifInOctets.5 = Counter32: 0 IF-MIB::ifInOctets.6 = Counter32: 0 IF-MIB::ifInOctets.7 = Counter32: 0 IF-MIB::ifInOctets.8 = Counter32: 1581363 IF-MIB::ifInOctets.9 = Counter32: 13762 IF-MIB::ifInOctets.10 = Counter32: 0 IF-MIB::ifInOctets.11 = Counter32: 1512150 ### ifInErrors $ snmpwalk -v 2c -c public 192.168.1.20 .1.3.6.1.2.1.2.2.1.14 IF-MIB::ifInErrors.1 = Counter32: 0 IF-MIB::ifInErrors.2 = Counter32: 0 IF-MIB::ifInErrors.3 = Counter32: 0 IF-MIB::ifInErrors.4 = Counter32: 0 IF-MIB::ifInErrors.5 = Counter32: 0 IF-MIB::ifInErrors.6 = Counter32: 0 IF-MIB::ifInErrors.7 = Counter32: 0 IF-MIB::ifInErrors.8 = Counter32: 0 IF-MIB::ifInErrors.9 = Counter32: 0 IF-MIB::ifInErrors.10 = Counter32: 0 IF-MIB::ifInErrors.11 = Counter32: 0 ### ifOutOctets $ snmpwalk -v 2c -c public 192.168.1.20 .1.3.6.1.2.1.2.2.1.16 IF-MIB::ifOutOctets.1 = Counter32: 0 IF-MIB::ifOutOctets.2 = Counter32: 0 IF-MIB::ifOutOctets.3 = Counter32: 0 IF-MIB::ifOutOctets.4 = Counter32: 0 IF-MIB::ifOutOctets.5 = Counter32: 0 IF-MIB::ifOutOctets.6 = Counter32: 0 IF-MIB::ifOutOctets.7 = Counter32: 0 IF-MIB::ifOutOctets.8 = Counter32: 3044440 IF-MIB::ifOutOctets.9 = Counter32: 5754 IF-MIB::ifOutOctets.10 = Counter32: 0 IF-MIB::ifOutOctets.11 = Counter32: 3002282 ### ifOutErrors $ snmpwalk -v 2c -c public 192.168.1.20 .1.3.6.1.2.1.2.2.1.20 IF-MIB::ifOutErrors.1 = Counter32: 0 IF-MIB::ifOutErrors.2 = Counter32: 0 IF-MIB::ifOutErrors.3 = Counter32: 0 IF-MIB::ifOutErrors.4 = Counter32: 0 IF-MIB::ifOutErrors.5 = Counter32: 0 IF-MIB::ifOutErrors.6 = Counter32: 0 IF-MIB::ifOutErrors.7 = Counter32: 0 IF-MIB::ifOutErrors.8 = Counter32: 0 IF-MIB::ifOutErrors.9 = Counter32: 0 IF-MIB::ifOutErrors.10 = Counter32: 0 IF-MIB::ifOutErrors.11 = Counter32: 0
Cisco IOSリソース情報
これはCisco独自の拡張MIBだが、どこの企業もルータはCiscoがほとんどなので使う機会は多いと思う。
参考1(CPU):http://www.cisco.com/cisco/web/support/JP/100/1007/1007918_collect_cpu_util_snmp-j.html
参考2(メモリ): http://www.cisco.com/cisco/web/support/JP/100/1002/1002223_contiguous_memory.html
OID | MIBシンボル名 | 備考 |
.1.3.6.1.4.1.9.2.1.58 | avgBusy5 | IOS 12.0(3)T未満で使用可能。直近5分間のCPU使用率。 |
.1.3.6.1.4.1.9.9.109.1.1.1.1.5 | cpmCPUTotal5min | IOS 12.0(3)T 以降および 12.2(3.5) 未満で使用可能。直近5分間のCPU使用率。 |
.1.3.6.1.4.1.9.9.109.1.1.1.1.8 | cpmCPUTotal5minRev | IOS 12.2(3.5)T以降で使用可能。直近5分間のCPU使用率。 |
.1.3.6.1.4.1.9.9.48.1.1.1.5 | ciscoMemoryPoolUsed | 使用メモリバイト数。 |
.1.3.6.1.4.1.9.9.48.1.1.1.6 | ciscoMemoryPoolFree | 空きメモリバイト数。「使用メモリバイト数 / (使用メモリバイト数 + 空きメモリバイト数) * 100」でメモリ使用率を求めることができる。 |
snmpwalkコマンドで実際に値を取得してみた結果。(CPUはavgBusy5のみ)
### avgBusy5 $ snmpwalk -v 2c -c public 192.168.1.20 .1.3.6.1.4.1.9.2.1.58 SNMPv2-SMI::enterprises.9.2.1.58.0 = INTEGER: 0 ### ciscoMemoryPoolUsed $ snmpwalk -v 2c -c public 192.168.1.20 .1.3.6.1.4.1.9.9.48.1.1.1.5 SNMPv2-SMI::enterprises.9.9.48.1.1.1.5.1 = Gauge32: 1915288 SNMPv2-SMI::enterprises.9.9.48.1.1.1.5.2 = Gauge32: 702316 ### ciscoMemoryPoolFree $ snmpwalk -v 2c -c public 192.168.1.20 .1.3.6.1.4.1.9.9.48.1.1.1.6 SNMPv2-SMI::enterprises.9.9.48.1.1.1.6.1 = Gauge32: 3061704 SNMPv2-SMI::enterprises.9.9.48.1.1.1.6.2 = Gauge32: 2132692
ダグラス・R. マウロ ケビン・J. シュミット
オライリー・ジャパン
売り上げランキング: 478,636
オライリー・ジャパン
売り上げランキング: 478,636
ネットワーク監視 最強の指南書 (日経BPムック 日経ITエンジニアスクール)
posted with amazlet at 17.08.27
日経BP社 (2017-05-18)
売り上げランキング: 186,659
売り上げランキング: 186,659
l9sj3o