目录

简介

先决条件

要求

使用的组件

配置

了解SNMP范围

配置步骤（适用于全局和VRF情景范围）

步骤1:配置SNMP交换矩阵策略

第二步：将SNMP策略应用于Pod策略组（交换矩阵策略组）

第三步：将Pod策略组与Pod配置文件关联

第四步：配置VRF情景范围

使用GUI配置SNMP陷阱

步骤1:配置SNMP TRAP服务器

第二步：在（访问/交换矩阵/租户）监控策略下配置SNMP TRAP源

第 1 项.在Access Policies下定义SNMP源

第 2 项.在交换矩阵策略下定义SNMP源

选项 3.在“租户策略”(Tenant Policies)下定义SNMP源

验证

使用snmpwalk命令进行验证

使用CLI Show命令

使用CLI Moquery命令

使用CLI cat命令

故障排除

检查snmpd进程

简介

本文档介绍ACI中简单网络管理协议(SNMP)和SNMP陷阱的配置。

先决条件

要求

Cisco 建议您了解以下主题：

- 交换矩阵发现已完成

- 与应用策略基础设施控制器(APIC)和交换矩阵交换机的带内/带外连接

- 配置允许SNMP流量的带内/带外合同（UDP端口161和162）

- 在默认管理租户下，为您的APIC和交换矩阵交换机配置的静态节点管理地址（如果没有此地址，从APIC提取SNMP信息失败）

- 了解SNMP协议工作流程

使用的组件

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

- APIC

- 浏览器

- 运行5.2 (8e)的以应用为中心的基础设施(ACI)

- Snmpwalk  命令

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

配置

思科ACI提供SNMPv1、v2c和v3支持，包括管理信息库(MIB)和通知（陷阱）。SNMP标准允许支持不同MIB的任何第三方应用管理和监控ACI枝叶和主干交换机以及APIC控制器。

但是，ACI不支持SNMP写入命令(Set)。

SNMP策略在枝叶和主干交换机上独立应用并运行，同时独立于APIC控制器。由于每个ACI设备都有自己的SNMP实体，即APIC集群中的多个APIC必须与交换机分开监控。不过，SNMP策略源是作为整个ACI交换矩阵的监控策略创建的。

默认情况下，SNMP使用UDP 端口161 进行轮询，使用162 端口进行TRAP。

了解SNMP范围

ACI中SNMP的一个简单基本概念是可以从两个范围内提取SNMP信息：

1. 全球

2. 虚拟路由和转发(VRF)情景

全局范围是提取机箱MIB，如枝叶/主干节点的接口数、接口索引、接口名称、接口状态等。

VRF情景范围特定MIB提取特定于VRF的信息，例如IP地址和路由协议信息。

思科ACI MIB支持列表中提供了支持的APIC和交换矩阵交换机全局和VRF情景MIB的完整列表。

注意：具有全局范围的MIB在系统中只有一个实例。全局MIB中的数据与整个系统相关。

具有VRF特定范围的MIB可以在系统中具有每个VRF实例。VRF特定MIB中的数据仅与该VRF相关。

配置步骤（适用于全局和VRF情景范围）

步骤1:配置SNMP交换矩阵策略

注意：此处指定SNMP设置，例如SNMP社区策略和SNMP客户端组策略。

配置SNMP的第一步是创建必要的SNMP交换矩阵策略。要创建SNMP交换矩阵策略，请导航到APIC Web GUI路径；Fabric > Fabric Policies > Policies > Pod > SNMP。

您可以创建新的SNMP策略或修改默认SNMP策略。

在本文档中，SNMP策略称为New-SNMP，使用SNMP v2c版，因此此处需要的字段只有“Community Policies”和“Client Group Policies”。

Community Policy Name字段定义要使用的SNMP社区字符串。在我们的例子中，New-1。您会看到这两个团体字符串稍后会出现在何处。

名称- SNMP策略的名称。此名称可以是1到64个字母数字字符。

说明- SNMP策略的说明。说明可以是0到128个字母数字字符。

管理状态- SNMP策略的管理状态。该状态可以是启用或禁用。这些状态包括：

- 已启用-管理状态已启用

