簡介
本檔案介紹對安全網路裝置(SWA)中的簡易網路監控通訊協定(SNMP)進行疑難排解的步驟。
必要條件
需求
思科建議瞭解以下主題:
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
SNMP的運作方式
SNMP是一種應用層通訊協定,允許網路裝置在這些系統之間以及與網路外部的其他裝置交換管理資訊。
通過SNMP,網路管理員可以管理網路效能、查詢和解決網路問題,以及規劃網路增長。
SNMP使網路監控更經濟有效,並使網路更可靠。(如需有關SNMP的詳細資訊,請參閱RFC 1065、1066和1067。)
SNMP管理的網路由管理器、代理和受管裝置組成。
- Manager提供以人為本的網路管理器和管理系統之間的介面。
- 代理提供管理器和被管理的裝置之間的介面。
- 管理系統執行大多數管理過程,並提供用於網路管理的大量記憶體資源。
駐留在每個受管裝置上的代理將捕獲在軟體陷阱中的本地管理資訊資料(如效能資訊或事件和錯誤資訊)轉換為管理系統的可讀形式。
SNMP代理從管理資訊庫(MIB)(裝置引數和網路資料儲存庫)或從錯誤或更改陷阱中捕獲資料。
MIB
MIB是一種資料結構,它將SNMP網路元素描述為資料對象的清單。SNMP管理器必須為網路中的每種裝置型別編譯MIB檔案以監控SNMP裝置。
管理器和代理使用MIB和相對較小的一組命令來交換資訊。MIB以樹結構組織,各個變數表示為分支上的葉。
長數字標籤或對象識別符號(OID)用於在MIB和SNMP消息中唯一地區分每個變數。MIB將每個OID與可讀標籤以及與對象相關的各種其他引數相關聯。然後,MIB用作用於彙編和解釋SNMP消息的資料字典或代碼本。
當SNMP管理器想要知道對象的值(例如警報點的狀態、系統名稱或元素正常運行時間)時,它會組合包含每個感興趣對象的OID的GET資料包。元素接收該請求並查詢其代碼簿(MIB)中的每個OID。 如果找到OID(對象由元素管理),則組裝響應資料包並與所包括對象的當前值一起傳送。如果未找到OID,則傳送一個特殊的錯誤響應,用於標識非託管對象。
SNMP陷阱
SNMP陷阱使代理能夠通過未經請求的SNMP消息將重大事件通知管理站。SNMPv1和SNMPv2c,以及關聯的MIB,鼓勵陷阱定向通知。
陷阱導向通知的思想是,如果管理員負責大量裝置,並且每台裝置都有大量對象,則管理員從每台裝置上的每個對象輪詢或請求資訊是不切實際的。
解決方案是讓受管裝置上的每個代理在不請求的情況下通知管理器。它通過傳送稱為事件陷阱的消息來實現此目的。
在管理器收到事件後,它會顯示它,並且可以選擇根據事件採取措施。例如,管理器可以直接輪詢代理,也可以輪詢其他關聯的裝置代理,以便更好地理解事件。
陷阱導向型通知可消除輕率的SNMP請求,從而大幅節省網路和代理資源。但是,無法完全消除SNMP輪詢。
發現和拓撲更改需要SNMP請求。此外,如果裝置出現災難性中斷,受管裝置代理無法傳送陷阱。
RFC 1157中定義了SNMPv1陷阱,包括以下欄位:
SNMPv3
SNMPv3支援SNMP引擎ID識別符號,唯一標識每個SNMP實體。如果兩個SNMP實體具有重複的EngineID,則可能發生衝突。
EngineID用於為經過身份驗證的消息生成金鑰。(有關SNMPv3的詳細資訊,請參閱RFC 2571-2575)。
許多SNMP產品在SNMPv3下基本保持不變,但因以下新功能而得到增強:
- 管理
- 授權和訪問控制
- 邏輯上下文
- 實體、標識和資訊的命名
- 人員和政策
- 使用者名稱和金鑰管理
- 通知目標和代理關係
- 通過SNMP操作進行遠端配置
SNMPv3安全模型主要有兩種形式:驗證與加密:
- 身份驗證用於確保只有預期接收方讀取陷阱。建立消息後,將根據實體EngineID為其指定一個特殊金鑰。金鑰與預定收件人共用並用於接收郵件。
- 加密,隱私加密SNMP消息的負載,以確保未經授權的使用者無法讀取它。任何被攔截的陷阱中填充了亂七八糟的字元,並且無法讀取。在必須通過Internet路由SNMP消息的應用程式中,隱私尤其有用。
SNMP組中有三個安全級別:
- noAuthnoPriv -無身份驗證和隱私的通訊。
- authNoPriv — 使用身份驗證且無隱私的通訊。用於身份驗證的協議是消息摘要演算法5(MD5)和安全雜湊演算法(SHA)。
- authPriv — 與身份驗證和隱私進行通訊。用於身份驗證的協定是MD5和SHA,並且對於隱私,可以使用資料加密標準(DES)和高級加密標準(AES)協定。
SWA中的SNMP
AsyncOS作業系統支援通過SNMP進行系統狀態監控。
請注意:
-
預設情況下為SNMPisoffer。
-
未實現SNMPSET操作(配置)。
-
AsyncOS支援SNMPv1、v2和v3。
-
啟用SNMPv3時,消息驗證和加密是必需的。驗證和加密的密碼必須不同。
-
加密演算法可以是AES(推薦)或DES。
-
驗證演演算法可以是SHA-1(推薦)或MD5。
-
Thnmpconfig命令會在下次運行命令時「記得」您的密碼。
-
對於15.0之前的AsyncOS版本,SNMPv3使用者名稱是:v3get。
- 對於AsyncOS版本15.0及更高版本,默認SNMPv3使用者名稱是:v3get。作為管理員,您可以選擇任何其他使用者名稱。
如果只使用SNMPv1或SNMPv2,則必須設定社群字串。社群字串不會預設為public。
附註:可以使用主機名,但是如果使用,則陷阱僅在DNS工作時起作用。
配置SNMPMonitor
要配置SNMP以收集裝置的系統狀態資訊,請在CLI中使用thesnmpconfig命令。選擇並配置介面的值後,裝置將響應SNMPv3 GET請求。
使用SNMP時,請考慮以下幾點:
- 在SNMP第3版中,請求必須包含匹配的密碼。
- 預設情況下,系統會拒絕第1版和第2版請求。
- 如果啟用,則版本1和版本2請求必須具有匹配的社群字串。
SWA_CLI> snmpconfig
Current SNMP settings:
SNMP Disabled.
Choose the operation you want to perform:
- SETUP - Configure SNMP.
[]> SETUP
Do you want to enable SNMP? [Y]> Y
Please choose an IP interface for SNMP requests.
1. Management (10.48.48.184/24 on Management: wsa125to15-man.amojarra.calo)
2. P1 (192.168.13.184/24 on P1: wsa1255p1.amojarra.calo)
3. P2 (192.168.133.184/24 on P2: wsa1255p2.amojarra.calo)
[1]> 1
Which port shall the SNMP daemon listen on?
[161]> 161
Please select SNMPv3 authentication type:
1. MD5
2. SHA
[1]> 2
Please select SNMPv3 privacy protocol:
1. DES
2. AES
[1]> 2
Enter the SNMPv3 username or press return to leave it unchanged.
[v3get]> SNMPMUser
Enter the SNMPv3 authentication passphrase.
[]>
Please enter the SNMPv3 authentication passphrase again to confirm.
[]>
Enter the SNMPv3 privacy passphrase.
[]>
Please enter the SNMPv3 privacy passphrase again to confirm.
[]>
Service SNMP V1/V2c requests? [N]> N
Enter the Trap target as a host name, IP address or list of IP addresses
separated by commas (IP address preferred). Enter "None" to disable traps.
[10.48.48.192]>
Enter the Trap Community string.
[ironport]> swa_community
Enterprise Trap Status
1. CPUUtilizationExceeded Enabled
2. FIPSModeDisableFailure Enabled
3. FIPSModeEnableFailure Enabled
4. FailoverHealthy Enabled
5. FailoverUnhealthy Enabled
6. connectivityFailure Disabled
7. keyExpiration Enabled
8. linkUpDown Enabled
9. memoryUtilizationExceeded Enabled
10. updateFailure Enabled
11. upstreamProxyFailure Enabled
Do you want to change any of these settings? [N]> Y
Do you want to disable any of these traps? [Y]> N
Do you want to enable any of these traps? [Y]> Y
Enter number or numbers of traps to enable. Separate multiple numbers with
commas.
[]> 6
Please enter the URL to check for connectivity failure, followed by the
checking interval in seconds, separated by a comma:
[http://downloads.ironport.com,5]>
Enterprise Trap Status
1. CPUUtilizationExceeded Enabled
2. FIPSModeDisableFailure Enabled
3. FIPSModeEnableFailure Enabled
4. FailoverHealthy Enabled
5. FailoverUnhealthy Enabled
6. connectivityFailure Enabled
7. keyExpiration Enabled
8. linkUpDown Enabled
9. memoryUtilizationExceeded Enabled
10. updateFailure Enabled
11. upstreamProxyFailure Enabled
Do you want to change any of these settings? [N]>
Enter the System Location string.
[location]>
Enter the System Contact string.
[snmp@localhost]>
Current SNMP settings:
Listening on interface "Management" 10.48.48.184/24 port 161.
SNMP v3: Enabled.
SNMP v3 UserName: SNMPMUser
SNMP v3 Authentication type: SHA
SNMP v3 Privacy protocol: AES
SNMP v1/v2: Disabled.
Trap target: 10.48.48.192
Location: location
System Contact: snmp@localhost
Choose the operation you want to perform:
- SETUP - Configure SNMP.
[]>
SWA_CLI> commit
SWA MIB檔案
MIB檔案可從URL獲得:
使用每個MIB檔案的最新版本。
存在多個MIB檔案:
-
asyncoswebsecurityappliance-mib.txt是適用於安全Web裝置的企業MIB的兼容SNMPv2說明。
-
ASYNCOS-MAIL-MIB.txt是適用於郵件安全裝置的企業MIB的SNMPv2相容說明。
-
IRONPORT-SMI.txt此「管理資訊結構」檔案定義了asyncoswebsecurityappliance-mib的角色。
此版本實現了RFC 1213和1907中定義的MIB-II的只讀子集。
請參閱使用SNMP監控WSA裝置上的CPU使用率以瞭解有關使用SNMP的裝置上的CPU使用率監控的詳情。
SWA SNMP陷阱
SNMP提供傳送陷阱或通知的功能,以便在滿足一個或多個條件時通知管理應用程式。
陷阱是包含與傳送陷阱的系統元件相關的資料的網路資料包。
當SNMPagent(本例中為CiscoSecure Web Appliance)上滿足條件時生成陷阱。 在滿足條件後,SNMPagent會形成SNMP數據包並將其傳送到運行SNMP管理控制台軟體的主機。
當為接口啟用SNMP時,可以配置SNMPtraps(啟用或禁用特定陷阱)。
附註:要指定多個陷阱目標,請執行以下操作:當系統提示輸入陷阱目標時,最多可以輸入10個逗號分隔的IP地址。
connectivityFailure陷阱用於監控裝置與Internet的連線。它通過嘗試連線並每5到7秒向單個外部伺服器傳送一個HTTP GET請求來完成此操作。預設情況下,連線埠80上的受監控URL為downloads.ironport.com。
若要變更受監控的URL或連線埠,請執行snmpconfig命令並啟用connectivityFailure陷阱(即使已啟用)。您可以看到更改URL的提示。
提示:要模擬connectivityFailure陷阱,可以使用dnsconfig CLI命令輸入不工作的DNS伺服器。查詢downloads.ironport.com失敗,每5-7秒傳送一次陷阱。測試結束後,請務必將DNS伺服器更改回工作正常的伺服器。
建議的監視OID
這是要監控的建議MIB的清單,而不是詳盡的清單:
硬體OID |
名稱 |
1.3.6.1.4.1.15497.1.1.1.18.1.3 |
raidID |
1.3.6.1.4.1.15497.1.1.1.18.1.2 |
raid狀態 |
1.3.6.1.4.1.15497.1.1.1.18.1.4 |
raidLastError |
1.3.6.1.4.1.15497.1.1.1.10 |
風扇表 |
1.3.6.1.4.1.15497.1.1.1.9.1.2 |
攝氏度 |
這是OID直接對映到status detailCLI命令的輸出:
OID |
名稱 |
狀態詳細資訊欄位 |
系統資源 |
|
|
1.3.6.1.4.1.15497.1.1.1.2.0 |
百分之CPU利用率 |
CPU |
1.3.6.1.4.1.15497.1.1.1.1.0 |
記憶體利用率百分比 |
RAM |
每秒交易數 |
|
|
1.3.6.1.4.1.15497.1.2.3.7.1.1.0 |
cacheThruputNow |
最後一分鐘每秒平均事務數。 |
1.3.6.1.4.1.15497.1.2.3.7.1.2.0 |
cacheThruput1hrPeak |
上一小時每秒的最大事務數。 |
1.3.6.1.4.1.15497.1.2.3.7.1.3.0 |
cacheThruput1hrMean |
上一小時每秒平均事務數。 |
1.3.6.1.4.1.15497.1.2.3.7.1.8.0 |
cacheThruputLifePeak |
代理重新啟動後每秒最大事務數。 |
1.3.6.1.4.1.15497.1.2.3.7.1.9.0 |
cacheThruLifeMean |
代理重新啟動後每秒平均事務數。 |
頻寬 |
|
|
1.3.6.1.4.1.15497.1.2.3.7.4.1.0 |
cacheBwidthTotalNow |
最後一分鐘的平均頻寬。 |
1.3.6.1.4.1.15497.1.2.3.7.4.2.0 |
cacheBwidthTotal1hrPeak |
過去一小時內的最大頻寬。 |
1.3.6.1.4.1.15497.1.2.3.7.4.3.0 |
cacheBwidthTotal1hrMean |
過去一小時內的平均頻寬。 |
1.3.6.1.4.1.15497.1.2.3.7.4.8.0 |
cacheBwidthTotalLifePeak |
自代理重新啟動以來的最大頻寬。 |
1.3.6.1.4.1.15497.1.2.3.7.4.9.0 |
cacheBwidthTotalLifeMean |
代理重新啟動後的平均頻寬。 |
響應時間 |
|
|
1.3.6.1.4.1.15497.1.2.3.7.9.1.0 |
cacheHitsNow |
上一分鐘的平均快取命中率。 |
1.3.6.1.4.1.15497.1.2.3.7.9.2.0 |
cacheHits1hrPeak |
上一小時的最大快取命中率。 |
1.3.6.1.4.1.15497.1.2.3.7.9.3.0 |
cacheHits1hrMean |
過去一小時內的平均快取記憶體命中率。 |
1.3.6.1.4.1.15497.1.2.3.7.9.8.0 |
cacheHits生命峰值 |
自代理重新啟動以來的最大快取命中率。 |
1.3.6.1.4.1.15497.1.2.3.7.9.9.0 |
cacheHits生命平均值 |
自代理重新啟動以來的平均快取命中率。 |
快取命中率 |
|
|
1.3.6.1.4.1.15497.1.2.3.7.5.1.0 |
cacheHitsNow |
上一分鐘的平均快取命中率。 |
1.3.6.1.4.1.15497.1.2.3.7.5.2.0 |
cacheHits1hrPeak |
上一小時的最大快取命中率。 |
1.3.6.1.4.1.15497.1.2.3.7.5.3.0 |
cacheHits1hrMean |
過去一小時內的平均快取記憶體命中率。 |
1.3.6.1.4.1.15497.1.2.3.7.5.8.0 |
cacheHits生命峰值 |
自代理重新啟動以來的最大快取命中率。 |
1.3.6.1.4.1.15497.1.2.3.7.5.9.0 |
cacheHits生命平均值 |
自代理重新啟動以來的平均快取命中率。 |
連線 |
|
|
1.3.6.1.4.1.15497.1.2.3.2.7.0 |
cacheClientIdleConns |
空閒客戶端連線。 |
1.3.6.1.4.1.15497.1.2.3.3.7.0 |
cacheServerIdleConns |
空閒伺服器連線。 |
1.3.6.1.4.1.15497.1.2.3.2.8.0 |
cacheClientTotalConns |
客戶端連線總數。 |
1.3.6.1.4.1.15497.1.2.3.3.8.0 |
cacheServerTotalConns |
伺服器連線總數。 |
SNMP故障排除
要檢視SWA與SNMP管理器之間的連線,最好捕獲資料包,您可以將資料包捕獲過濾器設定為:(埠161或埠162)。
附註:此過濾器是由於預設的SNMP埠造成的。如果您已更改埠,請將配置的埠號放入資料包捕獲過濾器。
從SWA捕獲資料包的步驟:
步驟1.登入到GUI。
步驟2.在右上角選擇Support和Help。
步驟3.選擇Packet Capture。
步驟4.選擇Edit settings。
步驟5.確保選擇了正確的介面。
步驟6.輸入篩選條件。
映像 — 配置資料包捕獲過濾器
步驟7.選擇Submit。
步驟8.選擇Start Capture。
SNMPWALK
snmpwalk是自動運行多個GET-NEXT請求的SNMP應用程式的名稱。SNMP GET-NEXT請求用於查詢已啟用的裝置並從裝置獲取SNMP資料。之所以使用snmpwalk命令,是因為它允許使用者將GET-NEXT請求連結在一起,而無需為子樹中的每個和每個OID或節點輸入唯一的命令。
在Windows作業系統上安裝SNMPWALK
對於Microsoft Windows使用者,首先需要下載該工具。
在Linux核心上安裝SNMPWALK
#For Redhat, Fedora, CentOs:
yum install net-snmp-utils
#For Ubuntu:
apt-get install snmp
在MacOS上安裝SNMPWALK
預設情況下,snmpwalk安裝在MacOS上。
要生成SNMP GET請求,您可以從網路中與SWA連線的另一台電腦使用snmpwalk命令,下面是snmpwalk命令的一些示例:
snmpwalk -v2c -c
snmpwalk -v3 -l authPriv -u v3get -a SHA -A
-x AES -X
附註:您可以根據您的SWA配置,選擇將安全級別設定為noAuthNoPriv、authNoPriv或authPriv。
SNMPTRAP
snmptrap是一個隱藏的CLI命令,它要求在SWA上啟用SNMP。您可以通過選擇對象和陷阱來生成SNMP陷阱,如本例所示:
SWA_CLI>snmptrap
1. CPUUtilizationExceeded
2. FIPSModeDisableFailure
3. FIPSModeEnableFailure
4. FailoverHealthy
5. FailoverUnhealthy
6. connectivityFailure
7. keyExpiration
8. linkUpDown
9. memoryUtilizationExceeded
10. updateFailure
11. upstreamProxyFailure
Enter the number of the trap you would like to send.
[]> 8
1. CPUUtilization
2. FIPSApplicationName
3. FailoverApplicationName
4. RAIDEvents
5. RAIDID
6. connectionURL
7. ifIndex
8. ip
9. keyDescription
10. memoryUtilization
11. raidStatus
12. updateServiceName
Enter the number of the object you would like to send.
[]> 8
Enter the trap value.
[]> 10.20.3.15
Enter the user name
[admin]> SNMPuser
Please select Trap Protocol version:
1. 2c
2. 3
[1]> 2
SWA中的SNMP日誌
SWA有兩個與SNMP相關的日誌。與Web代理元件相關的某些日誌型別未啟用,但可以從以下位置啟用它們:
- 在GUI中:系統管理>日誌訂閱
- 在CLI中:logconfig > new
日誌檔案型別 |
說明 |
是否支援Syslog推送? |
預設啟用? |
SNMP日誌 |
記錄與SNMP網路管理引擎相關的調試消息。 |
是 |
是 |
SNMP模組日誌 |
記錄與與SNMP監控系統互動相關的Web代理消息。 |
否 |
否 |
SNMP的常見問題
某些OID失敗(無值或值錯誤)
此問題與SNMP請求相關。以下是預期輸出和錯誤輸出的兩個示例:
Sample Output without Error:
$ snmpwalk -O a -v 3 -M "/var/lib/mibs/" -m "ALL" -l authPriv -a MD5 -x DES -u v3get -A xxx -X xxx proxy 1.3.6.1.4.1.15497.1.1.1.9
iso.3.6.1.4.1.15497.1.1.1.9.1.1.1 = INTEGER: 1
iso.3.6.1.4.1.15497.1.1.1.9.1.2.1 = INTEGER: 22
iso.3.6.1.4.1.15497.1.1.1.9.1.3.1 = STRING: "Ambient"
Sample Output with Error:
$ snmpwalk -O a -v 3 -M "/var/lib/mibs/" -m "ALL" -l authPriv -a MD5 -x DES -u v3get -A xxx -X xxx proxy 1.3.6.1.4.1.15497.1.1.1.9
iso.3.6.1.4.1.15497.1.1.1.9 = No Such Instance currently exists at this OID
您可以在snmp_logs中檢查Application Faults。
您可以通過輸入SWA_CLI> grep命令,然後選擇與snmp_logs關聯的編號來檢查snmp_logs:
SWA_CLI> grep
Currently configured logs:
1. "accesslogs" Type: "Access Logs" Retrieval: FTP Poll
2. "adc_logs" Type: "ADC Engine Logs" Retrieval: FTP Poll
...
37. "snmp_logs" Type: "SNMP Logs" Retrieval: FTP Poll
...
Enter the number of the log you wish to grep.
[]> 37
Enter the regular expression to grep.
[]>
Do you want this search to be case insensitive? [Y]>
Do you want to search for non-matching lines? [N]>
Do you want to tail the logs? [N]> y
Do you want to paginate the output? [N]>
參考