Moogsoft Docs

Configure the HP NNMi LAM

HP Network Node Manager i (HP NNMi) discovers the devices that are in the network and shows their relative location and status. It helps in ascertaining the level of congestion in the network and identifying the root cause of the congestion. It can monitor networks, isolate issues, find outages, and improve network availability and performance.

See HP NNMi for UI configuration instructions.

When a device fails, it generates events associated with the failures. HP NNMi creates incidents for each event which are fetched by the HP NNMi LAM and displayed in Moogsoft AIOps.

  1. LAM reads the configuration from the hp_nnmi_lam.conf file.

  2. LAM connects with HP NNMi Webservice using the given webservice endpoint in the config file.

  3. LAM sends request to HP NNMi Server to fetch incidents.

  4. The response is received with incident data in an object form.

  5. LAM filters incident data based on the filters set in the config file.

  6. The events are parsed and converted into normalized Moogsoft AIOps events.

  7. The normalized events are then published to MooMS bus.

HP NNMi LAM Configuration

The incidents received from HP NNMi are processed according to the configurations in the hp_nnmi_lam.conf file. The processed incidents are published to the Moogsoft AIOps.

The configuration file contains a JSON object. At the first layer of the object, the LAM has a parameter called config, and the object that follows config has all the necessary information to control the LAM.

The following sections are available for configuration in the hp_nnmi_lam.conf file.

The HP NNMi LAM takes the incidents from the HP NNMi Server. You can configure the parameters here to establish a connection with HP NNMi:

General

Field

Type

Description

name and class

String

Reserved fields: do not change. Default values are HpNnmi Lam Monitor and CHpNnmiMonitor.

target

JSON Object

A top-level container for which you can define one or more target HP NNMi sources. You can specify the configuration for each target. If you don't specify a request_interval the target uses the globally defined interval.

webservice_endpoint

String

Enter the endpoint location of HP NNMi webservice where

hpnnmi is hostname or IP address. For example: http://examplehpnnmi/IncidentBeanService/IncidentBean

user_name and Password

String

Enter the username and password of the HP NNMi console.

encrypted_password

String

If you are using an encrypted password, then enter the encrypted password in this field and comment the password field. Either password or the encrypted_password field is used.

If both the fields are specified, then only the encrypted_password value will be used by the HP NNMi LAM.

polling_interval

Integer

The polling time interval, in seconds, between the requests after which the event data is fetched from HP NNMi.

Default = 10 seconds. If 0 is entered, the time interval will set to 10 seconds.

max_retries

Integer

The maximum number of retry attempts to reconnect with HP NNMi in case of a connection failure.

Default = -1, if no value is specified, then there will be infinite retry attempts.

If the specified value is greater than 0, then the LAM will try that many times to reconnect; in case of any other value less than 0, max retries will set to default.

retry_interval

Integer

The time interval between two successive retry attempts.

Default = 60 seconds, if 0 is entered, the time interval is set to 60 seconds.

request_interval

Integer

Length of time to wait between requests, in seconds. Can be overridden by request_interval in individual targets. Defaults to 60.

Secure Sockets Layer

Field

Type

Description

ssl

Boolean

Set to true, to enable SSL Communication:

  • ssl_keystore_file_path: Enter the path of the keystore file. This is the path where the generated keystore file is copied in Moogsoft AIOps, e.g. "/usr/local/hpnnmi_ssl/keystore.jks".

  • ssl_keystore_password: Enter the password of keystore. It is the same password that was entered when the keystore was generated.

  • ssl_truststore_file_path: Enter the path of the truststore file. This is the path where the generated truststore file is copied in Moogsoft AIOps. e.g. "/usr/local/hpnnmi_ssl/keystore.jks".

  • ssl_truststore_password: Enter the password of truststore.

  • Note

    The keystore.jks generated in the SSL configuration section is used both as a keystore and truststore. Therefore, the path to the keystore.jks is entered in the fields ssl_keystore_file_path and ssl_truststore_file_path.

Filter

Field

Type

Description

filter

Object

Parameters to filter incidents:

    • Origin: Specify the source from where the incident has been generated, if nothing is mentioned in this field, then incidents from all the sources will be fetched. The following sources are supported:

        • SNMPTRAP

        • MANAGEMENTSOFTWARE

        • SYSLOG

        • REMOTELYGENERATED

        • MANUALLYCREATED

        • OTHER

    • maxObjects: The number of incidents that can be fetched in a poll will be entered here. If nothing is entered, then by default 1000 incidents will be fetched in one poll.

Note

The entry in the fields maxObjects, polling_interval, max_retries and retry_interval should be an integer, and therefore, enter the values in these fields without quotation mark.

Example

You can configure the HP NNMi LAM to retrieve events from one or more sources. The following example demonstrates a configuration that targets two HP NNMi sources. For a single source comment out the target2 section. If you have more than two sources, add a target section for each one and uncomment properties to enable them.

