To troubleshoot
operations on the Cisco
APIC,
use the
acidiag
command.
Caution |
This command is not intended for every day operation of ACI. Running all forms of the command can be very disruptive and cause
major issues in your network if not used properly. Make sure you understand the full effect on your fabric before running
them.
|
Syntax Description
Option
|
Function
|
avread
|
Displays
APICs
within the cluster. The
avread output includes:
-
Cluster of —Operational cluster size
-
out of
targeted—The desired cluster size
-
active= —Indicates whether the APIC is reachable
-
health= —The overall
APIC
health summary. Displays services with degraded health scores.
-
chassisID= —The known chassis IDs for a given
APIC.
Note
|
Peer
chassis IDs can be incorrect for
APICs
not currently in the cluster.
|
|
bootcurr
|
On the next boot, the APIC system will boot
the current APIC image in the Linux partition. This option is not expected to
normally be used.
|
bootother
|
On the next boot, the APIC system will boot
the previous APIC image in the Linux partition. This option is not expected to
normally be used.
|
bond0test
|
Disruptive test of the APIC connection to the
leaf. This is used for internal Cisco testing purposes only and outside of that
could cause issues with the APIC connection to the fabric.
|
fnvread
|
Displays the address and state of switch nodes registered with
the fabric.
|
fnvreadex
|
Displays additional information for switch nodes registered with
the fabric.
|
linkflap
|
Brings down and back up a specified APIC
interface.
|
preservelogs
|
APIC will archive current logs. During a
normal reboot this automatically occurs. This option can be used prior to a
hard reboot.
|
run
|
Two available options are iptables-list and
lldptool. The iptables-list is used to display the Linux iptables, which are
controlled by the mgmt Tenant contracts. lldptool is used to display lldp
information which is sent or received by the APIC.
|
rvread
|
Summarizes the data layer
state. The output shows a summary of the data layer state for each service. The
shard view shows replicas in ascending order.
|
acidiag rvread
service
|
Displays the data layer
state for a service on all shards across all replicas.
|
acidiag rvread
service
shard
|
Displays the data layer
state for a service on a specific shard across all replicas.
|
acidiag rvread
service
shard
replica
|
Displays the data layer
state for a service on a specific shard and replica.
|
validateimage
|
Prior to loading an image into the firmware
repository, the image can be validated. Note that this function runs as a
normal part of the process of the image being added into the repository.
|
validateenginxconf
|
Validates the generated nginx configuration
file on APIC to ensure nginx can start with that configuration file. This is
meant for debug use, in cases where the nginx webserver is not running on APIC.
|
Service IDs
The service IDs listed in the table below are also visible when entering the
man acidiag
command.
Table 1. Service IDs
Service
|
ID
|
cliD
|
1 |
controller
|
2 |
eventmgr
|
3 |
extXMLApi
|
4 |
policyelem
|
5 |
policymgr
|
6 |
reader
|
7 |
ae
|
8 |
topomgr
|
9 |
observer
|
10 |
dbgr
|
11 |
observerelem
|
12 |
dbgrelem
|
13 |
vmmmgr
|
14 |
nxosmock
|
15 |
bootmgr
|
16 |
appliancedirector
|
17 |
adrelay
|
18 |
ospaagent
|
19 |
vleafelem
|
20 |
dhcpd
|
21 |
scripthandler
|
22 |
idmgr
|
23 |
ospaelem
|
24 |
osh
|
25 |
opflexagent
|
26 |
opflexelem
|
27 |
confelem
|
28 |
vtap
|
29 |
snmpd
|
30
|
opflexp
|
31 |
analytics
|
32 |
policydist
|
33 |
plghandler
|
34 |
Table 2. Data
States
State
|
ID
|
COMATOSE
|
0
|
NEWLY_BORN
|
1
|
UNKNOWN
|
2
|
DATA_LAYER_DIVERGED
|
11
|
DATA_LAYER_DEGRADED_LEADERSHIP
|
12
|
DATA_LAYER_ENTIRELY_DIVERGED
|
111
|
DATA_LAYER_PARTIALLY_DIVERGED
|
112
|
DATA_LAYER_ENTIRELY_DEGRADED_LEADERSHIP
|
121
|
DATA_LAYER_PARTIALLY_DEGRADED_LEADERSHIP
|
122
|
FULLY_FIT
|
255
|
acidiag
[
start
| stop
| restart
]
[
mgmt
| xinetd
]
acidiag
installer
-u
imageurl
-c
acidiag
reboot
acidiag
touch
[
clean
| setup
]
acidiag
verifyapic
Syntax Description
Option
|
Function
|
-c
|
Specifies a clean install
|
-u
|
Specifies a URL for the
APIC
image.
|
imageurl
|
Specifies an APIC image.
|
installer
|
Installs a new image on
the
APIC,
-c for clean install
|
mgmt
|
Specifies all services on
the
APIC.
|
reboot
|
Reboots the
APIC.
|
restart
|
Restarts services on an
APIC.
|
start
|
Starts services on an
APIC.
|
stop
|
Stops services on an
APIC.
|
touch
[clean | setup]
|
Resets the
APIC
configuration.
-
The
clean option removes all policy data while retaining
the
APIC
network configuration (such as fabric name, IP address, login)
-
The
setup option removes both policy data and the
APIC
network configuration.
|
verifyapic
|
Displays the
APIC
software version.
|
xinetd
|
Specifies xinetd (extended
internet daemon) service, which controls the ssh and telnet daemons.
|
acidiag
crashsuspecttracker
acidiag
dbgtoken
acidiag
version
Syntax Description
Option
|
Function
|
crashsuspecttracker
|
Tracks states of a service
or data subset that indicate a crash.
|
dbgtoken
|
Generates a token used to
generate a root password. This is to be used as directed while working with the
TAC as needed.
|
version
|
Displays the APIC ISO
software version.
|
Examples
The following
examples show how to use the
acidiag
command:
apic1# acidiag version 2.2.1o
apic1# acidiag verifyapic
openssl_check: certificate details
subject= CN=ABC12345678,serialNumber=PID:APIC-SERVER-L1 SN:ABC12345678
issuer= CN=Cisco Manufacturing CA,O=Cisco Systems
notBefore=Sep 28 17:17:42 2016 GMT
notAfter=Sep 28 17:27:42 2026 GMT
openssl_check: passed
ssh_check: passed
all_checks: passed
apic1# acidiag avread
Local appliance ID=1 ADDRESS=10.0.0.1 TEP ADDRESS=10.0.0.0/16 CHASSIS_ID=10220833-ea00-3bb3-93b2-ef1e7e645889
Cluster of 3 lm(t):1(2014-07-12T19:54:04.877+00:00) appliances
(out of targeted 3 lm(t):3(2014-07-12T19:55:03.442+00:00))
with FABRIC_DOMAIN name=mininet set to version=1.0(0.414) lm(t):3(2014-07-12T19:55:13.564+00:00)
appliance id=1 last mutated at 2014-07-12T19:46:06.831+00:00 address=10.0.0.1 tep address=10.0.0.0/16
oob address=192.168.10.1/24 version=1.0(0.414) lm(t):1(2014-07-12T19:54:05.146+00:00)
chassisId=10220833-ea00-3bb3-93b2-ef1e7e645889 lm(t):1(2014-07-12T19:54:05.146+00:00)
commissioned=1 registered=1 active=yes(zeroTime)
health=(applnc:255 lm(t):1(2014-07-12T20:01:22.934+00:00) svc's)
appliance id=2 last mutated at 2014-07-12T19:51:10.649+00:00 address=10.0.0.2 tep address=10.0.0.0/16
oob address=192.168.10.2/24 version=1.0(0.414) lm(t):2(2014-07-12T19:54:05.064+00:00)
chassisId=5d74122c-2ab9-3ccb-b06d-f620d5e20ccd lm(t):2(2014-07-12T19:54:05.064+00:00)
commissioned=1 registered=1 active=yes(2014-07-12T19:51:10.651+00:00)
health=(applnc:255 lm(t):2(2014-07-12T20:01:22.442+00:00) svc's)
appliance id=3 last mutated at 2014-07-12T19:54:05.028+00:00 address=10.0.0.3 tep address=10.0.0.0/16
oob address=192.168.10.3/24 version=1.0(0.414) lm(t):3(2014-07-12T19:54:05.361+00:00)
chassisId=71355d49-6fe7-3a78-a361-72d6c1e3360c lm(t):3(2014-07-12T19:54:05.361+00:00)
commissioned=1 registered=1 active=yes(2014-07-12T19:54:05.029+00:00)
health=(applnc:255 lm(t):3(2014-07-12T20:01:22.892+00:00) svc's)
clusterTime=<diff=0 common=2014-07-14T16:52:20.343+00:00 local=2014-07-14T16:52:20.343+00:00 pF=<displForm=0
offsSt=0 offsVlu=0 lm(t):3(2014-07-12T19:55:03.750+00:00)>>
---------------------------------------------
apic1# acidiag rvread 6 3 1
(6,3,1) st:6 lm(t):3(2014-10-16T08:48:20.238+00:00) le: reSt:LEADER voGr:0 cuTerm:0x19 lCoTe:0x18
lCoIn:0x1800000000001b2a veFiSt:0x31 veFiEn:0x31 lm(t):3(2014-10-16T08:48:20.120+00:00)
lastUpdt 2014-10-16T09:07:00.214+00:00
---------------------------------------------
clusterTime=<diff=65247252 common=2014-10-16T09:07:01.837+00:00 local=2014-10-15T14:59:34.585+00:00
pF=<displForm=0 offsSt=0 offsVlu=0 lm(t):3(2014-10-16T04:50:08.714+00:00)>>
apic1# acidiag rvread 6 3
(6,3,1) st:6 lm(t):3(2014-10-16T08:48:20.238+00:00) le: reSt:LEADER voGr:0 cuTerm:0x19 lCoTe:0x18
lCoIn:0x1800000000001b2a veFiSt:0x31 veFiEn:0x31 lm(t):3(2014-10-16T08:48:20.120+00:00)
lastUpdt 2014-10-16T09:08:30.240+00:00
(6,3,2) st:6 lm(t):1(2014-10-16T08:47:25.323+00:00) le: reSt:FOLLOWER voGr:0 cuTerm:0x19 lCoTe:0x18
lCoIn:0x1800000000001b2a veFiSt:0x49 veFiEn:0x49 lm(t):1(2014-10-16T08:48:20.384+00:00) lp: clSt:2
lm(t):1(2014-10-16T08:47:03.286+00:00) dbSt:2 lm(t):1(2014-10-16T08:47:02.143+00:00) stMmt:1
lm(t):0(zeroTime) dbCrTs:2014-10-16T08:47:02.143+00:00 lastUpdt 2014-10-16T08:48:20.384+00:00
(6,3,3) st:6 lm(t):2(2014-10-16T08:47:13.576+00:00) le: reSt:FOLLOWER voGr:0 cuTerm:0x19 lCoTe:0x18
lCoIn:0x1800000000001b2a veFiSt:0x43 veFiEn:0x43 lm(t):2(2014-10-16T08:48:20.376+00:00)
lastUpdt 2014-10-16T09:08:30.240+00:00
---------------------------------------------
clusterTime=<diff=65247251 common=2014-10-16T09:08:30.445+00:00 local=2014-10-15T15:01:03.194+00:00
pF=<displForm=0 offsSt=0 offsVlu=0 lm(t):3(2014-10-16T04:50:08.714+00:00)>>