Table of contents
The NOC team of a service provider needed to get very specific alerts sent to their instance of NetCool from NMIS.
Sample event.
1388903720,NODENAME,Proactive Interface Utilisation,Critical,INTERFACENAME,INTERFACE DESCRIPTION Bandwidth=7168000: Value=93.17 Threshold=93,GROUPNAME
This event will either be sent as a syslog or logged to a file, either of which will be processed by NetCool.
An NMIS utility script which finds all the interfaces on all the nodes, performs the calculation on the interfaces and sends events to the configured syslog server.
For testing a local syslog server can be used and the facility could be local3 (configurable).
In production the syslog should be sent using TCP to ensure it arrives. The NetCool team would then process the received syslog event into NetCool.
Example syslog
Aug 25 17:55:01 volla interface_util_alerts.pl[4264]: NMIS_Event::volla::1661414101,asgard-pphh,Proactive Interface Utilisation,Fatal,FastEthernet0/0,123 -- Opmantek LAN -- Bandwidth=100000000 -- Value=11.95 Threshold=10 Aug 25 17:55:01 volla interface_util_alerts.pl[4264]: NMIS_Event::volla::1661414101,asgard-pphh,Proactive Interface Utilisation,Fatal,FastEthernet0/1,123 -- WAN -- Bandwidth=100000000 -- Value=11.92 Threshold=10 Aug 25 18:23:06 volla interface_util_alerts.pl[7621]: NMIS_Event::volla::1661415786,asgard-pphh,Proactive Interface Utilisation,Fatal,FastEthernet0/0,123 -- Opmantek LAN -- Bandwidth=100000000 -- Value=6.48 Threshold=5 Aug 25 18:23:06 volla interface_util_alerts.pl[7621]: NMIS_Event::volla::1661415786,asgard-pphh,Proactive Interface Utilisation,Fatal,FastEthernet0/1,123 -- WAN -- Bandwidth=100000000 -- Value=6.45 Threshold=5 |
The code for this solution is included in the NMIS9 contrib folder which is available in the installation or from NMIS9@GitHub, it will be in the folder nmis9/contrib/interface_util_alerts
A good option to install is to create a util folder e.g. /usr/local/nmis9/util and then create a symbolic link so the file will run with the correct paths, and copy the nocSyslog.nmis to the NMIS9 conf folder
Some handy commands:
mkdir /usr/local/nmis9/util ln -s nmis9/contrib/interface_util_alerts/interface_util_alerts.pl /usr/local/nmis9/util/interface_util_alerts.pl ln -s nmis9/contrib/interface_util_alerts/nocSyslog.nmis /usr/local/nmis9/conf |
Update nocSyslog.nmis with your needed config, the options should be self explanatory except for extra_logging, which if enabled will give you some logging to nmis.log with when events are sent over syslog to NetCool.
%hash = ( 'syslog' => { 'syslog_facility' => 'local3', 'syslog_server' => 'localhost:udp:514', 'extra_logging' => 1, } ); |
To run it on a single node,
/usr/local/nmis9/util/interface_util_alerts.pl node=YOURNODENAME info=true |
To run on all nodes, just run the script.
To put into production, set a cron.d file, e.g. /etc/cron.d/interface_util_alerts