IBM Tivoli Netcool Integration
Tivoli Netcool / OMNIbus is a carrier-class service and business assurance system that collects and consolidates enterprise-wide event and alarm information in real-time from many different network data sources and presents a simplified view of this information to operators and administrators. Netcool Omnibus tracks alerts in a high-performance, in-memory database, and presents information of interest to specific users through configurable filters and views.
Tivoli Netcool / OMNIbus has automation functions that can perform intelligent processing on managed alerts. Netcool triggers form the basis of the ObjectServer automation subsystem. Triggers automatically fire (execute a trigger action) when the ObjectServer detects an incident associated with a trigger. In a trigger, you can execute SQL commands and call procedures in response to the change. Netcool triggers have also the ability to call external procedures, which opens the way to use triggers as a notification system.
OpsGenie Netcool plugin provides bi-directional integration with Netcool, enabling users to receive notifications for Netcool events via email, SMS, phone call, and iPhone/Android push notifications, and interact with events (acknowledge, write to journal, etc.) directly from mobile devices using OpsGenie apps.
Scenario 1: Email Integration
Netcool events can simply be forwarded to OpsGenie via email to create alerts in OpsGenie. This integration does not require any client components and rely on Netcool's email capabilities. Netcool default installation comes with a temporal trigger called "mail_on_critical" which periodically checks critical events that are not unacknowledged after 30 minutes and send mails via "send_mail" procedure. This trigger can be used as an example of how to create OpsGenie alerts by sending emails. To send Netcool incidents to OpsGenie via email, you should have a correctly configured email sending tool (mailx, sendmail, etc.) and the process agent. The configuration of the process agent, SMTP server, etc. is out of scope of this document.
The steps below describe how to create OpsGenie alerts for critical events which are unacknowledged for 30 minutes:
- Please create an OpsGenie account if you haven't done already
- Go to Email Integration page and add one. You can find more information on OpsGenie email integration support here.
- Modify the action section of "mail_on_critical" trigger, using the email address from the OpsGenie Email Integration, like the following and enable it. Note that we use the "Summary" field instead of "Netcool Email" text for the email subject, which will be transformed to OpsGenie alert message.
That's all. If everything goes well you will see OpsGenie alerts for every critical Netcool event which is unacknowledged for 30 minutes.
If you have any problem, check your email utility is working correctly. You may change the contact email to a mail box you have access to test your Netcool procedure is working correctly. Please don't hesitate to contact us, if your problem persists.
Scenario 2: Integration via Lamp & Marid
OpsGenie also provides the Netcool Integration plugin that provides integration via the web API (HTTPS) using OpsGenie provided tools Lamp and Marid. When installed and appropriately configured, the plugin creates OpsGenie alerts via Lamp command line utility, enables recipients to execute actions like acknowledge, write to journal, etc. on Netcool events directly from their mobile devices or OpsGenie web console.
The steps below describes how to create alerts and executing actions on alerts using OpsGenie Netcool integration package. You might need to slightly change these instructions depending on your Netcool configuration.
- Download OpsGenie Netcool Integration files, which includes :
- Lamp - OpsGenie command line utility to create alerts
- Marid - OpsGenie Integration Server
- Netcool Integration shell scripts
- Unzip Netcool Integration package to a directory on the Netcool server.
- Lamp installation:
- Netcool Integration Files contains a customized version of lamp , you need to install this version.
- Install lamp by referring to Lamp Documentation - Installation steps. Do not download lamp again.
- Make sure your Netcool shell scripts have correct LAMP_HOME, your lamp installation directory
- Create an API Integration and obtain apiKey, then put into the opsgenie-integration/conf/opsgenie-integration.conf file.
- Verify Lamp is working : Create a test alert, using the lamp utility from the command line, make sure your alert is visible on OpsGenie dashboard . Please refer to Lamp Documentation for more information.
- The integration package provides a UNIX based shell script which will be executed by ObjectServer procedures. It's a very simple script which makes little modifications to the command line arguments passes them to Lamp. Other operating system users can prepare very similar versions of the script in their preferred scripting language. Prepare netcoolShellScripts/opsgenie shell script like the following:
- Copy the shell script to a directory in the system where your Process Agent is installed. This path will be pointed when Netcool procedures are configured.
- Configure LAMP_HOME to point your lamp installation directory.
- Make sure the file is executable by your Process Agent.
- Create a Netcool procedure with name "create_opsgenie_alert" . Use the "opsgenie" shell script, and configure the "host" property appropriately.
create or replace procedure create_opsgenie_alert (in serial integer, in node character(255), in severity integer, in summary character(255), in count integer) executable '/usr/bin/opsgenie' host 'localhost' user 0 group 0 arguments serial, '\'' + node + '\'', severity, '\'' + summary + '\'', count;
- Create a Netcool temporal trigger similar to "mail_on_critical" with name "opsgenie_alert_on_critical" like the following:
create or replace trigger opsgenie_alert_on_critical group default_triggers priority 1 comment 'Send opsgenie alerts about critical alerts that are unacknowledged after 30 minutes' every 10 seconds evaluate select Serial, Node, Severity, Summary, Identifier, Count from alerts.status where Severity = 5 and Grade < 2 and Acknowledged = 0 and LastOccurrence <= (getdate -(60*30)) bind as criticals begin for each row critical in criticals begin execute create_opsgenie_alert(critical.Serial, cricritical.Node, critical.Severity, critical.Summary, critical.Count); update alerts.status via (critical.Identifier) set Grade=2; end; end;
The steps described so far cover the alert creation part of the integration. If everything goes well you should be able to see OpsGenie alerts for every critical Netcool event which is unacknowledged for 30 minutes. If you have any problem you may need to check Lamp logs.
To execute actions on Netcool events you should install and appropriately configure Marid. The integration package provides a Groovy - a powerful Java based scripting language - script called "netcoolActionExecutor.groovy" which access the ObjectServer at database level and execute the specified event action. So, you should install Marid into a system which can access ObjectServer's database. Follow the steps below to complete the installation:
- Make sure that you have at least one alerts created on OpsGenie from Netcool.
- Verify that alerts created on OpsGenie with Netcool Integration have actions "acknowledge", "deacknowledge" , "add to task list" and "remove from task list" on OpsGenie alert details.
- Netcool Integration Files contains a customized version of Marid, you need to install this version.
- Install Marid by referring to Marid Documentation - Installation steps. Do not download marid again.
- Create an OpsGenie Marid Integration, make sure your Marid integration Alert Filter processes only Netcool alerts.
- Put Marid Integration apiKey into the opsgenie-integration/conf/opsgenie-integration.conf
- Configure database access parameters in opsgenie-integration/conf/opsgenie-integration.conf file
netcool.db.driver=com.sybase.jdbc2.jdbc.SybDriver netcool.db.host=192.168.1.178 netcool.db.port=4100 netcool.db.username=root netcool.db.password=root
- Start Marid.
Testing actions from OpsGenie to Netcool
- Go to any OpsGenie app Iphone, Android, OpsGenie Dashboard . Find an alert created with Netcool Integration.
- Execute acknowledge action on OpsGenie app
- Verify that the action is visible on Netcool event journals. Result should look like: