このドキュメントでは、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.9 SNMPv2-SMI::enterprises.9.9.719.1.41.9.1.9.1 = INTEGER: 1 SNMPv2-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 は複数存在します。以下にその一部を紹介します。
TCP/IPベースのインターネットの管理情報の構造と識別
TCP/IPベースのインターネット(MIB I)のネットワーク管理用1156
1157 Simple Network Management protocol
TCP/IPベースのインターネット(MIB II)のネットワーク管理用1213
1441 「インターネット標準ネットワーク管理フレームワークのバージョン2の概要」
1452 :インターネット標準ネットワーク管理フレームワークのバージョン1とバージョン2の共存
2578 の管理情報バージョン2
3414 SNMPバージョン3のユーザーベースのセキュリティモデル
3584:インターネット標準ネットワーク管理プロトコルのバージョン1、バージョン2、およびバージョン3の共存
改定 | 発行日 | コメント |
---|---|---|
1.0 |
12-Mar-2013 |
初版 |