monitor:
        {
                name                                                                    : "HpNnmi Lam Monitor",
                class                                                                   : "CHpNnmiMonitor",
                request_interval                                                : 60,
                max_retries                                                             : -1,
                retry_interval                                                  : 60,
                targets:
                {
                        target1:
                        {
                                request_interval                                : 60,
                                max_retries                                             : -1,
                                retry_interval                                  : 60,
                                webservice_endpoint                             : "http://examplehpnnmi1/IncidentBeanService/IncidentBean",
                                user_name                                               : "hpnnmi_user1",
                                #password                                               : "password",
                                encrypted_password                              : "qJAFVXpNDTk6ANq65pEfVGNCu2vFdcoj70AF5BIebEc=",
                                disable_certificate_validation  : false,
                                path_to_ssl_files                               : "config",
                                server_cert_filename                    : "server1.crt",
                                client_key_filename                             : "client1.key",
                                client_cert_filename                    : "client1.crt",
                                filter:
                                {
                                        origin                                          : "",
                                        maxObjects                                      : 1000
                                }
                        }
                        target2:
                        {
                                request_interval                                : 60,
                                max_retries                                             : -1,
                                retry_interval                                  : 60,
                                webservice_endpoint                             : "http://examplehpnnmi2/IncidentBeanService/IncidentBean",
                                user_name                                               : "hpnnmi_user2",
                                #password                                               : "password",
                                encrypted_password                              : "bDGFSClSHBn8DSw43nGwSPLSv2dGwdsj50WD4BHdfVa&",
                                disable_certificate_validation  : false,
                                path_to_ssl_files                               : "config",
                                server_cert_filename                    : "server2.crt",
                                client_key_filename                             : "client2.key",
                                client_cert_filename                    : "client2.crt",
                                filter:
                                {
                                        origin                                          : "SNMPTRAP",
                                        maxObjects                                      : 1000
                                }
                        }
                }
        }
Agent and Process Log

Agent and Process Log allows you to define the following properties:

  • name: Identifies events the LAM sends to the Message Bus.

  • capture_log: Name and location of the LAM's capture log file.

  • configuration_file: Name and location of the LAM's process log configuration file.

Example

Agent

agent:
        {
                name    : "HP NNMi"
                #log    : "$MOOGSOFT_HOME/log/data-capture/hp_nnmi_lam.log"
        },
Mapping

For incidents received from HP NNMi, you can directly map the incident fields of HP NNMi with Moogsoft AIOps fields. The parameters of the received incidents will be displayed in the Moogsoft AIOps according to the mapping done here:

mapping :
        {
            catchAll: "overflow",
            rules:
            [
                { name: "signature", rule:      "$family" },
                { name: "source_id", rule:      "$sourceName" },
                { name: "external_id", rule:    "$sourceNodeName" },
                { name: "manager", rule:        "HP NNMi" },
                { name: "source", rule:         "$origin" },
                { name: "class", rule:          "$nature" },
                { name: "agent", rule:          "$LamInstanceName" },
                { name: "agent_location", rule: "$category" }, 
                { name: "type", rule:           "$sourceType" },
                { name: "severity", rule:       "$severity", conversion:"sevConverter" },
                { name: "description", rule:    "$formattedMessage" },
                { name: "agent_time", rule:     "$lastOccurrenceTime"} 
            ]
        },
        filter:
        {
            presend:"HpNnmiLam.js"
        }       
Constants and Conversions

Constants and Conversions allow you to convert formats of the received data.

Field

Description

Example

Severity and sevConverter

has a conversion defined as sevConverter in the Conversions section, this looks up the value of severity defined in the severity section of constants and returns back the mapped integer corresponding to the severity.

severity:
{
   "CLEAR"    : 0,                
   "NORMAL"   : 1,
   "WARNING"  : 2,
   "MINOR"    : 3,
   "MAJOR"    : 4,
   "CRITICAL" : 5
}, 
sevConverter:
{
    lookup : "severity",
    input  : "STRING",
    output : "INTEGER"
},

stringToInt

used in a conversion, which forces the system to turn a string token into an integer value.

stringToInt:
{
    input  : "STRING",
    output : "INTEGER"
},

timeConverter

used in conversion which forces the system to convert time. If epoc time is to be used, then timeFormat mentioned in timeConverter should be commented. Otherwise, the user should provide the timeFormat.

timeConverter:
{
    timeFormat : "yyyy-MM-dd'T'HH:mm:ss.SSS",
    input      : "STRING",
    output     : "INTEGER"
}
Example

Example Constants and Conversions

constants:
        {
            severity:
            {
                "NORMAL"        : 1,
                "WARNING"       : 2,
                "MINOR"         : 3,
                "MAJOR"         : 4,
                "CRITICAL"      : 5
            }
           
        },
        conversions:
        {
            sevConverter:
            {
                lookup: "severity",
                input:  "STRING",
                output: "INTEGER"
            },
            
            stringToInt:
            {
                input:      "STRING",
                output:     "INTEGER"
            },
         
            timeConverter:
            {
                timeFormat: "yyyy-MM-dd'T'HH:mm:ss.SSS",
                input:      "STRING",
                output:     "INTEGER"
            }
        },
Service Operation Reference

Process Name

Service Name

hp_nnmi_lam

hpnnmilamd

Start the LAM Service:

service hpnnmilamd start

Stop the LAM Service:

service hpnnmilamd stop

Check the LAM Service status:

service hpnnmilamd status

If the LAM fails to connect to one or more HP NNMi sources, Moogsoft AIOps creates an alert and writes the details to the process log.

Command Line Reference

To see the available optional attributes of the hp_nnmi_lam, run the following command:

hp_nnmi_lam --help

The hp_nnmi_lam is a command line executable, and has the following optional attributes:

Option

Description

--config

Points to a pathname to find the configuration file for the LAM. This is where the entire configuration for the LAM is specified.

--help

Displays all the command line options.

--version

Displays the component’s version number.

--log level

Specifies the level of debugging. By default, user gets everything. In common with all executables in Moogsoft AIOps, having it set at that level can result in a lot of output (many messages per event message processed).

In all production implementations, it is recommended that log level is set to WARN, which only informs user of matters of importance.