このドキュメントでは、Simple Network Management Protocol(SNMP)の概要を説明し、Cisco Unified Computing System(UCS)C シリーズ ラック サーバでの SNMP 機能のテスト方法を示します。 これは、基本的な SNMP のトラブルシューティングの参考になります。
SNMP は、複数の Requests For Comment(RFC)によって定義された Internet Engineering Task Force(IETF)の業界標準です。 ネットワーク管理システム(NMS)でネットワーク デバイスをモニタするために SNMP が使用されます。 SNMP はアプリケーション層で動作します。 SNMP の主な目的は、NMS で管理対象デバイスからの情報を取得できるようにすることです。
このドキュメントでは、NMS とすべてのネットワーク デバイスが正しく設定され、これまで正常に機能していたものとします。
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。
SNMP
Cisco UCS C シリーズ ラック サーバ
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
マネージャは NMS であり、エージェントは管理対象デバイスで動作するソフトウェアです。 マネージャとエージェント間のメッセージのやり取りに SNMP が使用されます。
Management Information Base(MIB)はオブジェクトのコレクションです。 オブジェクトには、 スカラ(単一のオブジェクト)と表形式(複数のオブジェクト)の 2 種類があります。 オブジェクトは、管理対象デバイスの 1 つ以上の特性または変数です。 これらの特性は、オブジェクト ID(OID)で識別されます。 OID は、オブジェクト名とインスタンス ID のピリオドで区切られた数値表現です。sysDesc などのスカラ オブジェクトのインスタンスは常に 0 です。 オブジェクトがテーブル内の列の場合は、通常、インスタンス ID はその列のインデックスになります。 MIB はツリー形式で構成され、オブジェクト ID はそのツリーから抽出されます。
注: 次の出力例は、Cisco UCS C シリーズ ラック サーバで収集されたものです。
この例では、cucsProcessorUnitEntry の CISCO-UNIFIED-COMPUTING-PROCESSOR-MIB 定義を検証します。
cucsProcessorUnitEntry OBJECT-TYPE SYNTAX CucsProcessorUnitEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Entry for the cucsProcessorUnitTable table." INDEX { cucsProcessorUnitInstanceId } ::= { cucsProcessorUnitTable 1 }CucsProcessorUnitEntry ::= SEQUENCE { cucsProcessorUnitInstanceId CucsManagedObjectId, cucsProcessorUnitDn CucsManagedObjectDn, cucsProcessorUnitRn SnmpAdminString, cucsProcessorUnitArch CucsProcessorUnitArch, cucsProcessorUnitCores Gauge32, cucsProcessorUnitCoresEnabled Gauge32, cucsProcessorUnitId Gauge32, cucsProcessorUnitModel SnmpAdminString, cucsProcessorUnitOperState CucsEquipmentOperability, cucsProcessorUnitOperability CucsEquipmentOperability, cucsProcessorUnitPerf CucsEquipmentSensorThresholdStatus, cucsProcessorUnitPower CucsEquipmentPowerState, cucsProcessorUnitPresence CucsEquipmentPresence, cucsProcessorUnitRevision SnmpAdminString, cucsProcessorUnitSerial SnmpAdminString, cucsProcessorUnitSocketDesignation SnmpAdminString, cucsProcessorUnitSpeed INTEGER, cucsProcessorUnitStepping Gauge32, cucsProcessorUnitThermal CucsEquipmentSensorThresholdStatus, cucsProcessorUnitThreads Gauge32, cucsProcessorUnitVendor SnmpAdminString, cucsProcessorUnitVoltage CucsEquipmentSensorThresholdStatus, cucsProcessorUnitVisibility CucsMemoryVisibility, cucsProcessorUnitOperQualifierReason SnmpAdminString
cucsProcessorUnitEntry は、シーケンスまたは親で、特定のインスタンスに関連付けられていないため、アクセスできません。 オブジェクトはシーケンスまたは親の下に列挙されます。 テーブル内の行と考えるとわかりやすいかもしれません。 オブジェクトは特定の OID(数字オブジェクト名 + インスタンス)に対応しているため、個別に情報を収集できます。 シーケンスまたは親に対して snmpwalk コマンドを使用すると、基礎となるすべてのオブジェクトの応答が送られてきます。 ただし、オブジェクト名と OID をマッピングするには、変換ツールを使用する必要があります。
注:
Syntax 句は整数の形式を定義します。 たとえば、カウンタ 32、カウンタ 64、ゲージ 32、IP アドレスなどです。
Max-access は、読み取り/書き込み、読み取り/作成、またはアクセスなしを定義します。
Description は読んで字のごとくです。
Index はテーブル ID を指定します。
たとえば、cucsProcessorUnitOperStateObject に対して snmpwalk コマンドを使用すると、次のような結果が表示されます。
[root@localhost snmp]# snmpwalk -v2c -c public 14.17.2.121 .1.3.6.1.4.1.9.9.719.1.41.9.1.9SNMPv2-SMI::enterprises.9.9.719.1.41.9.1.9.1 = INTEGER: 1SNMPv2-SMI::enterprises.9.9.719.1.41.9.1.9.2 = INTEGER: 1
この要求に対して 2 つの応答があります。これは、サーバに 2 つのプロセッサが搭載されているためです。 応答は、cucsProcessorUnitOperState の 2 つのインスタンス(プロセッサごとに 1 つずつ)も反映しています。 OID 情報はこのタイプのすべてのオブジェクトに対してプルされます。 この例では、snmpwalk コマンドで MIB ツリー経由のパスが使用されます。 これを変換するために、MIB をローカルにロードすることも、SNMP MIB オブジェクトと OID を変換するツールを探すこともできます。
この例では、OID を変換するために変換ツールが使用されます。
.1.3.6.1.4.1.9.9.719.1.41.9.1.9 (path through the tree)cucsProcessorUnitOperState OBJECT-TYPE -- FROM CISCO-UNIFIED-COMPUTING-PROCESSOR-MIB -- TEXTUAL CONVENTION CucsEquipmentOperability SYNTAX Integer { unknown(0), operable(1), inoperable(2), degraded(3),poweredOff(4), powerProblem(5), removed(6), voltageProblem(7), thermalProblem(8), performanceProblem(9), accessibilityProblem(10), identityUnestablishable(11), biosPostTimeout(12), disabled(13), fabricConnProblem(51), fabricUnsupportedConn(52), config(81), equipmentProblem(82), decomissioning(83), chassisLimitExceeded(84), notSupported(100), discovery(101), discoveryFailed(102), identify(103), postFailure(104), upgradeProblem(105), peerCommProblem(106), autoUpgrade(107) } MAX-ACCESS read-only STATUS Current DESCRIPTION "Cisco UCS processor:Unit:operState managed object property" ::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) cisco(9) ciscoMgmt(9) ciscoUnifiedComputingMIB(719) ciscoUnifiedComputingMIBObjects(1) cucsProcessorObjects(41) cucsProcessorUnitTable(9) cucsProcessorUnitEntry(1) 9 }
オブジェクト タイプの上で、snmpwalk コマンドで使用された MIB ツリー経由のパスを確認できます。 1 の応答は、プロセッサが動作可能状態にあることを示します。
PC 上で snmpwalk コマンドを使用するには、アプリケーションを検索してインストールしなければならない場合があります。 Windows GUI SNMP アプリケーションも検索できます。
Mac はネイティブで動作します。
Linux で使用可能なパッケージがあります。 Centos または RedHat では、Net-SNMP が SNMP 機能をテストするコマンドライン アプリケーションです。 Centos または RedHat に Net-SNMP をインストールするには、次のコマンドを使用します。
yum install net-snmp-utils
注: MIB をロードして変換をローカルに実行する場合は、snmp.conf ファイルを作成して、必要な MIB を追加します。
特定の MIB が該当するバージョンのコードでサポートされていることを確認します。
管理対象デバイスの IP アドレスが到達可能なことを確認します。
ポートがファイアウォールで開いていることを確認します。
応答と不正パケットの問題に対して Wireshark または TCPDump トレースを使用します。 IP アドレスとポート(SNMP 用の UDP ポート 161、リコール トラップ用の UDP ポート 162)をフィルタリングします。
SNMP に関連した RFC は複数存在します。 以下にその一部を紹介します。
1155 か。 Tcp/ip ベース インターネットのための管理情報の構造および識別
1156 か。 Tcp/ip ベース インターネット(I) MIB のネットワーク管理のための管理情報ベース
1157 か。 簡易ネットワーク管理プロトコル
1213 か。 Tcp/ip ベース インターネット(II) MIB のネットワーク管理のための管理情報ベース
1441 か。 インターネット規定 Network Management Framework のバージョン 2 への紹介
1452 か。 インターネット規定 Network Management Framework のバージョン 1 とバージョン 2 間の共存
2578 か。 管理情報の構造 バージョン 2
3414 か。 簡易ネットワーク管理プロトコルのバージョン 3 のための User-based Security Model
3584 か。 インターネット規定 ネットワーク管理プロトコルのバージョン 1、バージョン 2 およびバージョン 3 間の共存