Hyperic HQ Alarm State Integration
Subscribe

From OpenNMS

Jump to: navigation, search

Contents

Summary

OpenNMS can support acknowledgement state synchronization from Hyperic HQ. To get the integration to work, you must add an OpenNMS HQU plugin to Hyperic that allows access to the alert states and then enable a process within OpenNMS's Ackd process that will use the Hyperic extension to synchronize the alert statuses. (The development specification for this feature is here.)

Export Hyperic Alerts with OpenNMS

To use this feature, you must first already be exporting Hyperic alerts to OpenNMS. Instructions for doing this are at the Hyperic-OpenNMS integration instructions on the Hyperic web site under the heading "Alert OpenNMS Action".

Install the AlertStatusController.groovy HQU plugin on Hyperic

To allow external access to alert statuses, you need to install the alertStatus HQU plugin on your Hyperic server. This script is currently in the OpenNMS contrib directory but we expect to have it integrated into future versions of Hyperic HQ.

To install the plugin, you just need to copy the file from the OpenNMS contrib directory into the Hyperic HQ webapp like this:

cp -i /opt/opennms/contrib/hyperic-integration/opennms/app/AlertStatusController.groovy \
      /opt/hyperic/server-current/hq-engine/server/default/deploy/hq.ear/hq.war/hqu/opennms/app/AlertStatusController.groovy

Check the value of eventsource

When Hyperic HQ forwards alerts to OpenNMS, it sets a parameter that identifies the Hyperic server where the event originated. This value is stored in the eventsource field. Check the events in your database to verify the value of this parameter. It defaults to HQ but if you have multiple Hyperic HQ servers forwarding alerts to OpenNMS, there may be multiple unique values in this field.

SELECT DISTINCT eventsource FROM events WHERE eventuei = 'uei.opennms.org/external/hyperic/alert';

Enable HypericReader plugin for Ackd

To enable synchronization from each of the Hyperic HQ systems that are sending you Hyperic alerts, you need to configure the HypericReader plugin for Ackd. The plugin's configuration is inside /opt/opennms/etc/ackd-configuration.xml but it is disabled by default.

To enable it, find the <reader reader-name="HypericReader"> XML tag and change it from enabled="false" to enabled="true". Then, you need to add configuration parameters for each of the Hyperic HQ systems that are sending alerts to your OpenNMS system.

Remember the eventsource values that we found in the database before? Add a configuration parameter for each of those values to the Ackd configuration. For instance, if you have one Hyperic HQ system that is sending events to OpenNMS, this is the configuration you need:

PostgreSQL query

opennms=# select distinct eventsource from events where eventuei = 'uei.opennms.org/external/hyperic/alert';
  eventsource  
---------------
 HQ
(1 row)

Ackd Reader Configuration

...
    <reader enabled="true" reader-name="HypericReader">
      <reader-schedule interval="180" unit="s"/>
      <!-- This parameter associates Hyperic platform IDs with URLs that provide alert status lists -->
      <parameter key="source:HQ" value="http://user:password@hyperic.mycompany.com:7080/hqu/opennms/alertStatus/list.hqu" />
    </reader>
...

Just make sure you associate each eventsource value (such as HQ) with a <parameter key="source:HQ" value="http://user:password@hyperic.mycompany.com:7080/hqu/opennms/alertStatus/list.hqu"/> tag in the configuration file.

Version History/Availability