- disabled -管理状态已禁用

默认值为disabled。

Contact - SNMP策略的联系人信息。

Location - SNMP策略的位置。

SNMP v3用户 - SNMP用户配置文件用于将用户与用于监控网络设备的SNMP策略相关联。

社区策略- SNMP社区配置文件允许访问路由器或交换机统计数据进行监控。

客户端组策略：

下一步是添加客户端组策略/配置文件。客户端组策略/配置文件的目的是定义哪些IP/子网能够从APIC和交换矩阵交换机获取SNMP数据：

Name - 客户端组配置文件的名称。此名称可以是1到64个字母数字字符。

Description - 客户端组配置文件的说明。说明可以是0到128个字母数字字符。

关联管理终端组(EPG) - 通过其可访问VRF的终端组的可分辨名称。支持的最大字符串长度为255个ASCII字符。默认为管理租户带外管理访问EPG。

客户端条目- SNMP客户端配置文件IP地址。

在本文档中，客户端组策略/配置文件称为New-Client。

在客户端组策略/配置文件中，必须关联首选管理EPG。您必须确保您选择的管理EPG具有允许SNMP流量（UDP端口161和162）的必要合同。本文档中使用默认带外管理EPG进行演示。

最后一步是定义客户端条目，以便允许特定IP或整个子网访问提取ACI SNMP数据。有定义特定IP或整个子网的语法：

- 特定主机IP：192.168.1.5

- 整个子网：192.168.1.0/24

注意：不能在客户端条目中使用0.0.0.0来允许所有子网（如果要允许所有子网访问SNMP MIB，只需将客户端条目留空）。

第二步：将SNMP策略应用于Pod策略组（交换矩阵策略组）

要应用此配置，请导航到APIC Web GUI路径；Fabric > Fabric Policies > Pods > Policy Groups > POD_POLICY_GROUP（文档中的默认值）。

在右侧窗格中，您将看到SNMP Policy字段。从下拉列表中，选择新创建的SNMP策略并提交更改。

第三步：将Pod策略组与Pod配置文件关联

为简单起见，在本文档中使用默认 Pod配置文件。为此，请导航至APIC Web GUI路径；Fabric > Fabric Policies > Pods > Profiles > POD_PROFILE（文档中的默认值）。

在此阶段，配置全局MIB的基本SNMP。

注意：此时，SNMP配置的所有必要步骤（步骤1-3）均已完成，并且已隐式使用全局MIB范围。 这允许为任何ACI节点或APIC执行SNMP漫游。

第四步：配置VRF情景范围

一旦将社区字符串关联到VRF情景，该特定社区字符串将无法用于提取全局范围SNMP数据。因此，如果您希望提取全局范围和VRF情景SNMP数据，则需要创建两个SNMP社区字符串。

在这种情况下，之前创建的社区字符串（在步骤1.中）即(New-1)，在VRF情景范围中使用New-1，在Example自定义租户中使用VRF-1自定义VRF。为此，请导航到APIC Web GUI路径；Tenants > Example > Networking > VRFs > VRF-1 (right click) > Create SNMP Context 。

提交配置后，您可以验证应用的SNMP情景配置，方法是左键点击VRF，导航到VRF上的Policy选项卡，然后向下滚动到窗格底部：

为了在VRF上禁用SNMP情景，您可以取消选中Create SNMP Context复选框（显示在屏幕截图中），或者右键单击VRF并选择Delete SNMP Context。

使用GUI配置SNMP陷阱

SNMP TRAP不通过轮询发送到SNMP服务器(SNMP目标/网络管理系统(NMS))，一旦发生故障/事件（定义的条件），ACI节点/APIC就会发送SNMP TRAP。

SNMP陷阱根据访问/交换矩阵/租户监控策略下的策略范围启用。 ACI最多支持10个Trap接收器。

注意：如果没有上一节中的步骤1-3，SNMP TRAP配置是不够的。第2步：在SNMP TRAP配置中，与（接入/交换矩阵/租户）的监控策略相关。

要在ACI中配置SNMP TRAP，除上一部分中的步骤1、2和3之外，您还需要执行两个步骤。

步骤1:配置SNMP TRAP服务器

