Using groovy scripting to work with Netcool Omnibus

How do (or should) you interact/work/integrate with Netcool Omnibus servers?

If you work on systems integration, it's likely that you've run into this question at some point. There are number of options available depending on your needs. Here is a summary of the options that I could come up with:

Netcool suite components.

Not surprisingly, (since integration can be considered core competency) Netcool product suite includes products to faciliate integration with the Omnibus server. You can use "probes" to add (or update) events in Netcool, and can use "gateways" to take them out. Automations are used to work with events as well as "tools" that users can launch from the UI, etc. No need to talk much about these options as they are well known and documented. If you can do what you need using one of these options, you don't have a problem (not considering commercial aspects, etc. just from technical point of view)

Netcool Impact

Impact deserves a separate mention since it provides significant capabilities to work with netcool (omnibus) events as well as data from other sources. Impact provides a language of its own, to manipulate netcool events, enrich them with data from other sources, and many other things. It is safe to say that Impact can be the answer for most (netcool) integration/automation needs. The down side is that Impact is a complex, heavy product that is not easy to implement to say the least. It is also a big financial investment, hence it is not always a good option both from technical and commercial perspectives.

isql

Netcool provides a command line tool that allows executing queries on the database. isql is often used as a low tech tool since it can be called from shell/perl scripts, etc. and may be sufficient for the simple requirements.

Perl DBI/FreeTDS

Netcool components use Sybase libraries for communications so it is possible to use the database libraries (freetds is an open source JDBC library used instead of Sybase JDBC driver) to work with the Omnibus server. Given the flexibility and the power of Perl, this approach means you can do pretty much whatever you want once you get it to work. An open source tool, LooperNG, uses this method to integrate with Netcool.

The problem is, it is quite difficult to get it all up and running. It requires a highly skilled system admin to put the pieces together and there is not much information on how to get this done. Netcool Users Group mailing list is the best source of information on how to get the Perl DBI working as it is for anything related to Netcool.

Despite the difficulties, it's still a good option if you want to work with a non-proprietary powerful scripting language, particularly if you're a skilled Perl programmer.

Java/JDBC

As stated above, since Netcool components use Sybase libraries, it is possible to work with Omnibus server Sybase JDBC driver (some of the native Netcool components use this method). If you're a java programmer, this may be the way to go, keeping in mind that Omnibus may use Sybase libraries to communicate but the database itself is NOT Sybase but a proprietary, in-memory database developed by IBM (MicroMuse), therefore some things may not work as expected.
There is not much information on how to set this up either. One has to go through Sybase JDBC documentation as well as Netcool manuals, etc. to get it working.

As I've stated, each of these methods/tools has pros and cons. I've often found myself frustrated with the shortcomings of these approaches and wanted to combine the positive aspects some of these methods. Enter Groovy4Netcool:

  • easy to use, non-proprietary, powerful, dynamic scripting language (Groovy)
  • platform independent (works on any OS with a JVM)
  • easy to install and configure, no code compilation, dependencies, etc.
  • has some documentation, examples, etc.


Groovy is a dynamic scripting language for Java Virtual Machine (JVM). We use Groovy heavily in our products since we believe JVM as the platform combined with dynamic scripting is the killer combination. In a sense, Groovy brings the pragmatic, dynamic approach of Perl into the Java platform. I can say that my head hurts when I look at java code for more than couple of minutes; but as a system integrator (and not a developer) who can handle some degree of scripting, I find Groovy manageable.


To me, the key is the JVM. Having access to all java libraries, and not having to worry about the operating system, compiling code, hunting down dependencies, etc. is wonderful. Most computers already do have a JRE, and one can get groovy4Netcool up and running in minutes, no system admin blackbelt is needed here!

We've set up an open source project hosted on Google projects, called Groovy4Netcool to share what we have. Groovy4Netcool can be considered more of a systems integration project than a typical software project. It is not a "product". The objective is to make it easier to use groovy to work with Netcool Omnibus servers by providing instructions and examples, as well some infrastructure code.

Hope you find it useful.