Next is the JavaScript file, which must be in the custom virtual directory (with alias 'custom'):
Lastly the widget. The widget is only for adding new devices.
If you want to add a delete button, remove the text 'style="display:none;"' from the widget source.
Occasionally, I find it necessary to build auto-enable rules in NetVoyant based on SNMP properties like sysName, sysDescr, and sysObjectID. Unfortunately, these are not all available for every dataset as SNMP parameters that could be used in rules. However, custom properties are always available in auto-enable rules (not discovery rules since property comparison happens after initial discovery). What this means is that rules can be built to automatically disable poll instances according to model, OS version, or software version (as obtained via the sysDescr).
In order for this to work however, each device needs custom properties. Setting these manually is a pain and would take forever for anything other than a lab system. To combat this, I've built this script (thanks Wade for the query help) that creates custom properties for every SNMP capable device containing the sysDescr, sysObjectID, sysName, sysContact, and sysLocation.
@echo off
set sqlcommand=mysql nms2 --skip-column-names -e "select count(*) from devices where snmp_capable=2 and dev_properties
set propertieslist=(select property_set_id from properties where property_name=
set logfile=D:\updateproperties.log
echo %date% - %time% - Script Started >> %logfile%
for %%A in (sysDescr,sysObjectID,sysName,sysContact,sysLocation) do (
echo Devices with %%A property: >> %logfile%
%sqlcommand% in %propertieslist%'%%A')" >> %logfile%
echo Devices without %%A property: >> %logfile%
%sqlcommand% not in %propertieslist%'%%A')" >> %logfile%
)
echo Running query >> %logfile%
set inspropsql=mysql nms2 -e "replace into properties (select dev_properties,
set inspropsql2=0, 0 from devices where snmp_capable=2)"
%inspropsql% 'sysDescr', 18, sys_descr, %inspropsql2%
%inspropsql% 'sysObjectID',18, sys_objectid, %inspropsql2%
%inspropsql% 'sysName', 18, sys_name, %inspropsql2%
%inspropsql% 'sysContact', 18, sys_contact, %inspropsql2%
%inspropsql% 'sysLocation', 18,sys_location, %inspropsql2%
for %%A in (sysDescr,sysObjectID,sysName,sysContact,sysLocation) do (
echo Devices with %%A property: >> %logfile%
%sqlcommand% in %propertieslist%'%%A')" >> %logfile%
echo Devices without %%A property: >> %logfile%
%sqlcommand% not in %propertieslist%'%%A')" >> %logfile%
)
echo %date% - %time% - Script Ended ----------------------------------->> %logfile%
This script has to be run on the poller(s). A new device will not get the properties until the script is run again, so, it is probably best to set it to run as a scheduled task every night right after discovery.
Once you've got the properties in place, you can create auto-enable rules using these properties by referencing them with the $. So, for example, if I wanted to disable ifstats monitoring on all devices that have a sysLocation like 'France', I would add the following to the Property Rule in the add auto-enable rule dialog box:
$sysLocation like '%France%'
Save the rule, apply it to the dataset, then rediscover the device. Voilá!
No comments:
Post a Comment