为此，请导航到APIC Web GUI路径；Admin > Eternal Data Collectors > Monitoring Destinations > SNMP。

Host Name/IP - SNMP陷阱目标的主机。

Port - SNMP陷阱目标的服务端口。范围为0（未指定）到65535；默认值为162。

版本- SNMP陷阱目标支持的CDP版本。版本可以是：

- v1 - 使用社区字符串匹配进行用户身份验证。

- v2c - 使用社区字符串匹配进行用户身份验证。

- v3 -基于标准的可互操作网络管理协议，通过结合使用身份验证和加密网络上的帧，为设备提供安全访问。

默认值为v2c。

安全名称- SNMP陷阱目标安全名称（社区名称）。它不能包含@符号。

v.3安全级别- SNMP目标路径的SNMPv3安全级别。级别可以是：

- auth

- noauth

- priv

默认值为noauth。

管理EPG - 通过其可到达远程主机的SNMP目标的管理终端组的名称。

第二步：在（访问/交换矩阵/租户）监控策略下配置SNMP TRAP源

您可以使用以下三个范围创建监控策略：

- 接入-接入端口、FEX、VM控制器

- 交换矩阵-交换矩阵端口、卡、机箱、风扇

- 租户- EPG、应用配置文件、服务

注意：您可以根据需要选择其中任意一项或多项进行配置。

第 1 项.在Access Policies下定义SNMP源

为此，请导航到APIC Web GUI路径；Fabric > Access Polices > Polices >  Monitoring > Default > Callhome/Smart Callhome/SNMP/Syslog/TACACS。

注意：您可以使用自定义监控策略（如果已配置）而不是默认策略，请在此处使用默认策略。 可以指定要监控的监控对象；所有对象均在此处使用。

第 2 项.在交换矩阵策略下定义SNMP源

为此，请导航到APIC Web GUI路径；Fabric > Fabric Polices > Polices >  Monitoring > Default > Callhome/Smart Callhome/SNMP/Syslog/TACACS。

选项 3.在“租户策略”(Tenant Policies)下定义SNMP源

为此，请导航到APIC Web GUI路径；Tenant > (Tenant Name) > Polices > Monitoring > (Custom monitoring policy) > Callhome/Smart Callhome/SNMP/Syslog/TACACS。

验证

使用snmpwalk命令进行验证

首先，查看从枝叶交换机的全局范围提取SNMP数据。使用snmpwalk命令可以做到这一点；snmpwalk -v 2c -c New-1 x.x.x.x。

此细分命令表示：

snmpwalk =安装在MacOS/Linux/Windows上的snmpwalk可执行文件

-v =指定要使用的SNMP版本

2c=指定使用SNMP版本2c

-c=指定特定社区字符串

New-1=社区字符串用于提取全局范围SNMP数据

x.x.x.x=我的枝叶交换机的带外管理IP地址

命令结果：

$ snmpwalk -v 2c -c New-1 x.x.x.x SNMPv2-MIB::sysDescr.0 = STRING: Cisco NX-OS(tm) aci, Software (aci-n9000-system), Version 15.2(8e), RELEASE SOFTWARE Copyright (c) 2002-2015 by Cisco Systems, Inc. Compiled 2018/07/26 09:34:42 SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.12.3.1.3.1626 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (45013216) 5 days, 5:02:12.16 SNMPv2-MIB::sysContact.0 = STRING: SNMPv2-MIB::sysName.0 = STRING: leaf1 SNMPv2-MIB::sysLocation.0 = STRING: SNMPv2-MIB::sysServices.0 = INTEGER: 70 SNMPv2-MIB::sysORLastChange.0 = Timeticks: (3) 0:00:00.03 SNMPv2-MIB::sysORID.1 = OID: SNMPv2-MIB::snmpMIB SNMPv2-MIB::sysORID.2 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance SNMPv2-MIB::sysORID.4 = OID: SNMP-MPD-MIB::snmpMPDCompliance SNMPv2-MIB::sysORID.5 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance SNMPv2-MIB::sysORDescr.1 = STRING: The MIB module for SNMPv2 entities SNMPv2-MIB::sysORDescr.2 = STRING: View-based Access Control Model for SNMP. SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB. SNMPv2-MIB::sysORDescr.4 = STRING: The MIB for Message Processing and Dispatching. SNMPv2-MIB::sysORDescr.5 = STRING: The management information definitions for the SNMP User-based Security Model.

