本文說明如何設定簡易網路管理通訊協定(SNMP)以監控Cisco 9800無線LAN控制器(WLC)。
所有測試均在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 Catalyst 9800系列無線控制器支援從Cisco IOS XE® Bengaluru 17.6.1乙太網服務埠(管理介面VRF/GigabitEthernet 0)。
在此版本之前,Catalyst 9800 WLC只能使用SNMP透過其無線管理介面或備援管理介面進行監控(如果是17.5.1版及更新版本上的HA叢集中的待命WLC)。
SNMPv2c是基於社群的SNMP版本,並且裝置之間的所有通訊都是明文的。SNMPv3是最安全的版本,它提供對資料包的消息完整性檢查、身份驗證和加密。SNMPv1相當過時,但仍能提供舊版軟體相容性。這篇文章沒有提到這一點。
1.登入9800 WLC的Web介面。在Administration > Management > SNMP下,確保全域性啟用SNMP。在Community Strings下,將顯示所有當前配置的社群及其許可權級別:

2.建立SNMP V3使用者之前,需要定義SNMP V3組。要建立具有讀+寫許可權的使用者組,請將Read View和Write View設定為v1default。將只讀組Write View欄位框保留為空:

3.在SNMP v3 Users頁籤下,您可以看到所有已配置的使用者,以及他們的許可權和用於身份驗證和加密的協定。New按鈕允許您建立新使用者。
有3種安全模式可用:
4.選擇SHA作為身份驗證協定,建議至少選擇AES-128作為隱私協定。

也可透過指令行介面(CLI)設定SNMP。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都是唯一的,不能有兩個,這類似於MAC地址。
這些識別符號與樹層次結構對齊,每個OID都可以追溯到其根目錄。每個供應商都有自己的分支機構,它們具有共同的根。一個類比可以是家庭地址,其根地址是國家或州,包括城市、郵遞區號、街道以及最終的家庭號碼。
以點為尾的數字表示到達樹或分支中的某個點所需的每一步驟。

所有這些值都儲存在管理資訊庫中,簡稱MIB儲存在每台網路裝置中。每個識別符號都有名稱和定義(可能值的範圍、型別等)。
使用SNMP查詢裝置時,不需要在SNMP監控工具上載入MIB。只要已知有效的OID,裝置就會使用OID所代表的變數中儲存的值進行響應。但是,如果將MIB載入到查詢工具中,則它提供了將對象名稱轉換為其ID並解釋其說明的好處。
在本示例中,SNMP工具使用OID 1.3.6.1.2.1.1.1.0查詢裝置的SNMP代理的系統說明。

思科為9800 WLC提供MIB。雖然不容易閱讀,但是MIB包含所有可用的對象名稱及其說明。
所有9800型號(9800-80、9800-40、9800-L、9800-CL、EWC)均使用可在Cisco Feature Navigator上下載的相同MIB。最新版本名稱使用的是最新日期,而不是代碼版本名稱較高的版本。
已下載的存檔檔案包含多個.my文本檔案,這些檔案可以匯入到任何第三方SNMP伺服器中,也可以使用文本編輯器直接開啟。要查詢特定對象名稱的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,而不是對象名稱。可以使用Cisco SNMP Object Navigator Tool在對象名稱和對象ID之間進行轉換。
若要使用此工具,請在搜尋欄中輸入對象名稱,輸出中提供OID和簡短說明。此外,可以使用同一工具查詢所提供OID的對象名稱。

獲取必須監視的對象的OID後,可以執行第一個SNMP查詢。本章中的示例展示如何獲取SNMPv2社群專用和SNMPv3使用者snmpadmin的WLC可用記憶體(OID = 1.3.6.1.4.1.9.48.1.1.1.5),以及SHA身份驗證密碼:Cisco123#和AES隱私密碼:Cisco123#。控制器管理介面位於: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編寫的,並利用pysnmp模組(pip安裝pysnmp)來執行SNMP查詢,以瞭解Catalyst 9800-CL WLC的記憶體利用率。這些示例使用前面章節中建立的同一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的整合,並包含將WLC憑證新增到Prime中。由於9800個WLC,Prime主要依靠遙測技術從WLC收集大部分詳細資訊,而一小部分資訊是通過SNMP獲得的。
另一方面,只要OID已知,Cisco WLC還可以與多個第三方監控解決方案整合。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取得資訊。
該表包括一些最常用的對象名稱及其OID,考慮了MIB以非使用者友好語法顯示資料:
| 說明 |
對象名稱 |
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 |
| 上次重新載入原因 |
為什麼重新載入 |
1.3.6.1.4.1.9.2.1.2 |
字串:"重新載入" |
| 所有加入的AP的軟體映像 |
bsnAPSsoftwareVersion |
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.72 |
整數 |
| 加入的AP數量 |
cLApGlobalAPConnectCount |
1.3.6.1.4.1.9.9.513.1.3.35 |
Gage32:1 |
| 電源裝置狀態 |
ciscoEnvMonSupplyStatusTable |
.1.3.6.1.4.1.9.9.13.1.5(通過CSCwb添加73163 |
表 |
| 風扇狀態 |
ciscoEnvMonFanStatus表 |
.1.3.6.1.4.1.9.9.13.1.4(通過CSCwb添加73163 |
表 |
目前,有一些增強請求處於思科錯誤ID下,用於支援OID的客戶端總數和加入的接入點數:CSCvu26309 - SNMP OID for Client Count not Present on 9800。
本文時不支援電源裝置(PSU)的狀態和風扇狀態。已在以下位置開啟增強請求:
思科錯誤ID:CSCwa23598 - 9800 WLC增強/支援PSU和風扇狀態SNMP OID(1.3.6.1.4.1.9.9.13)。
您可以從版本17.5.1監控高可用性集群中的備用WLC。可以直接通過RMI或查詢活動WLC來監控備用WLC。
只有在RMI + RP HA型別中運行的WLC才能直接監控待命WLC。這透過待命WLC的備援備援備援管理介面(RMI)IP位址完成。
在此案例中,僅支援IF-MIB的OID,因此可以監控待命WLC上所有介面的狀態。9800-CL WLC的輸出範例:
| 說明 |
對象名稱 |
OID |
預期響應 |
| 介面名稱 |
ifDescr |
1.3.6.1.2.1.2.2.1.2 |
SNMPv2-SMI::mib-2.2.2.1.2.1 = GigabitEthernet1 |
| 介面運行狀態(1=up, 2=down) |
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的值,而第二個回應代表待命WLC的值。
| 說明 |
對象名稱 |
OID |
預期響應 |
| 總CPU使用率(以過去5秒的百分比為單位) |
cpmCPUTotal5sec |
1.3.6.1.4.1.9.9.109.1.1.1.1.3 |
SNMPv2-SMI::enterprises.9.9.109.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.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.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.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.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.15.5 = 3763868 |
| 待命WLC的狀態(1=up, 0=down) |
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
|
初始版本 |