I'm building a new Resource / Widget to add to my NPM front page, and its job is to only show data center switch ports that have errors or discards recorded on them.
The canned "High Errors & Discards Today" reports seems to be a good place to start, so I added it to NPM's front page and started working on customizing it.
I gave it a new Title (Data Center Port Errors & Discards Today), then began to work on the "Filter Nodes (SQL)" field to only show devices in the data centers, and this is where I start having some questions.
I'm looking to capture physical port errors and logical (port-channel or SVI or VLAN) information from a list of devices that includes:
- Various models of Cisco ASA firewalls
- Cisco Nexus 9000 ACI devices
- Cisco Nexus 7009's
- Cisco Nexus 5548's
- Cisco 3850's
The SQL Filter I'm testing is:
MachineType Like '*55*' OR MachineType Like '*n9000*' OR MachineType Like '*700*' OR MachineType like '*5548*' OR MachineType like '*38*'
There aren't a lot of errors on the devices' ports, so I'm not sure what I've built is actually including all the devices intended.
Each device has a unique name, and perhaps I could build a SQL filter that included all the names, but the options for filtering via name include several items that seem to overlap.
- What are the differences between "SysName", "Description", and "Caption"? Which of these three options references only the devices' names? Or do they all do the same thing?
- For future reference: What link can you share with me that provides an online resource that describes the many Node Properties and Interface Properties that can be filtered with SQL?
- Is there a better way to build the SQL filter--preferably without using Custom Properties? I've done Custom Properties with good results in the past. But now I'm trying to get away from one-offs like Custom Properties, to make management more cookie-cutter and intuitive. Custom Properties is a useful tool, but is . . . uh . . . too . . . "customized" to fit the goal of reducing one-offs that require more management time and more thought.
- Do you have any SQL syntax suggestions that can accomplish this better than what I've already come up with?
(I'm betting aLTeReGo or sqlrockstar would make short work of this with their SQL/SWQL magic skills!)
Thank you for any considerations you may share, and, as always:
Swift Packets!
Rick Schroeder