- HP Network Node Manager i 10
- Integration Agent 5.1.8+, here
- xMatters account - If you don't have one, get one!
- NNMi-Workflow.zip - Workflow to be uploaded to xMatters
- NNMi-IAFiles.zip - Integration Agent files to be extracted to
IAHOME/integrationservices/
When the agent starts, it makes a SOAP request into NNMi and creates a Subscription with the FILTER
criteria and points to the IA http listener port (8081). When a new Incident in NNMi is created that matches the filter criteria, NNMi makes an http request to the integration agent which translates the payload and makes the HTTP request to the Integration Builder. The builder then creates the event and users are notified.
If a user responds, their response is sent back to the agent, which then makes an http call into NNMi to update the status of the Incident.
Pre-steps:
- Install and configure the Integration Agent, including the Integration agent utilities. See details here.
-
Login to xMatters as a Developer and create a new user.
-
Create a new REST user. See details here
-
Import the NNMiCommPlan.zip workflow.
-
Next to the NNMi workflow, click Edit > Access Permissions and give access to the user created in step 2.
-
Click Edit > Forms and next to the
New Incident
form, click Edit > Sender Permissions and give access to the user created in step 2. -
Navigate to the Integration Builder tab and expand the Inbound Integrations section. Click on
Inbound from NNMi
and copy the URL at the bottom. -
Navigate back to the Developer tab and click Event Domains. If this menu item is not available, open a support ticket here and request the following step to be performed.
-
Click on the
applications
event domain. Scroll down to the Integration Services area and click Add New. Enter the following information into the form:- Name: hpnnmi
- Description: HP NNMi Integration Service
- Path:
blank
-
Click Save.
Next, set up the Outbound Integrations for communications back to the Agent.
- Navigate to the Integration Builder inside the NNMi workflow and expand the Outbound Integrations section.
- Click the Add button. Populate the following fields:
Field | Value |
---|---|
Trigger | Device Delivery Updates |
Form | New Incident |
Action | Send to Integration Agent |
Integration Service | hpnnmi |
Specific Agent ID | Leave blank |
Integration Name | New Incident - Device Delivery |
Repeat for trigger values of Notification Response
and Event Status
and then make sure the slider switch is "on" (green showing).
Configuration
- Open the
IAHOME/conf/IAConfig.xml
file and navigate to the<service-configs>
element near the bottom. Add the following line line inside that tag:
<path>hpnnmi/hpnnmi.xml</path>
- Unzip the NNMi-IAFiles.zip to
IAHOME/integrationservices/
. - Open the
IAHOME/integrationservices/nnmi-config.js
file in a text editor. Populate the following values:
Setting | Default Value | Description |
---|---|---|
SERVICE_URL |
https://localhost:8081/http/applications_hpnnmi | Specifies the call back to the integration agent when subscribing to the WS- Eventing service. Requires the following format: https://{service-gateway-host}:{service- gateway-port}/http/{domain}_{name} |
NNMI_HOST |
localhost | To configure this setting, replace "localhost" with the IP address of your local server on which the WS-Eventing subscription service is installed. |
NNMI_PORT |
80 | To configure this setting, replace "80" with the port number of your local server on which the WS-Eventing subscription service is installed. (For instructions on how to determine the port required, see Identifying your HP NNMi port below) |
NNMI_USER |
webservices | Specifies the username of the web services client account to use when connecting to the HP NNMi web services. For more information, see "Creating a web services client" on page 19. |
NNMI_PASSWORD |
nnm | Specifies the password for the web services account. |
FILTER |
/sys:onNotification/arg0[nature='ROOTCAUSE' and lifecycleState='com.hp.nms.incident.lifecycle.Registered' and severity='CRITICAL' and ( name='AddressNotResponding' or name='ConnectionDown' or name='InterfaceDown' or name='NodeDown' or name='NonSNMPNodeUnresponsive')] |
Specifies the filter to use when determining whether an event should be forwarded to xMatters. For instructions on how to update this setting, refer to Updating the event injection filter below |
WEB_SERVICE_URL |
URL endpoint pointing to the Inbound from NNMi integration script |
|
INITIATOR |
nnmi | Username for authenticating to the WEB_SERVICE_URL . This should be the user created in xMatters above. |
INITIATOR_PASSWORD_FILE |
conf/.initiatorpasswd | Password file for the INITIATOR user |
- To encrypt the password and generate the
INITIATOR_PASSWORD_FILE
, navigate to theIAHOME/bin
directory and run the following command:
./iapassword.sh --new MYCOMPLEXPASSWORD --file conf/.initiatorpasswd
Replacing MYCOMPLEXPASSWORD
with the password for the xMatters user.
Updating Event Recipients Recipients can be determined via one of two ways:
- By adding if/else conditions to the
Inbound from NNMi
inbound integration script. For example, to target theOperations
group when thename
field isConnectionDown
: (See the trigger an event section for details on the recipients element.)if ("ConnectionDown".equals( payload.properties.name ) ){ payload.recipients = [ "Operations" ]; }
- By creating subscriptions to dynamically determine who receives a notification.
By default, this integration is configured to receive all events in HP NNMi where:
- the nature of the event is ROOTCAUSE;
- the lifecycleState is com.hp.nms.incident.lifecycle.Registered;
- the severity is CRITICAL;
- and, the Event Type is one of AddressNotResponding, ConnectionDown, InterfaceDown, NonSNMPNodeUnresponsive, or NodeDown.
This is specified in the default filter in the <IAHOME>\integrationservices\hpnnmi\nnmi-config.js
file as follows:
// Filtering for subscription.
// Only matching Incidents will trigger the subscription call back
var FILTER = "/sys:onNotification/arg0[nature='ROOTCAUSE' and lifecycleState='com.hp.nms.incident.lifecycle.Registered' and severity='CRITICAL' and ( name='AddressNotResponding' or name='ConnectionDown' or name='InterfaceDown' or name='NodeDown' or name='NonSNMPNodeUnresponsive')]";
The following NNMi incident parameters can be used in this filter expression:
Data Type | Filter Name | NNMi Web Field | Possible Values |
---|---|---|---|
Int | id | ||
String | uuid | ||
String | sourceUuid | ||
String | sourceName | Source Object | |
String | sourceNodeUuid | ||
String | sourceNodeName | Node Name | |
String | name | Name | |
String | severity | Severity | NORMAL WARNING MINOR MAJOR CRITICAL |
String | priority | Priority | com.hp.nms.incident.priority.Low com.hp.nms.incident.priority.Medium com.hp.nms.incident.priority.High com.hp.nms.incident.priority.Top com.hp.nms.incident.priority.None |
String | lifecycleState | Lifecycle State | com.hp.nms.incident.lifecycle.Registered com.hp.nms.incident.lifecycle.InProgress com.hp.nms.incident.lifecycle.Completed com.hp.nms.incident.lifecycle.Closed |
String | category | Category | com.hp.nms.incident.category.Fault com.hp.nms.incident.category.Status com.hp.nms.incident.category.Config com.hp.nms.incident.category.Accounting com.hp.nms.incident.category.Performance com.hp.nms.incident.category.Security com.hp.nms.incident.category.Alert |
String | family | Family | com.hp.nms.incident.family.Address com.hp.nms.incident.family.Interface com.hp.nms.incident.family.Node com.hp.nms.incident.family.OSPF com.hp.nms.incident.family.HSRP com.hp.nms.incident.family.AggregatePort com.hp.nms.incident.family.Board com.hp.nms.incident.family.Connection com.hp.nms.incident.family.Correlation |
String | origin | Origin | MANAGEMENTSOFTWARE MANUALLYCREATED REMOTELYGENERATED SNMPTRAP SYSLOG OTHER |
String | nature | Correlation Nature | ROOTCAUSE SECONDARYROOTCAUSE SYMPTOM SERVICEIMPACT STREAMCORRELATION NONE |
Int | duplicateCout | Duplicate Cout | |
String | formattedMessage | Message | |
Boolean | rcaActive | RCA Active | |
Date | originOccurrenceTime | Origin Occurrence Time | |
Date | firstOccurrenceTime | First Occurrence Time | |
Date | lastOccurrenceTime | Last Occurrence Time | |
Date | created | Created | |
Date | updateTime | ||
String | previousLifecycleState | ||
String | previousRcaActive |
- Launch the HP NNMi Web Console, and log in as an Administrator.
- Under the Configuration Workspace, click User Accounts.
- On the User Accounts tab, click New.
- On the Account Mapping page, in the Account drop-down list, select New.
- On the User Account page, specify the Name and Password for the Web Services Client User.
- Click Save and Close.
- The “webservices” user is now specified in the Account field on the Role page.
- In the Role drop-down list, select Web Service Client.
- Click Save and Close.
- The Web Service Client will now allow xMatters responses to update NNMi incidents using Web Service Calls. The webservices user is listed on the User Accounts and Roles page
- Under the Configuration Workspace, click User Account Mappings.
- Click New, and then associate the web services client account with the NNMi Web Service Clients group.
- Click Save and Close.
You can determine whether the default port setting of 80 is correct for your HP NNMi installation by checking the port information contained in the HP NNMi port configuration file, located in the following folder:
<NNM_DATA_DIR>\conf\nnm\props\nms-local.properties
The following section describes how the fault polling interval can be decreased to speed up the demonstration. To adjust the fault polling interval: If it is not already running, launch HP Network Node Manager i.
- Log in to the HP NNMi Web Console as an Administrator.
- Select the Configuration Workspace.
- Open Monitoring Configuration.
- On the Default Settings tab, in the Default Fault Monitoring dialog box, set the Fault Polling Interval to 15 seconds.
- Note: A Fault Polling Interval of 15 seconds may be too short an interval on larger deployments, and can consume significant resources on the HP NNMi system. You may need to increase the interval when moving to a production deployment.
- Click Save and Close.
If HP NNMi is monitoring a LAN, one of the easiest ways to trigger a notification is to interrupt the communication between HP NNMi and one of the computers on the LAN. The following steps describe how to do this and what to expect.
- Physically disconnect a computer from the local area network (using a computer other than the xMatters or HP NNMi servers).
- When the computer goes offline, an incident will be triggered within HP NNMi and can be viewed in the Incidents workspace under Root Cause Incidents (or another category depending on the trigger).
- The Notes entry for the open incident indicates that this event has successfully notified an xMatters User
- To display the full Notes for an incident, click the Open Incident button to open the incident, and view the Notes area.
- The target’s specified contact type will receive a message corresponding to the notification, as shown in the following section.
Enable debug logging:
- Open the
<IAHOME>\conf\log4j.xml
log configuration file. - Uncomment (enable) the section "All Integration Services"; it should now resemble the following:
<!-- All Integration Services -->
<logger name="com.alarmpoint.integrationagent.services">
<level value="DEBUG"/>
</logger>
- Open the integration agent log file at
<IAHOME>\log\AlarmPoint.txt
. - Locate the following sections:
- If the Integration Service javascript has successfully started and connected to HP NNMi, the log file should contain a result that resembles the following:
2011-03-04 15:19:43,551 [Thread-8] DEBUG - Agent Client: [hpnnmi.js] Subscription with NNMi (https://192.168.170.168:8004
/nms-sdk-notify) has been made with message id (8bbd4e28-f8d0-46b3-896a-bf8d06e6d3a0). Subscription ID: urn:jbwse:266b0871-d966-4d0f-aa18-7b9217aa6da2 Expiry: Fri Mar 04 15:21:43 PST 2011 Renew in: 89449(ms)
- If the Subscription Manager has failed to connect to HP NNMi, the log file should contain an error message that resembles the following:
2011-03-04 17:21:46,557 [Thread-12] ERROR - Agent Client: Cannot make web service call. Please check configuration information in nnmi-config.js