このドキュメントでは、Cisco 9800 ワイヤレス LAN コントローラ(WLC)をモニターするための Simple Network Management Protocol(SNMP)の設定方法について説明します。
すべてのテストは、MacOS 10.14 およびイメージバージョン 17.5.1 の 9800-CL WLC で実行されました。この記事に記載されている一部の OID は、古いイメージバージョンには存在しません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
古いAireOS WLCは、モニタするメインプロトコルとしてSNMPに依存しています。クライアント数、参加しているアクセスポイントの数、プロセッサおよびメモリの使用量などの関連情報の大部分は、WLCをモニタするツールからSNMPクエリを使用して取得できます。
9800 WLCでは、テレメトリに重点が置かれています。テレメトリは「プッシュ」モデルで動作します。このモデルでは、WLCはクエリーを必要とせずに関連情報をサーバに送信します。Catalyst 9800では、従来の目的に対して引き続きSNMPを提供しています。一部の情報はテレメトリ専用の場合があります。また、以前 AireOS で利用できていた OID の一部が、9800 ではまだ利用できない場合もあります。
Cisco IOS XE® Bengaluru 17.6.1以降では、Cisco Catalyst 9800シリーズワイヤレスコントローラでイーサネットサービスポート(管理インターフェイスVRF/GigabitEthernet 0)がサポートされます。
このリリースより前のCatalyst 9800 WLCは、ワイヤレス管理インターフェイス(WMM)またはリダンダンシーマネジメントインターフェイス(バージョン17.5.1以降のHAクラスタのスタンバイWLCの場合)経由でのみSNMPを使用してモニタできます。
SNMPv2c は SNMP のコミュニティベースのバージョンであり、デバイス間のすべての通信はクリアテキストで行われます。SNMPv3は、メッセージ整合性チェック、認証、およびパケットの暗号化を提供する最も安全なバージョンです。SNMPv1はかなり旧式ですが、レガシーソフトウェアの互換性を確保するために存在しています。この記事では取り上げません。
1. 9800 WLCのWebインターフェイスにログインします。Administration > Management > SNMPの順に選択し、SNMPがグローバルに有効になっていることを確認します。Community Stringsの下に、現在設定されているすべてのコミュニティとその権限レベルが表示されます。

2. SNMP V3ユーザを作成する前に、SNMP V3グループを定義する必要があります。読み取り+書き込み権限を持つユーザグループを作成するには、読み取りビューと書き込みビューをv1defaultに設定します。読み取り専用グループの書き込みビューフィールドボックスは空のままにします。

3. SNMP v3 Usersタブには、設定されているすべてのユーザと、認証および暗号化に使用されるユーザの権限とプロトコルが表示されます。Newボタンを使用すると、新しいユーザを作成できます。
使用可能なセキュリティモードは次の 3 つです。
4. 認証プロトコルとしてSHAを選択し、プライバシープロトコルとして少なくともAES-128を推奨します。

SNMP は、コマンド ライン インターフェイス(CLI)から設定することもできます。 CLIは、v2コミュニティやv3ユーザにアクセスリストを割り当てる機能など、追加の設定パラメータを提供します。v2読み取り+書き込みコミュニティ、v3読み取り+書き込みグループ、およびこのグループに属するv3ユーザの設定例を次に示します。
snmp-server manager
snmp-server community RW
snmp-server community RO
snmp-server group v3 auth write v1default
snmp-server user v3 auth sha priv aes 128 access
IPアドレス192.168.10.10でのみデバイスを許可するアクセスリストの例を次に示します。「ReadWriteCommunity」という名前のWLC v2コミュニティを照会するには、次のコマンドを実行します。
ip access-list standard 50
10 permit 192.168.10.10
20 deny any
snmp-server manager
snmp-server community ReadWriteCommunity RW 50
オブジェクト ID(OID)は、特定の変数またはオブジェクトを表す一意の識別子です。たとえば、現在のプロセッサ使用率は変数とみなされ、オブジェクトIDの呼び出しによって値を取得できます。各OIDは一意であり、2つのOIDを同じにすることはできません。これはMACアドレスに似ています。
これらの識別子はツリー階層と一致し、各OIDをルートまで追跡できます。各ベンダーは、共通のルートを持つ独自のブランチを持ちます。自宅の住所に例えると、ルートは国または州で、住所の市区町村、郵便番号、番地、最後に自宅の電話番号が表示されます。
ドット(.)で始まる番号は、そのツリーまたはブランチの特定のポイントに到達するために必要な各ステップを表します。

