In SDN alerts from VNA, we can see alarms showing Name as a "APIC Cluster
", instead of the actual switch name:
DX NetOps VNA all currently supported releases up to 24.3.6
It is not a matter of naming, but the selection of the right item to assert the alarm on. When the plugin processes the alarm, it finds out the entity using the attribute dn
in the alarm. What it does is using a set of pre-defined expressions to match the dn
, with the matched expression, it extracts the entityId.
If none of the expressions matches, then it defaults to the controller as the entity to impact.
We are looking to change this in an upcoming release
As the list of pre-defined expressions are not matching, you can add additional expressions in the aci-fault-config.xml
file as a work-around.
The expression you place there has to match the dn of this alarms and capture the switch dn
from the dn
in the alarm.
So first you have to do is getting examples of the dn in those alarms to properly define the right expression
The dn has a directory format. ACI defines dn in a hierarchical mode using a folder structure naming convention.
For example, this is the dn of a switch:
topology/pod-1/node-1/sys
And this is a dn for an interface in the switch:
topology/pod-1/node-1/sys/phys-[eth1/33]
If you want to impact that alarm in the switch, you have to create a expression in the aci-fault-config.xml
that matches that dn
and capture the switch dn
For example:
(.+?)\\/phys-.*
this will match:
topology/pod-1/node-1/sys/phys-[eth1/33]
It will extract (the part in the parenthesis) the switch dn
- topology/pod-1/node-1/sys
The default aci-fault-config.xml
file
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<aci-fault-config>
<fault-patterns>
<regex>.*fv-\[(.+?)].*</regex>
<regex>.*tnlp-\[(.+?)].*</regex>
<regex>.*instp-\[(.+?)].*</regex>
<regex>.*vns-\[(.+?)].*</regex>
<regex>.*inb-\[(.+?)].*</regex>
<regex>.*oob-\[(.+?)].*</regex>
<regex>.*rtd-\[(.+?)].*</regex>
<regex>.*br-\[(.+?)].*</regex>
<regex>.*ra-\[(.+?)].*</regex>
<regex>.*client-\[(.+?)].*</regex>
<regex>.*jobs-\[(uni\/.+?)\/</regex>
</fault-patterns>
<filter enabled="false" filterType="whitelist">
<fault-types></fault-types>
<fault-codes></fault-codes>
<fault-severities></fault-severities>
</filter>
</aci-fault-config>
Stop Wildfly first:
systemctl stop wildfly
Then add the new regex (<regex>
) to the (.+?)\\/phys-.*
/</regex><fault-patterns>
section. So for example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<aci-fault-config>
<fault-patterns>
<regex>.*fv-\[(.+?)].*</regex>
<regex>.*tnlp-\[(.+?)].*</regex>
<regex>.*instp-\[(.+?)].*</regex>
<regex>.*vns-\[(.+?)].*</regex>
<regex>.*inb-\[(.+?)].*</regex>
<regex>.*oob-\[(.+?)].*</regex>
<regex>.*rtd-\[(.+?)].*</regex>
<regex>.*br-\[(.+?)].*</regex>
<regex>.*ra-\[(.+?)].*</regex>
<regex>.*client-\[(.+?)].*</regex>
<regex>.*jobs-\[(uni\/.+?)\/</regex>
<regex>(.+?)\\/phys-.*
/</regex> <<<<<added here
</fault-patterns>
<filter enabled="false" filterType="whitelist">
<fault-types></fault-types>
<fault-codes></fault-codes>
<fault-severities></fault-severities>
</filter>
</aci-fault-config>
Then restart Wildfly.