How to add a User Defined Object Type in Entuity Network Analytics (ENA)
This article is going to show you the basic concepts of the User Defined Polling functionality and discover how to add a User Defined Object Type in Entuity Network Analytics to have better control of your network management as you navigate around your network.
What you’ll Learn
- User Defined Polling
- User Defined Polling Attribute
- Entuity Network Analytics
- Network Management
Here’s an example of a report showing files from the flash file system on Cisco routers and switches. Now these flash files are not discovered using the standard configuration of Entuity. I will show you how extra objects can be defined to represent all manner of different types of concept.
There’s a MIBs called Cisco flash MIB that defines which flash files are present on Cisco devices along with details including their size. The standard Entuity license is supplied with support for 20 extra object types in addition to all the other system objects used to model for standard supported aspects of network devices. In this MIB, there’s one table of files for the entire device and that matches the way these extra objects are intended to be used. Each extra object type has two attributes defined representing the name of each object instance and the index into the MIB table from which it’s being populated.
Here is the user-defined poling page which is available from the administration menu.
Select the Collector tab and start by adding a new user defined collector for the object attribute that holds the index. Note that this is still an object attribute even though I’m about to define its purpose.
Then choose the Object Attributes category and click the Add button to add a new collector.
In this case I will need to select suitable Cisco device that has flash files available.
Name and Description
The name of the collector isn’t really that important but it will help keep it understandable if you give it a meaningful name. Add a description to help others who may need to apply changes at a later date but let’s skip that step for now.
The appropriate object should then be chosen from the Object Type menu. In this case, I am going to be using the first of the extra object types which is UDcomponent01. If it has not already been selected by default, the index attribute should be chosen from the Attribute menu.
OID and MIB Browser
The MIB browser is going to be used to locate a suitable OID to perform a MIB table walk to obtain all the entries that will be turned into individual object instances, which in this example will represent each and every flash file on the device.
If we used the Manage MIBs option to see the list of available MIBs, you’ll notice that the Cisco flash MIB isn’t present but it can be imported through the browser if you have a copy available.
After importing it into the MIB repository on the Entuity server, you can attempt to load it which causes it to be passed. In this case you’ll see that the loading was unsuccessful, but a quick look that the results window explains why – it is trying to import another MIB file which isn’t present, so that also needs to be imported into the MIB repository.
Now you have to import the required file and try loading the primary MIB again. It completed successfully this time. You only need to load the primary MIB as it will import whichever other dependent MIB files are required to complete the job, as long as they’re available in the MIB repository on the server.
Back in the MIB Browser window, I am going to locate the table that holds the list of files with the aid of the find feature. I know it contains FlashFileTable. As you can see form the image and it is called ciscoFlashFileTable.
I am looking for the small data type such as an Integer or Gauge that I can use to walk the table to derive the index. The file size attribute should be suitable and I can confirm that it’s accessible by reading the first entry in the table using the Get Next button. Every time you click the Get Next button, another entry will be read from the same table.
Incidentally, if you’d chosen the ciscoFlashFileIndex OID, you would have found that it would not return any values using Get Next as it’s a non-accessible OID.
Once you click the OK button, you will see that the appropriate OID has been placed in the collector definition. It’s contained in some further syntax in the method statement.
Index collectors don’t use an index themselves, so the index setting should always be set to none.
Index attributes have to be handled subtly differently to any other type of attribute as they use an SNMP table work rather than a simple get operation.
I am going to use the Edit button to apply to changes to this statement. Firstly I’m going to change the name of the function being called by adding _indexes to the end of its name. Then the second parameter needs to be modified as it no longer represents the index, but instead it is used to specify the maximum number of entries that will be returned by the table work. Let’s use 500 for this example.
You will notice down here in the filter statement that as I had previously selected a Cisco device, the system object ID is being checked to see if it is a Cisco device. This means that unless changes are made, the flash file discovery operation will only be performed on Cisco devices which is what I want as this MIB is Cisco proprietary. Everything else can be left with its default settings and click OK.
Assigning a user defined collector for the name attribute is even simpler as this is an ordinary attribute, so no changes need to be made to the method syntax.
In this case I am going to obtain the flash file from the MIB and used this to identify each file.
Since this is an indexed attribute, I am going to select that index rather than none, which we have already defined that will be incorporated in the method syntax.
The basic definition of the user defined object has now been completed.
Over the next few minutes or possibly hours on a system that’s already monitoring a large number of devices, the Cisco devices will start to populate a list of flash files which will be visible in the Associations Dashboard.
You will notice that the name of the association is still showing its default value, which is UDComponents01 and when I select it you can see the complete list of flash files on that device.
When I select one of the files and select the Summary Dashboard, you will see that the object type is listed as UDComponent01. The display of these default names is okay while the configuration changes are being performed, you will probably want to change them to a more suitable name at some point.
That’s a configuration file that defines the extra object types and how they will be named in the user interface. This file is in the etc directory of the Entuity installation and is called sw_user_defined_components.cfg. As tempting as it might be to make the necessary changes directly to this file, you shouldn’t do this as those changes would be undone when the system is later upgraded.
Instead, create a new file in the text editor and copy the definitions of the UDComponent01 type and the UDComponent01 attribute into it. The display names can then be edited to refer to the new OID for this object type like this. A list of the components would normally be applauded.
Now save the file and give it the name sw_user_defined_components_site_specific.cfg.
Then add a suitable line to the end of sw_site_specific.cfg file. The exclamation mark on the beginning of the line causes the file to be included into the configuration when the whole server is reconfigured. Now you can save the file.
Before continuing, any logged-in users will need to log out and shut the Entuity server processes down, rerun configure and then restart it. This can all be done from the command line and configure can even be told to reuse the previously supplied settings by including the defaults parameter on its command line.
I have changed directory to where I have installed the product and I am now shutting the ENA server down. The configure utility can be run like this and the default parameter tells it to use exactly the same configuration settings as before.
Now the Entuity server can be restarted. As you can see, the associations on that same device now have the flash files named appropriately and the individual file has the object type of flash file.