For the Cisco ACI plugin in Virtual Network Assurance (VNA), Device name in alarm list is always "APIC Cluster", can this be changed to the switch name?
search cancel

For the Cisco ACI plugin in Virtual Network Assurance (VNA), Device name in alarm list is always "APIC Cluster", can this be changed to the switch name?

book

Article ID: 383873

calendar_today

Updated On:

Products

Network Observability Virtual Network Assurance

Issue/Introduction

In SDN alerts from VNA, we can see alarms showing Name as a "APIC Cluster", instead of the actual switch name:

Environment

DX NetOps VNA all currently supported releases up to 24.3.6

Cause

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

Resolution

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>(.+?)\\/phys-.*/</regex>) to the <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.

Additional Information

You can see our Cisco ACI TechDocs for guidance on customising the plugin: