Technote-Aci-Snmp - v3 - Good Debug Commands PDF
Technote-Aci-Snmp - v3 - Good Debug Commands PDF
✤ For more information about using SNMP, see the Cisco ACI MIB Quick
Reference Guide. [1]
Note: The SNMP policy is applied & run independently on the leaf &
spine switches and to APIC controllers. Since each ACI devices is it's own
SNMP entity, Multiple APICs in an APIC Cluster must be monitored
separately for SNMP MIBs. Each APIC provides MIB Objects local to it.
Similarly, each switch must be queried independently to provide the
monitoring information. However, the SNMP policy source is created as a
monitoring policy for the entire ACI fabric. SNMP support for the APIC
controllers was added in ACI version 1.2(xx) or later.
SNMP Support on the APIC
✤ MIBs supported on APIC
PowerSupplyGroupTable, PowerStatusTable,
Cisco Entity FRU Control MIB
FanTrayStatusTable, PhysicalTable
CPUTotalTable, ProcessTable,
Cisco Process MIB
ProcessExtRevTable,ThreadTable
SNMP Support on the APIC (cont.)
The following document will use examples from using a "SNMP" utility or CLI
commands to gather information about the Cisco ACI fabric system. The "SNMP"
utility will also receive SNMP traps sent by the individual leaf & spine switches and
APIC controllers. Not all SNMP Traps indicate problems with your system. Some
messages are purely informational, while others may help diagnose problems with
communications lines, internal hardware, or the system software. This document
will not cover configuring 3rd Party SNMP monitoring utilities. Just make sure the
SNMP Utility has the ACI nodes IP addresses configured as SNMP Agents, correct UDP
port for SNMP Traps, & community string used in the ACI Fabric.
In this technote, I will show examples of configuring SNMP utilizing the APIC
Admin GUI. In ACI version 1.2(xx) or later, there are two modes for the APIC
Admin GUI. For this document, I will use examples from the "ADVANCED" GUI
Mode. In addition to the APIC Admin GUI, SNMP can be configured using the
APIC iNXOS CLI Mode and by using a REST API client. [2] [3]
About this Technote on SNMP in ACI
Note: At the time of writing this document, configuring SNMP using the
APIC iNXOS CLI Mode was incomplete. Due to this incompleteness,
parts of the SNMP configuration will still need to be configured via the
GUI or the Rest API. In regards to the REST API, you can open the API
inspector console from the APIC GUI. The API inspector displays the
Rest API POST requests used for the tasks performed. The “Post”
Requests in the API inspector can be used for sending requests to APIC
controllers.
✤ Configuration Steps:
1. Access the APIC Admin GUI.
2. Select FABRIC -> FABRIC POLICIES.
3. In the policies navigation panel on the left, select and expand the POD POLICIES
-> POLICIES.
4. Expand SNMP and Select the "default" SNMP Policy.
5. In the SNMP Policy-default configuration panel, perform the following actions:
• Add a description (SNMP Policy for the RTP2 Fabric)
• Select Admin State (Enabled)
• Enter Contact (Sir deadbeef)
• Enter Location (Cisco Systems, North Carolina)
TASK 1: (cont.)
Configure a SNMP Policy for the ACI Fabric
✤ Configuration Steps:
5. In the SNMP Policy-default configuration panel, perform the following actions: (cont.)
• Click on the " + " sign to CREATE SNMP CLIENT GROUP POLICIES. Note: The Client
Group Policies is like an ACL for SNMP Clients that can perform SNMPGET and SNMPWALK
requests. In the Client Group Profile dialog box, perform the following actions:
- Enter Name (deadbeef-snmpClients)
- Add a description (SNMP Clients that can perform SNMPGET and SNMPWALK
requests)
- Select Associated Management EPG (default (In-Band))
- Click on the " + " sign to ADD CLIENT ENTRIES. In the Client Entries Table,
perform the following actions:
‣ Enter Name (deadbeef-osx1)
‣ Enter IP Address (10.150.188.104)
‣ Click UPDATE
Note: Repeat ADD CLIENT ENTRIES tasks to add additional SNMP CLIENT
ENTRIES.
‣ Click SUBMIT to complete "Create SNMP Client Group Profile" tasks.
TASK 1: (cont.)
Configure a SNMP Policy for the ACI Fabric
✤ Sample Screenshot:
TASK 1: (cont.)
Configure a SNMP Policy for the ACI Fabric
✤ Sample Screenshot:
TASK 1: (cont.)
Configure a SNMP Policy for the ACI Fabric
✤ Configuration Steps:
5. In the SNMP Policy-default configuration panel, perform the following actions:
(cont.)
• Click on the " + " sign to ADD COMMUNITY POLICIES. In the Community
Policies Table, perform the following actions:
- Enter Name (deadbeef)
- Add a description (SNMP Community String)
- Click UPDATE
• Click SUBMIT to complete “Configure SNMP Policy" tasks.
✤ Sample Screenshot:
TASK 1: (cont.)
Configure a SNMP Policy for the ACI Fabric
✤ Configuration Steps:
Note: For this example we are using SNMP
v2c, If you were using SNMP v3, you would
configure the SNMP User information for this
policy also.
6. Expand Policy Groups and
Select the "default" Policy
Group.
• Make sure the "default"
SNMP Policy (or Custom
SNMP Policy) is selected
and Resolved.
TASK 1: (cont.)
Configure a SNMP Policy for the ACI Fabric
✤ Configuration Steps:
7. Expand Profiles, expand Pod Profile default, and Select the "default" Pod Profile.
• Make sure the "default" Fabric Policy Group is selected.
✤ Sample Screenshot:
TASK 1: (cont.)
Configure a SNMP Policy for the ACI Fabric
✤ Example of POSTs from the API Inspector:
method: POST
url: http://172.18.242.111/api/node/mo/uni/fabric/snmppol-default.json
payload{"snmpPol":{"attributes":{"dn":"uni/fabric/snmppol-default","descr":"SNMP Policy for the RTP2
Fabric","adminSt":"enabled","contact":"Sir deadbeef","loc":"Cisco Systems, North Carolina"},"children":[]}}
method: POST
url: http://172.18.242.111/api/node/mo/uni/fabric/snmppol-default/clgrp-deadbeef-snmpClients.json
payload{"snmpClientGrpP":{"attributes":{"dn":"uni/fabric/snmppol-default/clgrp-deadbeef-
snmpClients","name":"deadbeef-snmpClients","descr":"SNMP Clients that can perform SNMPGET and
SNMPWALK requests","rn":"clgrp-deadbeef-snmpClients","status":"created"},"children":[{"snmpClientP":
{"attributes":{"dn":"uni/fabric/snmppol-default/clgrp-deadbeef-snmpClients/client-
[10.150.188.104]","name":"deadbeef-osx1","addr":"10.150.188.104","rn":"client-
[10.150.188.104]","status":"created"},"children":[]}},{"snmpClientP":{"attributes":{"dn":"uni/fabric/snmppol-
default/clgrp-deadbeef-snmpClients/client-[10.150.44.141]","name":"deadbeef-
osx2","addr":"10.150.44.141","rn":"client-[10.150.44.141]","status":"created"},"children":[]}},{"snmpRsEpg":
{"attributes":{"tDn":"uni/tn-mgmt/mgmtp-default/inb-default","status":"created"},"children":[]}}]}}
TASK 1: (cont.)
Configure a SNMP Policy for the ACI Fabric
✤ Example of POSTs from the API Inspector: (cont.)
method: POST
url: http://172.18.242.111/api/node/mo/uni/fabric/snmppol-default/community-deadbeef.json
payload{"snmpCommunityP":{"attributes":{"dn":"uni/fabric/snmppol-default/community-
deadbeef","name":"deadbeef","status":"created","descr":"SNMP Community String","rn":"community-
deadbeef"},"children":[]}}
TASK 2:
Configure MGMT Contracts to allow UDP Port 161 for
SNMP Requests
In "Brazos" & previous ACI releases, the leaf\spine node switches did NOT require a OOB or
INB contract to allow SNMP Get Requests using UDP DestPort 161: for SNMP. These requests
cannot be blocked through contracts. Creating a SNMP ClientGroup in the SNMP policy with a
list of Client-IP Addresses restricts SNMP access to only the configured Client-IP Addresses.
If no Client-IP address is configured, SNMP packets are allowed from anywhere.
In "Brazos", Cisco added SNMP support for the APIC(s). The behavior for default allowed ports
for the APIC it is “Different". Unlike the Switches, a CONTRACT is needed for the APIC to
allow SNMP. This is “NEW” with brazos. In your OOB Contract defined for your External
Management Network Instance Profile. Once you add Ports 161 & 162 to the filter of the
OOB Contract, your SNMP Gets should work as expected.
Also in addition to contracts being needed, Node Management Address(s) in the Tenant
mgmt need to be configured for the APIC(s). Verify that the APIC Node management
address(s) are configured also.
TASK 2:
Configure MGMT Contracts to allow UDP Port 161 for
SNMP Requests
✤ If Out-Of-Band or In-Band Contract(s) already exist, verify that UDP Port 161 is configured
for SNMP Requests. If SNMP ports are not in filters, add UDP Port 161 to existing filters &
contracts. Create the Required Contracts & filters with the appropriate SNMP Ports.
✤ Configuration Steps:
1. Access the APIC Admin GUI.
2. Select TENANTS -> ALL TENANTS.
3. In the tenants navigation panel on the left, double-click on the MGMT Tenant.
4. In the Navigation pane, expand Security Policies:
• Expand Out-Of-Band Contracts
- Expand existing OOB Contract
- Select OOB Subject
- In the OOB Subject Panel, double-click on OOB filter(s)
- Review filter(s) to ensure UDP Port 161 is configured.
• If the Fabric is also using In-Band management also, verify the INB contract filter
is also configured for UDP Port 161.
TASK 2:
Configure MGMT Contracts to allow UDP Port 161 for
SNMP Requests
✤ The first step is to create an External Data Collector source group for SNMP.
✤ Configuration Steps:
1. Access the APIC Admin GUI.
2. Select ADMIN -> EXTERNAL DATA COLLECTORS.
3. In the External Data Collectors navigation panel on the left, select and expand the MONITORING DESTINATIONS.
• Select SNMP and Right-Click to "Create SNMP Monitoring Destination Group”.
• In the "Create SNMP Monitoring Destination Group" configuration panel, perform the following actions:
- STEP 1 > Define a Group Name
‣ Enter Group Name (deadbeef-snmpDestGrp)
‣ Add a description (SNMP Monitoring Destination Group for the RTP2 Fabric)
‣ Click NEXT
- STEP 2 > Trap Destinations
‣ Click on the " + " sign to CREATE SNMP TRAP DESTINATION. In the "Create SNMP Trap
Destination" configuration panel, perform the following actions:
- Add HOSTNAME or IP (10.117.67.20)
- Use DEFAULT UDP Port 162 or Define your desired UDP PORT for SNMP Traps
- Select SNMP Version to be used for this SNMP Trap Destination (v2c)
- Add COMMUNITY NAME (deadbeef)
- Select MANAGEMENT EPG (default (In-Band))
- Click OK
- Repeat STEP 2 to create additional SNMP Trap Destinations.
- Click FINISH
TASK 3:
Configure the ACI Fabric to send SNMP TRAPS
✤ Sample Screenshots:
TASK 3:
Configure the ACI Fabric to send SNMP TRAPS
✤ Sample Screenshots:
TASK 3:
Configure the ACI Fabric to send SNMP TRAPS
✤ Sample Screenshots:
TASK 3:
Configure the ACI Fabric to send SNMP TRAPS
✤ Example of POST from the API Inspector:
method: POST
url: http://172.18.242.111/api/node/mo/uni/fabric/snmpgroup-deadbeef-snmpDestGrp.json
payload{"snmpGroup":{"attributes":{"dn":"uni/fabric/snmpgroup-deadbeef-
snmpDestGrp","name":"deadbeef-snmpDestGrp","descr":"SNMP Monitoring Destination Group for the
RTP2 Fabric","rn":"snmpgroup-deadbeef-snmpDestGrp","status":"created"},"children":
[{"snmpTrapDest":{"attributes":{"dn":"uni/fabric/snmpgroup-deadbeef-snmpDestGrp/
trapdest-10.117.67.20-port-162","host":"10.117.67.20","secName":"deadbeef","rn":"trapdest-10.117.67.20-
port-162","status":"created"},"children":[{"fileRsARemoteHostToEpg":{"attributes":{"tDn":"uni/tn-
mgmt/mgmtp-default/inb-default","status":"created"},"children":[]}}]}}]}}
TASK 3:
Configure the ACI Fabric to send SNMP TRAPS
✤ After you have created the ACI Fabric's SNMP Monitoring Destination Group with
SNMP Trap Destinations, you will need to configure Fabric "Monitoring Sources" to
use this SNMP Monitoring Destination Group. There are 3 main Monitoring Sources
that can be configured. I give examples of configuring each of the monitoring sources.
In later ACI firmware releases, you can create a monitoring source in the Tenant scope.
The APIC includes the following four classes of default monitoring policies:
In each of the four classes of monitoring policies, the default policy can be overridden by a specific policy. For example, a monitoring
policy applied to the deadbeef tenant (tn-deadbeef) would override the default one for the deadbeef tenant while other tenants
would still be monitored by the default policy.
TASK 3:
Configure the ACI Fabric to send SNMP TRAPS
✤ After you have created the ACI Fabric's SNMP Monitoring Destination Group with SNMP
Trap Destinations, you will need to configure Fabric "Monitoring Sources" to use this SNMP
Monitoring Destination Group.
✤ Configuration Steps:
1. Access the APIC Admin GUI.
2. Select FABRIC -> FABRIC POLICIES.
3. In the Policies navigation panel on the left, select and expand the MONITORING
POLICIES.
• Expand DEFAULT and Select "CALLHOME/SNMP/SYSLOG".
• In the "Callhome/SNMP/Syslog" configuration panel, Select SNMP as the "Source
Type" and Click on the " + " sign to CREATE SNMP SOURCE.
• In the "Create SNMP Source" configuration panel, perform the following actions:
- Enter Source Name (deadbeef-snmpSrc)
- Select the SNMP Monitoring Destination Group that was created in a
previous task (deadbeef-snmpDestGrp)
- Click Submit
TASK 3:
Configure the ACI Fabric to send SNMP TRAPS
method: POST
url: http://172.18.242.111/api/node/mo/uni/fabric/monfab-default/snmpsrc-deadbeef-snmpSrc.json
payload{"snmpSrc":{"attributes":{"dn":"uni/fabric/monfab-default/snmpsrc-deadbeef-
snmpSrc","incl":"audits,events,faults","name":"deadbeef-snmpSrc","rn":"snmpsrc-deadbeef-
snmpSrc","status":"created"},"children":[{"snmpRsDestGroup":{"attributes":{"tDn":"uni/fabric/snmpgroup-
deadbeef-snmpDestGrp","status":"created"},"children":[]}}]}}
TASK 3:
Configure the ACI Fabric to send SNMP TRAPS
✤ After you have created the ACI Fabric's SNMP Source in the Fabric Policies "Monitoring
Sources" for Fabric Policies - DEFAULT, configure the SNMP Source in Fabric Policies -
COMMON POLICY.
✤ Configuration Steps:
1. Access the APIC Admin GUI.
2. Select FABRIC -> FABRIC POLICIES.
3. In the Policies navigation panel on the left, select and expand the MONITORING
POLICIES.
• Select COMMON POLICY and Right-Click and Select "Create SNMP Source".
• In the "Create SNMP Source" configuration panel, perform the following actions:
- Enter Source Name (deadbeef-snmpSrc)
- Select the SNMP Monitoring Destination Group that was created in a
previous task (deadbeef-snmpDestGrp)
- Click Submit
TASK 3:
Configure the ACI Fabric to send SNMP TRAPS
method: POST
url: http://172.18.242.111/api/node/mo/uni/fabric/moncommon/snmpsrc-deadbeef-snmpSrc.json
payload{"snmpSrc":{"attributes":{"dn":"uni/fabric/moncommon/snmpsrc-deadbeef-
snmpSrc","incl":"audits,events,faults","name":"deadbeef-snmpSrc","rn":"snmpsrc-deadbeef-
snmpSrc","status":"created"},"children":[{"snmpRsDestGroup":{"attributes":{"tDn":"uni/fabric/snmpgroup-
deadbeef-snmpDestGrp","status":"created"},"children":[]}}]}}
TASK 3:
Configure the ACI Fabric to send SNMP TRAPS
✤ Sample Screenshots: (Fabric Policies - common (Callhome/SNMP/Syslog))
TASK 3:
Configure the ACI Fabric to send SNMP TRAPS
✤ After you have created the ACI Fabric's SNMP Source in the Fabric Policies "Monitoring
Sources" for Fabric Policies - DEFAULT & COMMON, configure the SNMP Source in
Access Policies - DEFAULT.
✤ Configuration Steps:
1. Access the APIC Admin GUI.
2. Select FABRIC -> ACCESS POLICIES.
3. In the Policies navigation panel on the left, select and expand the MONITORING
POLICIES.
• Select DEFAULT and Right-Click and Select "Create SNMP Source".
• In the "Create SNMP Source" configuration panel, perform the following actions:
- Enter Source Name (deadbeef-snmpSrc)
- Select the SNMP Monitoring Destination Group that was created in a
previous task (deadbeef-snmpDestGrp)
- Click Submit
TASK 3:
Configure the ACI Fabric to send SNMP TRAPS
method: POST
url: http://172.18.242.111/api/node/mo/uni/infra/moninfra-default/snmpsrc-deadbeef-snmpSrc.json
payload{"snmpSrc":{"attributes":{"dn":"uni/infra/moninfra-default/snmpsrc-deadbeef-
snmpSrc","incl":"audits,events,faults","name":"deadbeef-snmpSrc","rn":"snmpsrc-deadbeef-
snmpSrc","status":"created"},"children":[{"snmpRsDestGroup":{"attributes":{"tDn":"uni/fabric/snmpgroup-
deadbeef-snmpDestGrp","status":"created"},"children":[]}}]}}
TASK 3:
Configure the ACI Fabric to send SNMP TRAPS
✤ Sample Screenshots: (Access Policies - default (Callhome/SNMP/Syslog))
Troubleshooting ACI SNMP Configuration
This section will provide an overview on generic troubleshooting SNMP policies in the ACI Fabric.
Once SNMP policies are configured for SNMP GET\WALK Requests and SNMP TRAPS, verify that the
configuration is pushed to the LEAF\SPINE\APIC nodes. Use the available CLI commands to verify
configuration is enabled and applied. If needed, use of external tools and apps may be necessary.
Verify ACI SNMP Configuration (cont.)
“show commands”
show snmp
show snmp
show snmp summary
show snmp summary
show snmp clientgroups
show snmp community
show snmp community
show snmp host
show snmp hosts
Verify APIC SNMP Configuration
“show commands”
✤ Use the output from the "show snmp summary" command to retrieve summary information on the APIC SNMP
configuration.
----------------------------------------
Community Description
----------------------------------------
deadbeef SNMP Community String
------------------------------------------------------------
User Authentication Privacy
------------------------------------------------------------
------------------------------------------------------------
Client-Group Mgmt-Epg Clients
------------------------------------------------------------
deadbeef-snmpClients default (In-Band) 10.150.44.141,10.117.67.20,10.150.188.104
------------------------------------------------------------
Host Port Version Level SecName
------------------------------------------------------------
10.117.67.20 162 v2c noauth deadbeef
Verify LEAF\SPINE SNMP Configuration
“show commands”
✤ Use the output from the "show snmp summary" command to retrieve summary information on the Leaf/Spine SNMP
configuration.
rtp2-leaf1# show snmp summary
----------------------------------------------------------------------
Community Context Status
----------------------------------------------------------------------
deadbeef ok
----------------------------------------------------------------------
Client VRF Status
----------------------------------------------------------------------
10.150.188.104 mgmt:inb ok
10.150.44.141 mgmt:inb ok
10.117.67.20 mgmt:inb ok
-------------------------------------------------------------------------------
Host Port Ver Level SecName VRF
-------------------------------------------------------------------------------
10.117.67.20 162 v2c noauth deadbeef mgmt:inb
Verify ACI SNMP Configuration (cont.)
“show commands”
✤ What to look for in the output from the "show snmp summary" command ?
✓ The “Client Group” Hosts & VRF allowed to send SNMP Get\Walk Requests (UDP PORT 161).
• LEAF = 10.150.188.104, 10.150.44.141, 10.117.67.20, mgmt:inb
• APIC = 10.150.44.141, 10.117.67.20, 10.150.188.104, default (In-Band)
✓ The Destination Host(s), PORT# & VRF for sending SNMP Traps (UDP PORT 162 or Custom Port).
• LEAF = 10.117.67.20, 162, mgmt:inb
• APIC = 10.117.67.20, 162
Verify ACI SNMP Configuration (cont.)
“moquery”
✤ Managed Object(MO) Queries is another way to verify configuration of SNMP Policies. On each Leaf\Spine\APIC with
SNMP configured, run “moquery -c [object class]”
ie. (snmpPol, snmpClientGrpP, snmpClientP, snmpCommunityP, snmpTrapDest, snmpSrc).
snmpPol
# snmp.Pol
name : default
adminSt : enabled
childAction :
contact : Sir deadbeef
descr : SNMP Policy for the RTP2 Fabric
dn : uni/fabric/snmppol-default
lcOwn : local
loc : Cisco Systems, North Carolina
modTs : 2016-03-07T15:43:06.559+00:00
monPolDn : uni/fabric/monfab-default
ownerKey :
ownerTag :
rn : snmppol-default
status :
uid : 0
Note: Repeat the “moquery -c snmpPol” command on each Leaf \Spine\APIC node configured for SNMP.
Verify ACI SNMP Configuration (cont.)
“moquery”
✤ Managed Object(MO) Queries is another way to verify configuration of SNMP Policies. On each Leaf\Spine\APIC with
SNMP configured, run “moquery -c [object class]”
ie. (snmpPol, snmpClientGrpP, snmpClientP, snmpCommunityP, snmpTrapDest, snmpSrc).
snmpClientGrpP
# snmp.ClientP
addr : 10.150.188.104
dn : uni/fabric/snmppol-default/clgrp-deadbeef-snmpClients/client-[10.150.188.104]
name : deadbeef-osx1
rn : client-[10.150.188.104]
# snmp.ClientP
addr : 10.150.44.141
dn : uni/fabric/snmppol-default/clgrp-deadbeef-snmpClients/client-[10.150.44.141]
name : deadbeef-osx2
rn : client-[10.150.44.141]
# snmp.ClientP
addr : 10.117.67.20
dn : uni/fabric/snmppol-default/clgrp-deadbeef-snmpClients/client-[10.117.67.20]
name : deadbeef-osx3
rn : client-[10.117.67.20]
Note: Repeat the “moquery -c snmpClientGrpP -x query-target=children” command on each Leaf \Spine\APIC node configured for SNMP.
Verify ACI SNMP Configuration (cont.)
“moquery”
✤ Managed Object(MO) Queries is another way to verify configuration of SNMP Policies. On each
Leaf\Spine\APIC with SNMP configured, run “moquery -c [object class]”
ie. (snmpPol, snmpClientGrpP, snmpClientP, snmpCommunityP, snmpTrapDest, snmpSrc).
snmpCommunityP
# snmp.CommunityP
name : deadbeef
childAction :
descr : SNMP Community String
dn : uni/fabric/snmppol-default/community-deadbeef
lcOwn : local
modTs : 2016-03-07T15:45:50.186+00:00
rn : community-deadbeef
status :
uid : 15374
Note: Repeat the “moquery -c snmpCommunityP” command on each Leaf \Spine\APIC node configured for SNMP.
Verify ACI SNMP Configuration (cont.)
“moquery”
✤ Managed Object(MO) Queries is another way to verify configuration of SNMP Policies. On each Leaf\Spine\APIC with SNMP
configured, run “moquery -c [object class]”
ie. (snmpPol, snmpClientGrpP, snmpClientP, snmpCommunityP, snmpTrapDest, snmpSrc).
snmpTrapDest
# snmp.TrapDest
host : 10.117.67.20
port : 162
childAction :
descr :
dn : uni/fabric/snmpgroup-deadbeef-snmpDestGrp/trapdest-10.117.67.20-port-162
epgDn : uni/tn-mgmt/mgmtp-default/inb-default
lcOwn : policy
modTs : 2016-03-08T19:27:25.464+00:00
monPolDn : uni/fabric/monfab-default
name :
notifT : traps
rn : trapdest-10.117.67.20-port-162
secName : deadbeef
status :
uid : 15374
v3SecLvl : noauth
ver : v2c
vrfName : mgmt:inb
Note: Repeat the “moquery -c snmpTrapDest -x query-target=children” command on each Leaf \Spine\APIC node configured for SNMP.
Verify ACI SNMP Configuration (cont.)
“moquery”
✤ Managed Object(MO) Queries is another way to verify configuration of SNMP Policies. On each Leaf\Spine\APIC with SNMP
configured, run “moquery -c [object class]”
ie. (snmpPol, snmpClientGrpP, snmpClientP, snmpCommunityP, snmpTrapDest, snmpSrc).
snmpSrc
# snmp.Src
name : deadbeef-snmpSrc
dn : uni/fabric/monfab-default/snmpsrc-deadbeef-snmpSrc
incl : events,faults
minSev : info
monPolDn : uni/fabric/monfab-default
# snmp.Src
name : deadbeef-snmpSrc
dn : uni/fabric/moncommon/snmpsrc-deadbeef-snmpSrc
incl : events,faults
minSev : info
monPolDn : uni/fabric/moncommon
Note: Repeat the “moquery -c snmpSrc | egrep “snmp.Src|name|dn|incl|minSev|monPolDn" ” command on each Leaf \Spine\APIC node configured for SNMP.
Verify ACI SNMP Configuration (cont.)
“VISORE”
✤ Another tool to verify SNMP configuration is VISORE. Enclosed are some samples of the VISORE
information related to the SNMP configuration.
(snmpPol, snmpClientGrpP, snmpClientP, snmpCommunityP, snmpTrapDest, snmpSrc)
snmpGroup - The SNMP destination group, which contains information needed to send traps or informs to a set
of destinations.. SNMP is an application-layer protocol that provides a message format for communication
between SNMP managers and agents. SNMP provides a standardized framework and a common language used
for the monitoring and management of devices in a network.
snmpRtDestGroup - A target relation to SNMP destination group. This group contains information needed to
send traps or informs to a set of destinations
snmpPol - The SNMP policy, which enables you to monitor client group, v3 user, and/or community SNMP
policies. SNMP is an application-layer protocol that provides a message format for communication between
SNMP managers and agents. SNMP provides a standardized framework and a common language used for the
monitoring and management of devices in a network.
snmpClientGrpP - A client group, which is a group of client IP addresses that allows SNMP access to routers or
switches.
Verify ACI SNMP Configuration (cont.)
“VISORE”
snmpCommunityP - The SNMP community profile, which enables access to the router or switch statistics for monitoring. SNMP
is an application-layer protocol that provides a message format for communication between SNMP managers and agents. SNMP
provides a standardized framework and a common language used for the monitoring and management of devices in a network.
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.
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.
snmpSrc - The SNMP source profile, which determines the fault information, severity level, and destination for sending
messages to the SNMP destination. SNMP is an application-layer protocol that provides a message format for communication
between SNMP managers and agents. SNMP provides a standardized framework and a common language used for the
monitoring and management of devices in a network .
snmpCtxP - The SNMP context profile, which enables you to specify a context to monitor with a community profile. SNMP is an
application-layer protocol that provides a message format for communication between SNMP managers and agents. SNMP
provides a standardized framework and a common language used for the monitoring and management of devices in a network.
Verify ACI SNMP Configuration (cont.)
“VISORE”
snmpPol
Verify ACI SNMP Configuration (cont.)
“VISORE”
snmpClientGrpP
Verify ACI SNMP Configuration (cont.)
“VISORE”
snmpClientP
Verify ACI SNMP Configuration (cont.)
“VISORE”
snmpCommunityP
Verify ACI SNMP Configuration (cont.)
“VISORE”
snmpTrapDest
Verify ACI SNMP Configuration (cont.)
“VISORE”
snmpSrc
Verify ACI SNMP Configuration (cont.)
“Logical Model”
✤ Checking the Logical Model on the APIC is another way to verify configuration of SNMP Policies. On an APIC ,
run “ Cat …./summary ” on the key components of the SNMP configuration for the ACI Fabric. The following is a
list of SUMMARY files to use to verify the SNMP configuration.
‣ 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
Debugging SNMP on LEAF\SPINE Nodes
In addition to the “Show” commands that listed earlier to verify the SNMP configuration on Leaf\Spine
Nodes, you can use some additional commands to gather more information in regards to SNMP. Some
of the following commands may require ROOT access. Temporary “Root” access requires assistance
from a Cisco ACI TAC Engineer.
✤ Additional Commands to run on the leaf or spine prior to accessing ROOT:
• show vrf
used to get the “VRF-ID” for “management” & “mgmt:inb”. The VRF-IDs are used in reading the
iptables.
• show ip route vrf management
• show ip route vrf mgmt:inb
“show ip route vrf” commands are used to verify routes in the management VRFs.
For Example:
✤ On each Leaf or Spine that you are troubleshooting SNMP issues access ROOT user before moving on to each of the sections to follow:
For Example:
(note: some output has been abbreviated for display purposes)
rtp1-leaf1# whoami
root
Debugging SNMP on LEAF\SPINE (cont.)
✤ On each Leaf or Spine, verify the “snmpd” process is running. Record the process ID (pid) for “snmpd”.
You can use one or both of the following commands:
• ps aux | grep snmp
• pidof snmpd
For Example:
(note: some output has been abbreviated for display purposes)
Note: Repeat on each Leaf or Spine node having issues with the SNMP feature.
Debugging SNMP on LEAF\SPINE
“netstat”
✤ On each Leaf or Spine, gather some network statistics in relation to “snmp” and “snmp ports”. You use
the output to verify the management interfaces are transmitting & recieving packets. You can also verify
that the Leaf or Spine node is listening on the SNMP ports. You can use the following commands to
gather network status:
• netstat -ai | grep eth0
• netstat -ai | grep kpm_inb
• netstat -nr
• netstat -uta | grep snmp
• netstat -lutn | grep 161
For Example:
(note: some output has been abbreviated for display purposes)
Note: Repeat on each Leaf or Spine node having issues with the SNMP feature.
Debugging SNMP on LEAF\SPINE
“netstat”
For Example: (cont.)
Note: Repeat on each Leaf or Spine node having issues with the SNMP feature.
Debugging SNMP on LEAF\SPINE
“iptables”
✤ On each Leaf or Spine, check the “iptables” to see what rules are programmed for SNMP . The
programming of “iptable” rules is crucial to the success of the SNMP configuration and deployment to
Leaf & Spine nodes. You can use the following commands to check the “iptable” rules:
• iptables --list | grep snmp
• iptables -S | grep -i snmp
• iptables -nvL
Note: Refer to the “show vrf” commands mentioned earlier and repeat on each Leaf or Spine node having issues with the SNMP
feature.
For Example:
(note: some output has been abbreviated for display purposes)
Note: If SNMP is running and you are not seeing snmp in the IP Tables, use the recorded "snmpd" pid and kill the process. Use
"kill -9 [snmp pid]". After killing the process, check the IP Tables again.
Debugging SNMP on LEAF\SPINE
Verify SNMP Traps using “tcpdump”
✤ Access the Leaf\Spine as "root" user and use "tcpdump" command to verify SNMP Traps are being sent. Use UDP port 162 or any
other UDP Ports that are configured for the SNMP trap destinations in the ACI SNMP Monitoring Group. You can use the following
"tcpdump" commands to check for SNMP Traps on Leaf\Spine Nodes:
• tcpdump -i oobmgmt -f port 162 -vv
• tcpdump -i eth0 -f port 162 -vv
• tcpdump -i kpm_inb -f port 162 -vv
For Example:
LEAF (OOB)
LEAF (INB)
172.18.242.14.35944 > 10.150.188.139.snmp-trap: [udp sum ok] { SNMPv2c C=deadbeef { V2Trap(172) R=760
system.sysUpTime.0=18531622 S:1.1.4.1.0=E:cisco.9.276.0.1 interfaces.ifTable.ifEntry.ifIndex.436224000=436224000
interfaces.ifTable.ifEntry.ifAdminStatus.436224000=2 interfaces.ifTable.ifEntry.ifOperStatus.436224000=2
31.1.1.1.1.436224000="eth1/5" interfaces.ifTable.ifEntry.ifType.436224000=6 } }
17:31:45.302886 IP (tos 0x0, ttl 65, id 7435, offset 0, flags [none], proto UDP (17), length 219)
172.18.242.14.50066 > 10.150.45.175.snmp-trap: [udp sum ok] { SNMPv2c C=deadbeef { V2Trap(172) R=760
system.sysUpTime.0=18531622 S:1.1.4.1.0=E:cisco.9.276.0.1 interfaces.ifTable.ifEntry.ifIndex.436224000=436224000
interfaces.ifTable.ifEntry.ifAdminStatus.436224000=2 interfaces.ifTable.ifEntry.ifOperStatus.436224000=2
31.1.1.1.1.436224000="eth1/5" interfaces.ifTable.ifEntry.ifType.436224000=6 } }
17:31:45.403462 IP (tos 0x0, ttl 65, id 7517, offset 0, flags [none], proto UDP (17), length 219)
172.18.242.14.35944 > 10.150.188.139.snmp-trap: [udp sum ok] { SNMPv2c C=deadbeef { V2Trap(172) R=761
system.sysUpTime.0=18531633 S:1.1.4.1.0=E:cisco.9.276.0.1 interfaces.ifTable.ifEntry.ifIndex.436224000=436224000
interfaces.ifTable.ifEntry.ifAdminStatus.436224000=2 interfaces.ifTable.ifEntry.ifOperStatus.436224000=2
31.1.1.1.1.436224000="eth1/5" interfaces.ifTable.ifEntry.ifType.436224000=6 } }
17:31:45.404221 IP (tos 0x0, ttl 65, id 7523, offset 0, flags [none], proto UDP (17), length 219)
172.18.242.14.50066 > 10.150.45.175.snmp-trap: [udp sum ok] { SNMPv2c C=deadbeef { V2Trap(172) R=761
system.sysUpTime.0=18531633 S:1.1.4.1.0=E:cisco.9.276.0.1 interfaces.ifTable.ifEntry.ifIndex.436224000=436224000
interfaces.ifTable.ifEntry.ifAdminStatus.436224000=2 interfaces.ifTable.ifEntry.ifOperStatus.436224000=2
31.1.1.1.1.436224000="eth1/5" interfaces.ifTable.ifEntry.ifType.436224000=6 } }
17:31:45.504683 IP (tos 0x0, ttl 65, id 7533, offset 0, flags [none], proto UDP (17), length 219)
Debugging SNMP on LEAF\SPINE
Verify SNMP GET & WALK requests using “tcpdump”
✤ Access the Leaf\Spine as "root" user and use "tcpdump" command to verify SNMP GET & WALK requests
are being received and responded to. Use UDP port 161 to monitor for SNMP GET & WALK requests. You
can use the following "tcpdump" commands to check for SNMP GET & WALK requests on Leaf\Spine
Nodes:
• tcpdump -i oobmgmt -f port 161 -vv
• tcpdump -i eth0 -f port 161 -vv
• tcpdump -i kpm_inb -f port 161 -vv
Note: Refer to the earlier “iptables” material to verify and check that SNMP Client Group Policies are configured and deployed correctly.
For Example:
Where “deadbeef” is the community string; and “a.b.c.d” is the IP address for Leaf
\Spine OOB mgmt interface and “w.x.y.z” is the IP address for Leaf\Spine In-Band mgmt
interface.
Debugging SNMP on LEAF\SPINE
Verify SNMP GET & WALK requests using “tcpdump”
For Example:
LEAF (OOB)
rtp1-leaf1# tcpdump -i eth0 -f port 161 -vv
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
17:26:08.548149 IP (tos 0x0, ttl 54, id 45467, offset 0, flags [none], proto UDP (17),
length 73)
10.150.188.139.64245 > rtp1-leaf1.cisco.com.snmp: [udp sum ok] { SNMPv2c C=deadbeef
{ GetRequest(28) R=949769396 system.sysDescr.0 } }
17:26:08.552290 IP (tos 0x0, ttl 64, id 30954, offset 0, flags [none], proto UDP (17),
length 238)
rtp1-leaf1.cisco.com.snmp > 10.150.188.139.64245: [bad udp cksum 3c36!] { SNMPv2c
C=deadbeef { GetResponse(191) R=949769396 system.sysDescr.0="Cisco NX-OS(tm) aci,
Software (aci-n9000-system), Version 11.2(2h), RELEASE SOFTWARE Copyright (c) 2002-2015
by Cisco Systems, Inc. Compiled 2016/02/24 07:51:47" } }
LEAF (INB)
rtp1-leaf1# tcpdump -i kpm_inb -f port 161 -vv
tcpdump: listening on kpm_inb, link-type EN10MB (Ethernet), capture size 65535 bytes
17:27:38.527229 IP (tos 0x0, ttl 53, id 14415, offset 0, flags [none], proto UDP (17),
length 73)
10.150.188.139.63531 > 172.18.242.14.snmp: [udp sum ok] { SNMPv2c C=deadbeef
{ GetRequest(28) R=799765014 system.sysDescr.0 } }
17:27:38.542411 IP (tos 0x0, ttl 65, id 58277, offset 0, flags [none], proto UDP (17),
length 238)
172.18.242.14.snmp > 10.150.188.139.63531: [udp sum ok] { SNMPv2c C=deadbeef
{ GetResponse(191) R=799765014 system.sysDescr.0="Cisco NX-OS(tm) aci, Software (aci-
n9000-system), Version 11.2(2h), RELEASE SOFTWARE Copyright (c) 2002-2015 by Cisco
Systems, Inc. Compiled 2016/02/24 07:51:47" } }
OID=.1.3.6.1.2.1.1.1.0
Type=OctetString
Value=Cisco NX-OS(tm) aci, Software (aci-n9000-system), Version 11.2(2h),
RELEASE SOFTWARE Copyright (c) 2002-2015 by Cisco Systems, Inc. Compiled 2016/02/24 07:51:47
OID=.1.3.6.1.2.1.1.1.0
Type=OctetString
Value=Cisco NX-OS(tm) aci, Software (aci-n9000-system), Version 11.2(2h),
RELEASE SOFTWARE Copyright (c) 2002-2015 by Cisco Systems, Inc. Compiled 2016/02/24 07:51:47
Debugging SNMP on LEAF\SPINE
Verify SNMP Requests & Traps using “strace”
✤ Access the Leaf\Spine as "root" user and use "strace" command to trace the SNMP process for SNMP Requests & SNMP Traps
on the Leaf\Spine Nodes. You can use the following "strace" commands to trace the SNMP process on Leaf\Spine Nodes:
• strace -p 5881 -f -e trace=network -s 10000
• strace -p 5881 -o snmpd_trace.txt
For Example:
LEAF (PROCESS)
Note: Some of the above commands may or may not produce output when performed on a Leaf or Spine node. These are just some examples which may point you in the right direction.
In addition to the “Show” commands that listed earlier to verify the SNMP configuration on APIC
Controllers, you can use some additional commands to gather more information in regards to SNMP.
Some of the following commands may require ROOT access. Temporary “Root” access requires
assistance from a Cisco ACI TAC Engineer.
In "Brazos" & previous ACI releases, the leaf\spine node switches did NOT require a OOB or INB contract
to allow SNMP Get Requests using UDP DestPort 161: for SNMP. These requests cannot be blocked
through contracts. Creating a SNMP ClientGroup in the SNMP policy with a list of Client-IP Addresses
restricts SNMP access to only the configured Client-IP Addresses. If no Client-IP address is configured,
SNMP packets are allowed from anywhere.
In "Brazos", Cisco added SNMP support for the APIC(s). The behavior for default allowed ports for the
APIC it is “Different". Unlike the Switches, a CONTRACT is needed for the APIC to allow SNMP. This is
“NEW” with brazos. In your OOB Contract defined for your External Management Network Instance
Profile. Once you add Ports 161 & 162 to the filter of the OOB Contract, your SNMP Gets should work as
expected.
Also in addition to contracts being needed, Node Management Address(s) in the Tenant mgmt need to be
configured for the APIC(s). Verify that the APIC Node management address(s) are configured also.
Debugging SNMP on the APIC (cont.)
✤ On each APIC that you are troubleshooting SNMP issues access ROOT user before moving on to each of the sections to follow:
For Example:
(note: some output has been abbreviated for display purposes)
rtp1-apic1# whoami
root
Debugging SNMP on APIC (cont.)
✤ On each APIC, verify the “snmpd” process is running. Record the process ID (pid) for “snmpd”. You can
use one or both of the following commands:
• ps aux | grep snmp
For Example:
(note: some output has been abbreviated for display purposes)
Note: Repeat on each APIC node having issues with the SNMP feature.
Debugging SNMP on APIC
“netstat”
✤ On each APIC, gather some network statistics in relation to “snmp” and “snmp ports”. You use the output to verify the
management interfaces are transmitting & recieving packets. You can also verify that the APIC node is listening on the
SNMP ports. You can use the following commands to gather network status:
• netstat -ai | egrep "Iface|bond0.1100"
• netstat -ai | egrep "Iface|bond0.1100|oobmgmt"
• netstat -nr
• netstat -lutn | grep 161
• netstat -aon | grep ":161"
Note: “bond0.1100” is the vlan encap configured on the INB mgmt EPG for APIC. Replace “1100” for your configured vlan encap.
For Example:
(note: some output has been abbreviated for display purposes)
Note: Repeat on each APIC node having issues with the SNMP feature.
Debugging SNMP on APIC
“netstat”
For Example: (cont.)
Note: Repeat on each APIC node having issues with the SNMP feature.
Debugging SNMP on APIC
“iptables”
✤ On each APIC, check the “iptables” to see what rules are programmed for SNMP . The programming of
“iptable” rules is crucial to the success of the SNMP configuration and deployment to APICs. You can use the
following commands to check the “iptable” rules:
• Use the output of “show snmp clientgroups” and “show snmp hosts” and compare with “iptables”
• iptables -S | grep 161
• iptables -S | grep 162
• iptables --list | grep snmp
• iptables --list -v | grep snmp
• iptables --list -v
• iptables -nvL
For Example:
Note: the "fp-137 & fp-138" listed above is the OOB contract & filters. INB contracts & filters are not programmed
since the filtering is applied at the border or services leaf.
Debugging SNMP on APIC
“iptables”
Note: the “fp-137 & fp-138” listed above is the OOB contract & filters. INB contracts & filters
are not programmed since the filtering is applied at the border or services leaf.
Debugging SNMP on APIC
Verify SNMP Traps using “tcpdump”
✤ Access the APIC as "root" user and use "tcpdump" command to verify SNMP Traps are being sent. Use UDP port 162 or any
other UDP Ports that are configured for the SNMP trap destinations in the ACI SNMP Monitoring Group. You can use the
following "tcpdump" commands to check for SNMP Traps on APIC Nodes:
• tcpdump -i oobmgmt -f port 162
• tcpdump -i bond0.1100 -f port 162
• tcpdump -vvxi oobmgmt udp port 162
• tcpdump -vvxi bond0.1100 udp port 162
For Example:
APIC (INB)
APIC (INB)
20:26:11.786539 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 130)
rtp1-apic1-inb.cisco.com.46108 > 10.150.188.85.snmptrap: [bad udp cksum d50!] { SNMPv2c C=deadbeef { V2Trap(85)
R=1246750429 S:1.1.4.1.0=E:cisco.9.117.2.0.2 E:cisco.9.117.1.1.2.1.1.10608=1 E:cisco.9.117.1.1.2.1.2.10608=2 } }
0x0000: 4500 0082 0000 4000 4011 d561 ac12 f20b
0x0010: 0a96 bc55 b41c 00a2 006e 6589 3064 0201
0x0020: 0104 0864 6561 6462 6565 66a7 5502 044a
0x0030: 4fe6 dd02 0100 0201 0030 4730 1906 0a2b
0x0040: 0601 0603 0101 0401 0006 0b2b 0601 0401
0x0050: 0909 7502 0002 3014 060f 2b06 0104 0109
0x0060: 0975 0101 0201 01d2 7002 0101 3014 060f
0x0070: 2b06 0104 0109 0975 0101 0201 02d2 7002
0x0080: 0102
Debugging SNMP on APIC
Verify SNMP Traps using “tcpdump”
For Example:
APIC (OOB)
APIC (OOB)
Note: Refer to the earlier “iptables” material to verify and check that SNMP Client Group Policies are configured and deployed correctly.
For Example:
Where “deadbeef” is the community string; and “a.b.c.d” is the IP address for APIC OOB
mgmt interface and “w.x.y.z” is the IP address for APIC In-Band mgmt interface.
Debugging SNMP on APIC
Verify SNMP GET & WALK requests using “tcpdump”
For Example:
APIC (INB)
APIC (INB)
20:37:38.846458 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 133)
rtp1-apic1-inb.cisco.com.snmp > 10.150.188.85.63367: [bad udp cksum d324!] { SNMPv2c C=deadbeef
{ GetResponse(88) R=32463683 system.sysDescr.0="APIC VERSION 1.2(3c); PID APIC-SERVER-L1; Serial FCH1745V13S" } }
0x0000: 4500 0085 0000 4000 4011 d55e ac12 f20b
0x0010: 0a96 bc55 00a1 f787 0071 658c 3067 0201
0x0020: 0104 0864 6561 6462 6565 66a2 5802 0401
0x0030: ef5b 4302 0100 0201 0030 4a30 4806 082b
0x0040: 0601 0201 0101 0004 3c41 5049 4320 5645
0x0050: 5253 494f 4e20 312e 3228 3363 293b 2050
0x0060: 4944 2041 5049 432d 5345 5256 4552 2d4c
0x0070: 313b 2053 6572 6961 6c20 4643 4831 3734
0x0080: 3556 3133 53
Debugging SNMP on APIC
Verify SNMP GET & WALK requests using “tcpdump”
For Example:
APIC (OOB)
APIC (OOB)
20:37:14.005334 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 133)
apic1-fab-1.cisco.com.snmp > 10.150.188.85.65485: [bad udp cksum d2b7!] { SNMPv2c C=deadbeef { GetResponse(88)
R=239512186 system.sysDescr.0="APIC VERSION 1.2(3c); PID APIC-SERVER-L1; Serial FCH1745V13S" } }
0x0000: 4500 0085 0000 4000 4011 6a2f 0a7a fed3
0x0010: 0a96 bc55 00a1 ffcd 0071 d0bb 3067 0201
0x0020: 0104 0864 6561 6462 6565 66a2 5802 040e
0x0030: 46aa 7a02 0100 0201 0030 4a30 4806 082b
0x0040: 0601 0201 0101 0004 3c41 5049 4320 5645
0x0050: 5253 494f 4e20 312e 3228 3363 293b 2050
0x0060: 4944 2041 5049 432d 5345 5256 4552 2d4c
0x0070: 313b 2053 6572 6961 6c20 4643 4831 3734
0x0080: 3556 3133 53
Debugging SNMP on APIC
Sample SNMP requests (OSX, Windows, & linux)
OID=.1.3.6.1.2.1.1.1.0
Type=OctetString
Value=APIC VERSION 1.2(2h); PID APIC-SERVER-L1; Serial FCH1806V0K2
Debugging SNMP on APIC
Addition samples of useful SNMP requests (OSX)
From MAC OSX Client:
For Example:
APIC (PROCESS)
Note: Some of the above commands may or may not produce output when performed on a APIC. These are just some examples which may point you in the right
direction.
For Example:
/var/log/dme/log/svc_ifc_eventmgr.bin.log.184.gz:526||16-04-13 20:01:08.445+00:00||snmp||DBG4||co=doer:
255:127:0xff0000000002b908:1,dn=uni/fabric/snmpgroup-deadbeef-snmpGrp/trapdest-10.117.67.23-port-162,fn=[notify]|| Invoking "snmptrap -v 2c
-c deadbeef 10.117.67.23:162 uptime 1.3.6.1.4.1.9.9.117.2.0.2 1.3.6.1.4.1.9.9.117.1.1.2.1.1.10548 i 1 1.3.6.1.4.1.9.9.117.1.1.2.1.2.10548 i 2" argc=14||../
common/src/events/local/./IfcSnmpTrapNotifier.cc||696
/var/log/dme/log/svc_ifc_eventmgr.bin.log.114.gz:526||16-04-12 17:57:36.488+00:00||event_||DBG4||co=doer:28:1:0xe0000000010c86fe:
1,dn=uni/fabric/moncommon/snmpsrc-deadbeef-snmpSrc,fn=[findMonObjDnMo]|| No MonObjDnMo found, dn class: snmpGroup(1692)||../
common/src/events/common/MonObjDnMoHelper.h||32
ACI SNMP Caveats - Issues
This section will discuss some known caveats or issues with the SNMP feature in the ACI
Solution. A few notable Caveats or Issues are:
ACI SNMP Caveats - Issues - Gotchas
When SNMP is configured correctly for SNMP Traps & SNMP GETs\WALKs, the SNMP feature works as
expected. Most of the issues relate to misconfiguration or issues with software programming. The
following are some common gotchas that we see and you can use the material in the technote to
troubleshoot snmp issues in the ACI Fabric.
• In "Brazos", Cisco added SNMP support for the APIC(s). The behavior for default allowed ports for the
APIC it is “Different". Unlike the Switches, a CONTRACT is needed for the APIC to allow SNMP. This
is “NEW” with brazos. In your OOB Contract defined for your External Management Network
Instance Profile. Once you add Ports 161 & 162 to the filter of the OOB Contract, your SNMP Gets
should work as expected.
• If you are using SNMP ports other than ports 161 & 162, make sure the non-standard ports are
configured in your ACI SNMP configuration.
• Node Management Address(s) in the Tenant mgmt need to be configured for the APIC(s), Leaf(s), and
Spine(s). Verify that the Node management address(s) are configured.
• The ACI Devices (APIC(s), Leaf(s), and Spine(s)) IP addresses for OOB & INB need to be added to
your SNMP AGENT Monitoring Application.
• Check Firewall configuration on the SNMP AGENT Monitoring Application Server.
• “iptables” programming on the ACI devices
• Verify the correct MIBs loaded on the SNMP AGENT Monitoring Application Server.
References & Resources
References and Resources
Reference Links
✤ [1] Cisco ACI MIB Quick Reference
http://www.cisco.com/c/en/us/td/docs/switches/datacenter/aci/apic/sw/1-x/mib/guide/
b_Cisco_ACI_MIB_Quick_Reference/b_Cisco_ACI_MIB_Quick_Reference_chapter_00.html
✤ [2] Cisco APIC NX-OS Style Command-Line Interface Configuration Guide
http://www.cisco.com/c/en/us/td/docs/switches/datacenter/aci/apic/sw/1-x/cli/nx/cfg/
b_APIC_NXOS_CLI_User_Guide.html
✤ [3] Cisco APIC NX-OS Style CLI Command Reference
http://www.cisco.com/c/en/us/td/docs/switches/datacenter/aci/apic/sw/1-x/cli/nx/cr/
b_APIC_NXOS_CLI_Cmd_Reference.html
✤ [4] ACI MIB Support List
http://www.cisco.com/c/dam/en/us/td/docs/switches/datacenter/aci/apic/sw/1-x/mib/list/mib-support.html
✤ [5] SNMP Object Navigator
http://snmp.cloudapps.cisco.com/Support/SNMP/do/BrowseMIB.do?local=en
VISORE Class or DN
✤ (snmpPol, snmpClientGrpP, snmpCommunityP, snmpTrapDest, snmpSrc, snmpCtxP)
✤ (mgmtSubnet, mgmtRsOoBCons, vzOOBBrCP, vzEntry)
References and Resources (cont.)
1. Which of the following fuctions of SNMP are supported on the APIC and Leaf & Spine Nodes: (Choose all that
apply)
a. SNMPv3
b. SNMP Traps (v1, v2c, and v3)
c. SNMP write commands (Set)
d. SNMP read queries (Get, Next, Bulk, Walk)
e. All of the above are functions of SNMP support for ACI
2. SNMP support was added to APIC controllers in ACI release 1.2 (Brazos). In order for SNMP read queries to work
successfully to an APIC, what configuration requirements need to be configured: (Choose all that apply)
a. SNMP on APIC using OOB management EPG requires an explicit “Out-Of- Band Contract” on the APIC for enabling
the SNMP port (UDP:161).
b. Configure a SNMP Policy for the ACI Fabric.
c. SNMP on APIC using INB management EPG requires an explicit “In-Band Contract” on the APIC for enabling the
SNMP port (UDP:161).
d. Static node management address for the APIC management interfaces.
e. Create SNMP client group policies with SNMP clients.
f. All of the above need to be configured for SNMP read queries to work successfully to an APIC.
Review Questions
3. What SNMP configuration steps are required to be enable SNMP Traps for the APICs and Leaf & Spine
nodes in the ACI Fabric: (Choose all that apply)
4. Which single ACI Fabric Monitoring policy can be configured to use an SNMP Source that will be
applied to both fabric and access infrastructure hierarchies:
5. Which SNMP MIBs are supported on the APIC: (Choose all that apply)
1. a, b, d
2. f
3. a, c, e
4. c
5. b, c, e, g