Page tree
Skip to end of metadata
Go to start of metadata

Overview

HP Network Node Manager i discovers the devices that are in the network and shows their relative location and its 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. When a device fails, it generates events associated with the failures. HP NNMi generated incidents for these events, and the HP NNMi LAM fetches these incidents and displays it on Moogsoft AIOps GUI

Process Overview


  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. The response is received with incident data in an object form.
  4. LAM filters incident data based on the filters set in the config file.
  5. The events are parsed and converted into normalized Moogsoft AIOps events.
  6. The normalized events are then published to MooMS bus.

HP NNMi LAM Configuration

The alarms received from HP NNMi are processed according to the configurations in the hp_nnmi_lam.conf file. The processed incidents are published to 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.

Monitor

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

config :
    {
        monitor:
        {
            
            name                     : "HpNnmi Lam Monitor",

            class                    : "CHpNnmiMonitor",

			webservice_endpoint      : "http://localhost/IncidentBeanService/IncidentBean",

            user_name                : "user name",

            password                 : "password",

            #encrypted_password      : "ieytOFRUdLpZx53nijEw0rOh07VEr8w9lBxdCc7229o=",

            ssl                      : false,

            ssl_keystore_file_path   : "",

            ssl_keystore_password    : "",

            ssl_truststore_file_path : "",

            ssl_truststore_password  : "",

            polling_interval         : 10,

            max_retries              : 10, 

            retry_interval           : 60,

            filter 					 : {
           								origin 	   : "",
           								maxObjects : 1000
           							   }              
       },


  • name and class: These fields are reserved and should not be changed the default values are HpNnmi Lam Monitor and CHpNnmiMonitor respectively
  • webservice_endpoint: The HP NNMi webservice endpoint location is entered here. Enter the IP Address or the host name of the HP NNMI server instead of localhost, in the URL given in the example above e.g. "http://hpnnmi/IncidentBeanService/IncidentBean"

  • user_name and Password: Enter the username and password for accessing the HP NNMi console
  • encrypted_password: If the encrypted password is to be entered, then enter the encrypted password in the encrypted_password field and comment the password field. At a time either password or the encrypted_password field is used. If both the fields are not commented, then the field encrypted_password will be used by the HP NNMi LAM
  • ssl: Enter true here, 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

  • 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

    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
  • polling_interval: The polling time interval between the requests after which the event data is fetched from HP NNMi. The polling interval is entered in seconds

    The default value is set to 10 seconds, if 0 is entered in this field then the time interval is by default set to 5 seconds

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

    The default value is set to 10, if 0 is entered in this field then the LAM by default takes the value 10 and will try at least 10 times to reconnect

    If all the number of retries are exhausted, then an alert is sent to Moogsoft AIOps about the connection failure. For re-establishing the connection the LAM has to be restarted

  • retry_interval: The time interval between two successive retry attempts

    The default value is set to 60 seconds, if 0 is entered in this field then the time interval is by default set to 60 second

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

    • SNMPTRAP

    • MANAGEMENTSOFTWARE

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

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

Agent

Agent allows the user to define two parameters:

agent:
        {
                name    : "HP NNMi"
                #log    : "/var/log/moogsoft/hp_nnmi_lam.log"
        },

The above example specifies:

name: This is the agent name, the events sent to MooMS by the HP NNMi LAM are identified by the agent name in the log. In this example the agent name is HP NNMi

log: In this instance, the HP NNMi LAM will write its ingress contents in the filehp_nnmi_lam.log located at the location /var/log/moogsoft/

HA Configuration

Refer the document HA Configuration of LAM

Mapping

For incidents received from HP NNMi, a user can directly map the incident fields of HP NNMi with Moogsoft fields. The parameters of the received incident are displayed in 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"
        }       


The above example specifies the mapping of the HP NNMi incident fields with the Moogsoft AIOps alert fields

Example of Incident in HP NNMi


Constants and Conversions

Constants and Conversions allow the user to convert formats of the received data defined users.

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


The above example specifies:

  • Severity and sevConverter: The severity field 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
  • stringToInt: It is used in a conversion, which forces the system to turn a string token into an integer value
  • timeConverter: It is 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

catchALL

The attribute that is never referenced in a rule is collected and placed as a JSON object in a variable called overflow defined here and passed as part of the event.

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"} 
            ]
        },


The HP NNMi field epochSecond is sent to the LAM. Since it is not mapped to a field in the hp_nnmi_lam.conf file, it is placed in the overflow JSON object. The fields that are placed in the overflow variable can be viewed in the HP NNMi LAM log file.

An example of an overflow JSON object created in the HP NNMi LAM log file:

"overflow":"{\"created_time\":{\"epochSecond\":1490339209,\"nano\":244000000},\"notes\":\"\",\"originOccurrenceTime\":{\"epochSecond\":1490339199,\"nano\":958000000},\"rcaActive\":false,\"priority\":\"com.hp.nms.incident.priority.None\",\"firstOccurrenceTime\":{\"epochSecond\":1490339200,\"nano\":212000000},\"modified_time\":{\"epochSecond\":1490339209,\"nano\":244000000},\"sourceNodeUuid\":\"\",\"duplicateCount\":0,\"name\":\"test22\",\"id\":\"6443004269\",\"state\":\"com.hp.nms.incident.lifecycle.Registered\"}"


Quotes

In some instances, the attribute strings are quoted. Our JSON parser ignores it, but the standard requires quoting for all strings, so Moogsoft recommends that user quotes all strings.

Comments

A user can comment out lines by prefixing them with a hash.

Starting the HP NNMi LAM

To start the HP NNMi LAM enter the following command:

service hpnnmilamd start

To stop the HP NNMi LAM enter the following command:

service hpnnmilamd stop


To view the status of HP NNMi LAM, enter the following command:

service hpnnmilamd status


Command line attributes

hp_nnmi_lam --help

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 components version number

--log level

Specifies the level of debugging. By default, user gets everything. In common with all executables in MOOG, 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


Version Information

LAM Version

Tool Version

Tested?

Expected to Work

1.0

HP NNMi 10.20.280

Yes

Yes

1.1

HP NNMi 10.20.280

Yes

Yes

1.2

HP NNMi 10.20.280

Yes

Yes

System Information

This LAM was tested on a system with the following configurations:

CPU2 core
RAM4 GB
Operating SystemCentOS Linux release 6.7

The system must at least have the above mentioned system requirements to run the LAM.



  • No labels