これらの値はすべて、各ネットワークデバイスのManagement Information Base(MIB;管理情報ベース)に保存されます。各識別子には、名前と定義(指定可能な値の範囲、タイプなど)があります。
SNMPを使用してデバイスにクエリーを送信するために、SNMPモニタリングツールにMIBをロードする必要はありません。有効なOIDがわかっている限り、デバイスはOIDが表す変数に格納された値で応答します。ただし、クエリーツールでMIBをロードすると、オブジェクト名をIDに変換して説明を説明できるという利点があります。
この例では、SNMPツールはOID 1.3.6.1.2.1.1.1.0を使用してデバイスのSNMPエージェントにシステム説明を照会します。

シスコでは、9800 WLC用のMIBを提供しています。MIBは簡単に読み取ることはできませんが、MIBには利用可能なすべてのオブジェクト名とその説明が含まれています。
9800の全モデル(9800-80、9800-40、9800-L、9800-CL、EWC)で同じMIBが使用されており、Cisco Feature Navigatorからダウンロードできます。最も新しい日付は、より高いコードバージョン名の日付ではなく、最新の日付です。
ダウンロードされたアーカイブファイルには、サードパーティのSNMPサーバにインポートしたり、テキストエディタで開いたりできる複数の.myテキストファイルが含まれています。特定のオブジェクト名のOIDを見つけるには、そのOIDを含む正確なファイルを最初に見つける必要があります。
たとえば、デバイスの物理状態(CPUやメモリなど)の監視に関連するすべてのオブジェクトは、CISCO-PROCESS-MIB.myというMIB内にあります。
「cpmCPUMemoryUsed」は、WLCが使用するメモリの量(バイト単位)を提供するために使用されるオブジェクト名です。MIBファイルはすべて同様の構文に対応しています。使用されているメモリオブジェクトに関する情報は、次のようになります。
cpmCPUMemoryUsed OBJECT-TYPE
SYNTAX Gauge32
UNITS "kilo-bytes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The overall CPU wide system memory which is currently
under use."
::= { cpmCPUTotalEntry 12 }
監視するサードパーティ製ソフトウェアのほとんどはOIDに依存し、オブジェクト名には依存しません。オブジェクト名とオブジェクトIDの変換は、Cisco SNMP Object Navigatorツールを使用して実行できます。
このツールを使用するには、オブジェクト名を検索バーに入力します。出力にはOIDと簡単な説明が表示されます。 また、同じツールを使用して、提供されたOIDのオブジェクト名を検索できます。

