简介
本文档介绍简单网络管理协议(SNMP)及其如何在设备上测试功能。
要求
先决条件
Cisco建议您了解SNMP协议及其与网络管理系统(NMS)服务器的通信。
使用的组件
本文档中的信息基于以下软件和硬件版本:
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
规则
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
排除最常见的错误
1.错误消息:“%SNMP-3-RESPONSE_DELAYED:正在处理“任何OID”的GetNext。”
GetNext of ciscoMgmt.810.1.2.1.1 (24004 msecs)
*May 24 01:30:48.463: %SNMP-3-RESPONSE_DELAYED: processing GetNext of ciscoMgmt.810.1.2.1.1 (24008 msecs)
---> In this scenario ciscoMgmt.810.1.2.1.1 is the OID causes the issue.
*May 24 01:31:12.477: %SNMP-3-RESPONSE_DELAYED: processing GetNext of ciscoMgmt.810.1.2.1.1 (24012 msecs)
*May 24 01:31:36.486: %SNMP-3-RESPONSE_DELAYED: processing GetNext of ciscoMgmt.810.1.2.1.1 (24008 msecs)
*May 24 01:32:00.503: %SNMP-3-RESPONSE_DELAYED: processing GetNext of ciscoMgmt.810.1.3.1.1 (24016 msecs)
*May 24 01:32:24.515: %SNMP-3-RESPONSE_DELAYED: processing GetNext of ciscoMgmt.810.1.3.1.1 (24012 msecs)
*May 24 01:32:48.528: %SNMP-3-RESPONSE_DELAYED: processing GetNext of ciscoMgmt.810.1.3.1.1 (24012 msecs)
*May 24 01:33:12.537: %SNMP-3-RESPONSE_DELAYED: processing GetNext of ciscoMgmt.810.1.3.1.1 (24008 msecs)
要排除的故障:
检查设备上的SNMP配置。 对于SNMPv2,它需要如下所示:
snmp-server community TAC1 RO
snmp-server community TAC2 RO --> If multiple communities are added to device.
对于SNMPv3:
snmp-server view TESTV3 iso include
#snmp-server group TestGroupV3 v3 auth read TESTV3
#snmp-server user cisco TestGroupV3 v3 auth md5 ciscorules priv des56 cisco123
进入设备的配置模式并将视图添加到SNMP配置以更改配置。
对于SNMPv2:
snmp-server community TAC1 RO view cutdown RO
snmp-server community TAC2 RO view cutdown RO
配置模式中的某些行:
snmp-server view cutdown iso included
snmp-server view cutdown ciscoMgmt.810 excluded -->>>
The Idea is to exclude the OID causes the issue, however,
please read out what is the function of the OID that that is excluded.
对于SNMPv3:
#snmp-server view TESTV3 internet included
#snmp-server view TESTV3 ciscoMgmt.810 excluded
#snmp-server group TestGroupV3 v3 priv write TESTV3
2.错误消息“由于SNMP闪存缓存导致CPU使用率过高”。
#show processes cpu sorted
CPU utilization for five seconds: 99%/0%; one minute: 22%; five minutes: 18%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
447 561399 143012 3925 0.00% 1.58% 1.83% 0 Snmp Flash Cache
SNMP日志:
%SYS-2-SIGPENDING:将多个信号发送到进程91 -Process= "Snmp Flash Cache", ipl= 0, pid= 91。
888888888888888888888888888888888888888888888898878889
625424254283314655456532533533772205363424335694492379
100 * *
90 * * * * *** *** * * ** * * *** **
80 ******************************************************
70 ******************************************************
60 ******************************************************
50 ******************************************************
40 ######################################################
30 ######################################################
20 ######################################################
10 ######################################################
0....5....1....1....2....2....3....3....4....4....5....5....6....6....7..
解决方法:
闪存MIB数据收集过程默认处于禁用状态。如果使用snmp mib flash cache命令启用此功能(可能在重新加载之后),则在某些情况下,它可能会导致高CPU。
相反,请在配#no模式下使用snmp mib flash cache命令。
或安装此EEM脚本:
event manager applet SNMP authorization bypass
event syslog pattern "SYS-5-RESTART"
action 11 cli command "enable"
action 12 cli command "conf t"
action 13 cli command "no snmp mib flash cache"
action 14 cli command "end"
3.错误消息:“%SNMP-3-INPUT_QFULL_ERR:由于输入队列已满而丢弃的数据包”
队列已满错误的可能原因可能是设备上的大量轮询或导致问题的特定OID。要缓解此问题,首先检查设备是否已进行大量轮询。
为此,请执行以下命令:
B02#show snmp stats oid
time-stamp #of times requested OID
15:40:19 BKK Dec 27 2019 11180008 ifAlias
15:40:19 BKK Dec 27 2019 44018183 dot1dBasePortEntry.4
15:40:19 BKK Dec 27 2019 44018212 dot1dBasePortEntry.3
15:40:19 BKK Dec 27 2019 45216156 ipNetToPhysicalEntry.4
15:40:19 BKK Dec 27 2019 44018059 dot1dBasePortEntry.5
15:40:19 BKK Dec 27 2019 44578303 dot1dBasePortEntry.1
15:40:19 BKK Dec 27 2019 6011756 dot3StatsEntry.19
15:40:19 BKK Dec 27 2019 11095925 ifSpeed
15:40:19 BKK Dec 27 2019 12879927 dot1dTpFdbEntry.3
15:40:19 BKK Dec 27 2019 84535 vmMembershipSummaryEntry.2
15:40:19 BKK Dec 27 2019 3241107 vmMembershipSummaryEntry.3
15:40:19 BKK Dec 27 2019 45208908 ipNetToMediaEntry.2
15:40:19 BKK Dec 27 2019 45223410 ipNetToPhysicalEntry.6
15:40:19 BKK Dec 27 2019 44018324 dot1dBasePortEntry.2
要排除的故障:
您需要更改NMS上的设置并缩短设备的轮询间隔。轮询间隔缩短后,必须减少队列已满错误。 如果不是,则需要检查导致问题的OID。要查找导致问题的OID并对其进行故障排除,请参阅前面提到的错误消息1。
4.错误消息:“由于SNMP引擎导致CPU使用率过高”。
识别问题:
当客户端轮询路由器时,路由器的CPU使用率较高,这可以在该CPU使用率较高时使用#show process cpu <sorted>命令进行检查。您可以看到SNMP引擎进程占用了所有CPU资源:
#show processes cpu sorted
CPU utilization for five seconds: 99%/0%; one minute: 22%; five minutes: 18%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
189 1535478456 697105815 2202 88.15% 13.40% 8.74% 0 SNMP ENGINE
有问题的OID导致高CPU速度比其他OID慢,这也会导致客户端请求此OID时超时。大多数方法尝试查找提供较慢答案的OID。这是因为它们最有可能导致CPU使用率过高。识别OID后,您可以锁定相应的OID以缓解错误。
注:如果此处列出的方法均无法帮助确定导致问题的OID,请通过TAC提交支持请求。
方法 1.使用show snmp stats oid命令。
show snmp stats oid命令显示轮询的最后一个OID。它按顺序显示时间戳,目标是标识响应缓慢的OID。如果您希望查找客户端轮询的MIB较频繁,此命令也很有用。
#show snmp stats oid
time-stamp #of times requested OI
14:34:38 CET Oct 25 2020 24 atEntry.2
14:34:29 CET Oct 25 2020 40 atEntry.1
14:34:11 CET Oct 25 2020 11 ifOutErrors
14:34:07 CET Oct 25 2020 10 ifOutDiscards
14:34:06 CET Oct 25 2020 10 ifOutUcastPkts
14:34:06 CET Oct 25 2020 10 ifOutOctets
14:34:05 CET Oct 25 2020 10 ifInUnknownProtos
您可以看到Entry.1计算耗时18秒,这表明CPU正忙于计算此数据。
方法 2.观察SNMP客户端。
要查找导致设备上CPU使用率较高的OID,可以从NMS服务器启动到设备并观察输 snmpwalk 出。响应速度慢于其他OID的OID可能是导致CPU使用率较高的OID。
要排除的故障:
检查设备上的SNMP配置。 对于SNMPv2,它需要如下所示:
snmp-server community TAC1 RO
snmp-server community TAC2 RO --> If multiple communities are added to snmp.
snmp-server view TESTV3 iso include
#snmp-server group TestGroupV3 v3 auth read TESTV3
#snmp-server user cisco TestGroupV3 v3 auth md5 ciscorules priv des56 cisco123
进入设备的配置模式并将视图添加到SNMP配置以更改配置。
snmp-server community TAC1 RO view cutdown RO
snmp-server community TAC2 RO view cutdown RO
在配置模式下添加以下行:
snmp-server view cutdown iso included
snmp-server view cutdown OID _causes_the issue_is _to_excluded excluded
-->>> The Idea is to exclude the OID causes the issue, however,
please read out what is the function of the OID that we are about to exclude.
相关信息