在截取的命令输出中，您可以看到snmpwalk是成功的，并且提取了特定于硬件的信息。如果让snmpwalk继续，您将看到硬件接口名称、说明等等。

现在，使用SNMP社区字符串New-1继续检索VRF情景SNMP数据、以前创建的SNMP情景New-VRF-SNMP。

由于在两个不同的SNMP上下文中使用相同的社区字符串New-1，您必须指定希望从中提取SNMP数据的SNMP上下文。有些snmpwalk语法需要用来指定特定SNMP上下文；snmpwalk -v 2c -c New-1@New-VrF-SNMP 10.x.x.x。

您可以看到，要从特定SNMP情景中提取，可以使用以下格式： COMMUNITY_NAME_HERE@SNMP_CONTEXT_NAME_HERE .

使用CLI Show命令

在APIC上：

show snmp show snmp policy <SNMP_policy_name> show snmp summary show snmp clientgroups show snmp community show snmp hosts show snmp engineid

在交换机上：

show snmp show snmp | grep "SNMP packets" show snmp summary show snmp community show snmp host show snmp engineID show snmp context show snmp user show snmp internal dump-internal-log show snmp internal globals show snmp internal trace log

使用CLI Moquery命令

在APIC/交换机上：

moquery -c snmpGroup #The SNMP destination group, which contains information needed to send traps or informs to a set of destinations. moquery -c snmpTrapDest #A destination to which traps and informs are sent. moquery -c snmpRtDestGroup #A target relation to SNMP destination group. This group contains information needed to send traps or informs to a set of destinations. moquery -c snmpPol #The SNMP policy, which enables you to monitor client group, v3 user, and/or community SNMP policies. moquery -c snmpClientGrpP #A client group, which is a group of client IP addresses that allows SNMP access to routers or switches. moquery -c snmpCommunityP #The SNMP community profile, which enables access to the router or switch statistics for monitoring. moquery -c snmpRtSnmpPol #A target relation to an SNMP policy that contains site information and general protocol configuration parameters. Note that this relation is an internal object. moquery -c snmpClientP #The client profile information. moquery -c snmpRsEpg #A source relation to the endpoint group VRF through which the clients can connect. The VRF is an in-band or out of-band management endpoint. moquery -c snmpSrc #The SNMP source profile, which determines the fault information, severity level, and destination for sending messages to the SNMP destination. moquery -c snmpCtxP #The SNMP context profile, which enables you to specify a context to monitor with a community profile.

使用CLI cat命令

在APIC上：

cat /aci/tenants/mgmt/security-policies/out-of-band-contracts/summary cat /aci/tenants/mgmt/security-policies/filters/summary cat /aci/tenants/mgmt/node-management-epgs/default/out-of-band/default/summary cat /aci/admin/external-data-collectors/monitoring-destinations/snmp/*/snmp-trap-destinations/summary cat /aci/fabric/fabric-policies/pod-policies/policies/snmp/summary cat /aci/fabric/fabric-policies/pod-policies/policies/snmp/*/summary cat /aci/fabric/fabric-policies/pod-policies/policies/snmp/*/client-group-policies/*/*/summary cat /aci/fabric/fabric-policies/pod-policies/policy-groups/summary cat /aci/fabric/fabric-policies/pod-policies/pod-selector-default-all/summary cat /aci/fabric/fabric-policies/monitoring-policies/monitoring-policy-default/callhome-snmp-syslog/all/snmp*/summary cat /aci/fabric/fabric-policies/monitoring-policies/common-policy/callhome-snmp-syslog/snmp/*/summary cat /aci/fabric/access-policies/monitoring-policies/default/callhome-snmp-syslog/all/snmp*/summary

故障排除

检查snmpd进程

在交换机上：

ps aux | grep snmp pidof snmpd

在APIC上：

ps aux | grep snmp

如果此过程正常，请联系思科TAC获取更多帮助。