取得後、監視する必要があるオブジェクトのOIDである最初のSNMPクエリを実行できます。 この章の例では、SHA認証パスワードCisco123#およびAESプライバシーパスワードCisco123#を使用して、SNMPv2コミュニティプライベートおよびSNMPv3ユーザsnmpadmin用のWLCの空きメモリ(OID = 1.3.6.1.4.1.9.9.48.1.1.1.5)を取得する方法を示しています。コントローラ管理インターフェイスは10.48.39.133にあります。
Snmpwalk は、SNMP GETNEXT 要求を使用して情報ツリーのネットワークエンティティをクエリする SNMP アプリケーションです。これは MacOS およびほとんどの Linux ディストリビューションにデフォルトで存在します。SNMPv2cの場合、このコマンドは次の構文に準拠しています。
snmpwalk -v2c -c
次に別の例を示します。
VAPEROVI:~ vaperovi$ snmpwalk -v2c -c private 10.48.39.133 1.3.6.1.4.1.9.9.109.1.1.1.1.12
SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.12.2 = 3783236 <-------- Free Memory in Bytes
SNMPv3を使用する場合、コマンドは次の構文に従います。
snmpwalk -v3 -l authPriv -u <username> -a [MD5|SHA] -A <auth_password> -x [AES|DES] -X <priv_password> <WLC_management_interface_ip> <OID>
コントローラで SNMPv3 ユーザーを作成した方法に応じて、[MD5/SHA] と [AES/DES] を選択します。次に別の例を示します。
VAPEROVI:~ vaperovi$ snmpwalk -v3 -l authPriv -u snmpadmin -a SHA -A Cisco123# -x AES -X Cisco123# 10.48.39.133 1.3.6.1.4.1.9.9.109.1.1.1.1.12
SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.12.2 = 3783236 <-------- Free Memory in Bytes
#snmpwalk output still shows v2 even though v3 is used
コードスニペットはPython 3.9用に記述されており、Catalyst 9800-CL WLCのメモリ使用率を確認するためにSNMPクエリを実行するには、pysnmpモジュール(pip install pysnmp)を使用します。これらの例では、前の章で作成したものと同じSNMPv2コミュニティとSNMPv3ユーザを使用します。シンプルに変数値を置き換えて、コードを独自のカスタムスクリプト内に統合します。
SNMPv2例:
from pysnmp.hlapi import *
communityName = 'private'
ipAddress = '10.48.39.133'
OID = '1.3.6.1.4.1.9.9.109.1.1.1.1.12'
for (errorIndication,
errorStatus,
errorIndex,
varBinds) in nextCmd(SnmpEngine(),
CommunityData(communityName),
UdpTransportTarget((ipAddress, 161)),
ContextData(),
ObjectType(ObjectIdentity(OID)),
lexicographicMode=False):
if errorIndication:
print(errorIndication)
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
else:
for varBind in varBinds:
print(' = '.join([x.prettyPrint() for x in varBind]))
出力内容は次のとおりです。
SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.12.2 = 3783236
SNMPv3例:
from pysnmp.hlapi import *
username = 'snmpadmin'
ipAddress = '10.48.39.133'
OID = '1.3.6.1.4.1.9.9.109.1.1.1.1.12'
authKey = 'Cisco123#'
privKey = 'Cisco123#'
for (errorIndication,
errorStatus,
errorIndex,
varBinds) in nextCmd(SnmpEngine(),
UsmUserData(username, authKey, privKey,
authProtocol=usmHMACSHAAuthProtocol,
privProtocol=usmAesCfb128Protocol),
UdpTransportTarget((ipAddress, 161)),
ContextData(),
ObjectType(ObjectIdentity(OID)),
lexicographicMode=False):
if errorIndication:
print(errorIndication)
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
else:
for varBind in varBinds:
print(' = '.join([x.prettyPrint() for x in varBind]))
Cisco Prime Infrastructure では、ワイヤレスコントローラを含む複数のネットワークデバイスを簡単にモニターおよび設定することができます。Prime InfrastructureにはすべてのOIDがプリロードされており、WLCとの統合が可能です。PrimeにWLCクレデンシャルを追加します。9800 WLCの場合、Primeはほとんどの場合、WLCからの詳細の大部分をテレメトリに依存して収集しますが、情報のごく一部をSNMPから取得します。
一方、Cisco WLCは、OIDが既知である限り、モニタリングのために複数のサードパーティソリューションと統合することもできます。Grafana+Prometheus、PRTG Network Monitor、SolarWindsサーバなどのプログラムを使用すると、MIBまたはOIDをインポートして、値を使いやすいグラフで表示できます。
この統合では、SNMPサーバ側の微調整が必要になる場合があります。この例では、PRTGモニタサーバにコアごとのCPU使用率OIDが提供され、文字列「0%/1%、1%/1%、0%/1%、0%/1%」が返されます。PRTG は整数値を予期しているため、エラーが発生します。

