目录

简介

先决条件

要求

使用的组件

排除最常见的错误

相关信息

简介

本文档介绍一些简单网络管理协议(SNMP)故障排除场景。

先决条件

要求

思科建议您了解以下内容：

- SNMPv2c和SNMPv3协议操作

- Cisco IOS® XE命令行界面(CLI)

使用的组件

本文档中的信息基于以下软件和硬件版本：

- Cisco Catalyst 3650 系列交换机

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

排除最常见的错误

1.错误消息："%SNMP-3-RESPONSE_DELAYED:正在处理<OID>(<elapsed-time> msecs)的GetNext

在本示例中，ciscoMgmt.810.1.2.1.1是与延迟的GetNext请求关联的OID。在确定根本原因之前，将重复消息与CPU利用率、NMS轮询记录和版本特定缺陷相关联：

*May 24 01:30:48.463: %SNMP-3-RESPONSE_DELAYED: processing GetNext of ciscoMgmt.810.1.2.1.1 (24008 msecs)

*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配置。对于SNMPv2c，如果向设备添加了多个社区，则输出看起来与输出类似：

snmp-server community TAC1 RO

snmp-server community TAC2 RO  -->

对于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配置。

对于SNMPv2c:

snmp-server community TAC1 RO view cutdown RO

snmp-server community TAC2 RO view cutdown RO

此想法是排除导致问题的OID，但在应用任何更改之前，请查看可排除的OID的功能是什么：

snmp-server view cutdown iso included

snmp-server view cutdown ciscoMgmt.810 excluded -->>>

对于SNMPv3，视图排除与snmp-server group命令一起应用：

snmp-server view TESTV3 internet included

snmp-server view TESTV3 ciscoMgmt.810 excluded

snmp-server group TestGroupV3 v3 priv write TESTV3

2.错误消息“由于SNMP闪存缓存导致CPU使用率过高”。

Device#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闪存缓存进程可能会占用高CPU。使用show running-config all确认配置状态 | include snmp mib flash cache and validate process CPU before applying no snmp mib flash cache。

3.错误消息："%SNMP-3-INPUT_QFULL_ERR：由于输入队列已满而丢弃的数据包"

队列已满错误的可能原因可能是设备上的大量轮询或导致问题的特定OID。要缓解此问题，首先检查设备是否已进行大量轮询。

为此，请执行以下命令：

Device#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资源：

Device#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较频繁，此命令也很有用。

Device#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服务器启动到设备的扫描并观察输出。响应速度慢于其他OID的OID可能是导致CPU使用率较高的OID。

要排除的故障：

检查设备上的SNMP配置。对于SNMPv2，需要类似于：

snmp-server community TAC1 RO

snmp-server community TAC2 RO

- 对于SNMPv3

snmp-server view TESTV3 iso include

snmp-server group TestGroupV3  v3 auth read TESTV3

snmp-server user <username> TestGroupV3 v3 auth sha <auth-secret> priv aes 128 <priv-secret>

注意：使用符合组织凭证策略的唯一密码。确认SHA和AES语法以及所记录的Cisco IOS XE版本支持。

进入设备的配置模式并将视图添加到SNMP配置以更改配置。

- 对于SNMPv2

snmp-server community  TAC1 RO view cutdown RO

snmp-server community TAC2 RO view cutdown RO

在配置模式下添加这些行。此想法是排除导致此问题的OID，但请读出您要排除的OID的功能是什么：

snmp-server view cutdown iso included

snmp-server view cutdown <oid-subtree> excluded

相关信息

- 配置指南：章节：SNMP

- 思科技术支持和下载