Cisco Unified Communications Manager(CUCM)には、ワイヤレスエンドポイントトラッキング機能があり、クライアントが接続しているAPに基づいてクライアントの場所を概算で追跡できます。この機能を機能させるには、CUCMはSNMPクエリを使用してWLCから情報を取得する必要があります。
MIB がユーザーフレンドリでない構文でデータを提示することを考慮して、次の表に、最も一般的なオブジェクト名とその OID をいくつか記載しています。
| 説明 |
Object Name |
OID |
予測される応答 |
| 過去 5 秒間の全体の CPU 使用率(「show process cpu platform」と同等) |
cpmCPUTotal5sec |
1.3.6.1.4.1.9.9.109.1.1.1.1.3 |
整数:5 |
| 過去 1 分間の全体の CPU 使用率(%) |
cpmCPUTotal1min |
1.3.6.1.4.1.9.9.109.1.1.1.1.4 |
整数:5 |
| 過去 5 分間の全体の CPU 使用率(%) |
cpmCPUTotal5min |
1.3.6.1.4.1.9.9.109.1.1.1.1.5 |
整数:5 |
| コアごとの過去 5 分間の CPU 使用率(%) |
cpmCore5min |
.1.3.6.1.4.1.9.9.109.1.1.2.1.5.5(コア数に応じて .0 ~ .X) |
整数:5 |
| 現在使用中のメモリ(バイト単位) |
cpmCPUMemoryUsed |
1.3.6.1.4.1.9.9.109.1.1.1.1.12 |
整数:3783236 |
| 現在の空きメモリ(バイト単位) |
cpmCPUMemoryFree |
1.3.6.1.4.1.9.9.109.1.1.1.1.13 |
整数:4263578 |
| 前回の起動以降の空きメモリの最小量(バイト) |
cpmCPUMemoryLowest |
1.3.6.1.4.1.9.9.109.1.1.1.1.15 |
整数:4251212 |
| 最後にリロードした理由 |
whyReload |
1.3.6.1.4.1.9.2.1.2 |
文字列:「reload」 |
| 接続したすべての AP のソフトウェアイメージ |
bsnAPSoftwareVersion |
1.3.6.1.4.1.14179.2.2.1.1.8 |
文字列:「17.5.1.12」 |
| 接続しているすべての AP のモデル番号 |
bsnAPModel |
1.3.6.1.4.1.14179.2.2.1.1.16 |
文字列:「AIR-AP1840I-E-K9」 |
| クライアントの数 |
cLApActiveClientCount |
.1.3.6.1.4.1.9.9.513.1.1.1.1.72 |
整数 |
| 接続済み AP の数 |
cLApGlobalAPConnectCount |
1.3.6.1.4.1.9.9.513.1.3.35 |
Gauge32: 1 |
| 電源装置の状態 |
ciscoEnvMonSupplyStatusTable |
.1.3.6.1 .4.1.9.9.13.1.5(CSCwb73163で追加) |
テーブル |
| ファンの状態 |
ciscoEnvMonFanStatusTable |
テーブル |
現在、OIDのクライアント総数と参加アクセスポイント数をサポートするための拡張要求がオープンになっています。これは、Cisco Bug ID CSCvu26309(9800にはクライアントカウントのSNMP OIDがない)に記載されています。
この記事の時点では、電源装置(PSU)の状態とファンの状態はサポートされていません。拡張機能の要求が次の場所で開かれました:
Cisco Bug ID:CSCwa23598 - 9800 WLCの機能拡張/PSUおよびファンステートSNMP OIDのサポート(1.3.6.1.4.1.9.9.13)
リリース17.5.1以降のハイアベイラビリティクラスタでは、スタンバイWLCをモニタできます。スタンバイWLCは、RMIを使用して直接監視することも、アクティブWLCに対してクエリーを実行して監視することもできます。
スタンバイWLCは、RMI + RP HAタイプで稼働するWLCに対してのみ直接監視できます。これは、スタンバイWLCのスタンバイ冗長管理インターフェイス(RMI)のIPアドレスを介して実行されます。
このシナリオでは、IF-MIBからのOIDのみがサポートされ、スタンバイWLCですべてのインターフェイスの状態を監視できます。9800-CL WLCからの出力例を次に示します。
| 説明 |
Object Name |
OID |
予測される応答 |
| Interface Name |
ifDescr |
1.3.6.1.2.1.2.2.1.2 |
SNMPv2-SMI::mib-2.2.2.1.2.1 = GigabitEthernet1 |
| インターフェイスの動作状態(1 = アップ、2 = ダウン) |
ifOperStatus |
1.3.6.1.2.1.2.2.1.8 |
SNMPv2-SMI::mib-2.2.2.1.8.1 = 2 |
スタンバイWLCの状態は、アクティブWLCへのクエリを使用してモニタすることもできます。CISCO-LWAPP-HA-MIB および CISCO-PROCESS-MIB MIB のみが正式にサポートされています。HA内のアクティブWLCが照会されると、最初の応答はアクティブWLCの値を表し、2番目の応答はスタンバイWLCの値を表します。
| 説明 |
Object Name |
OID |
予測される応答 |
| 過去 5 秒間の全体の CPU 使用率(%) |
cpmCPUTotal5sec |
1.3.6.1.4.1.9.9.109.1.1.1.1.3 |
SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.3.5 = 3 |
| 過去 1 分間の全体の CPU 使用率(%) |
cpmCPUTotal1min |
1.3.6.1.4.1.9.9.109.1.1.1.1.4 |
SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.4.5 = 8 |
| 過去 5 分間の全体の CPU 使用率(%) |
cpmCPUTotal5min |
1.3.6.1.4.1.9.9.109.1.1.1.1.5 |
SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.5.5 = 10 |
| 現在使用中のメモリ(バイト単位) |
cpmCPUMemoryUsed |
1.3.6.1.4.1.9.9.109.1.1.1.1.12 |
SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.12.5 = 4318980 |
| 現在の空きメモリ(バイト単位) |
cpmCPUMemoryFree |
1.3.6.1.4.1.9.9.109.1.1.1.1.13 |
SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.12.5 = 4318739 |
| 前回の起動以降の空きメモリの最小量(バイト) |
cpmCPUMemoryLowest |
1.3.6.1.4.1.9.9.109.1.1.1.1.15 |
SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.15.5 = 3763868 |
| スタンバイ WLC の状態(1 = アップ、0 = ダウン) |
cLHaPeerHotStandbyEvent |
1.3.6.1.4.1.9.9.843.1.3.4 |
SNMPv2-SMI::enterprises.9.9.843.1.3.4.0 = 1 |
| 改定 | 発行日 | コメント |
|---|---|---|
8.0 |
27-Oct-2026
|
スペル、文法、間隔、読みやすさを考慮したセクションへの水平線の挿入、CCWアラートの修正、代替テキストが更新されました。 |
7.0 |
01-Jul-2025
|
ファン、電源、およびクライアント数のOIDを追加 |
6.0 |
31-Mar-2025
|
固定MIB URL |
5.0 |
15-Nov-2023
|
CPUコアOIDごとに追加 |
4.0 |
01-Apr-2022
|
追加のOIDが記載されています |
2.0 |
01-Oct-2021
|
初版リリース |
1.0 |
12-Oct-2021
|
初版 |