Configuring the Probe for Message Bus to integrate with Nokia Network Services Platform

The Message Bus Probe can be used to integrate with Nokia Network Services Platform (NSP) using the Kafka transport and the HTTPS REST transport. In the Kafka transport, there is an additional multi channel HTTPS REST transport component that can be enabled for Nokia NSP. The probe can be configured to integrate with Nokia NSP with the following configurations:
  • HTTPS REST and SSL Kafka
  • HTTPS REST and Plaintext Kafka
The following configuration files are supplied with the probe and are required by the integration with Nokia NSP:
  • message_bus_nokia_nfmp.props
  • message_bus_nokia_nfmp.rules
  • message_bus_nokia_nfmp_parser.json
  • nokiaNspKafkaTransport.properties
  • nokiaNspKafkaConnectionProperties.json
  • nokiaNspKafkaClient.properties
  • nokiaNspRestMulitChannelHttpTransport.json

To integrate with Nokia NSP, use the following steps:

  1. Configure message_bus_nokia_nfmp.props for the Nokia NSP integration.
    The Probe integration for Nokia NSP uses the Probe for Message Bus configured by the message_bus_nokia_nfmp.props file supplied with the probe. The following default probe properties are provided for the integration with Nokia NSP. Kafka transport is selected as the main transport type for this integration.
       #======================================================================
       # SETTING PROBE LOGS, PROPS, RULES
       #======================================================================
       Server : 'NCOMS'
       Manager : 'Kafka'
       MessageLog : '$OMNIHOME/log/message_bus_nokia_nfmp.log'
       PropsFile : '$OMNIHOME/probes/<arch>/message_bus_nokia_nfmp.props'
       RulesFile : '$OMNIHOME/probes/<arch>/message_bus_nokia_nfmp.rules'
    
       #======================================================================
       # SETTING TRANSPORT TYPE
       #======================================================================
       TransportType    : 'KAFKA'
       TransportFile    : '$OMNIHOME/java/conf/nokiaNspKafkaTransport.properties'
    
       #======================================================================
       # SETTING PARSER CONFIGURATIONS. (SUPPORTS JSON OR XML)
       #======================================================================
       # FOR PARSING JSON DATA
       TransformerFile  : '$OMNIHOME/probes/<arch>/message_bus_nokia_nfmp_parser.json' 
       MessagePayload   : 'JSON'
    
       #======================================================================
       # SETTING CREDENTIALS WHEN KAFKA TRANSPORT ALSO NEEDS A HTTP TRANSPORT 
       #======================================================================
       Username                       : 'nfmp_username'
       Password                       : 'nfmp_password'
    
       #======================================================================
       # SETTING SSL & KEYSTORE
       #======================================================================
       EnableSSL                     : 'true'
       KeyStore                      : '<Path to KeyStore>/keystore.jks'
       KeyStorePassword              : 'keystore_password'
    
       #======================================================================
       # SETTING RESYNC
       #======================================================================
       InitialResync                 : 'true'
       ResyncBatchSize               : 1000
  2. Configure nokiaNspKafkaTransport.properties for the Nokia NSP integration:
       #==============================================================================
       # KAFKA CLIENT MODE AS CONSUMER
       #==============================================================================
       KafkaClientMode=CONSUMER
    
       #==============================================================================
       # LOCATION OF JSON FILE CONTAINING KAFKA & ZOOKEEPER CONNECTION PROPERTIES
       #==============================================================================
       ConnectionPropertiesFile=$OMNIHOME/java/conf/nokiaNspKafkaConnectionProperties.json
    
       #==============================================================================
       # LOCATION OF FILE CONTAINING REST CONNECTION PROPERTIES
       #==============================================================================
       httpConnectionPropertiesFile=$OMNIHOME/java/conf/nokiaNspRestMultiChannelHttpTransport.json
    
    Note: If httpConnectionPropertiesFile is set to an empty string, it will not enable the support for HTTP REST communication which is required in Nokia NSP integration. You must ensure that this property is properly configured.
  3. Configure nokiaNspKafkaConnectionProperties.json to enable either the Plaintext or SSL Kafka connection with the Nokia NSP.

    To enable the Plaintext Kafka connection with the Nokia NSP, apply the following settings:

      {
       "zookeeper_client" : 
           {
               "target" : "",
               "properties" : "",
               "java_sys_props" : "",
               "topic_watch": false,
               "broker_watch": false
           },
       "brokers" : "PLAINTEXT://<Nokia SDN Host IP>:<Kafka Port>",
       "topics": "",
       "kafka_client" : 
         {
          "properties" : "<Absolute Path To $OMNIHOME/java/conf/nokiaNspKafkaClient.properties",
          "java_sys_props" : ""   
         }
    }
    Otherwise, to enable SSL Kafka connection with the Nokia NSP, apply the following settings:
    {
       "zookeeper_client" :
       {
          "target" : "",
          "properties" : "",
          "java_sys_props" : "",
          "topic_watch": false,
          "broker_watch": false
       },
       "brokers" : "SSL://<Nokia SDN Host IP>:<Kafka port>",
       "topics": "",
       "kafka_client" :
       {
          "properties" : "<Absolute Path To $OMNIHOME/java/conf/nokiaNspKafkaClient.properties",
          "java_sys_props" : ""
       }
    }
    
  4. Configure the Kafka client settings in nokiaNspKafkaClient.properties by providing a location and password for the Keystore and Truststore. The following settings are required to enable the Plaintext Kafka connection:
    
    security.protocol=PLAINTEXT
    ack=all
    group.id=NokiaNsp
    
    enable.auto.commit=true
    auto.commit.interval.ms=1000
    session.timeout.ms=30000
    key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
    value.deserializer=org.apache.kafka.common.serialization.StringDeserializer

    Otherwise, to enable the SSL Kafka connection with the Nokia NSP, apply the following settings:

    
    security.protocol=SSL
    ssl.enabled.protocols=TLSv1.2,TLSv1.1,TLSv1
    ssl.keystore.location=<Path To Keystore File>/samserver.keystore
    ssl.keystore.password=<keystore password>
    ssl.keystore.type=JKS
    ssl.truststore.location=<Path To Keystore File>/samserver.keystore
    ssl.truststore.password=<truststore password>
    ssl.truststore.type=JKS
    
    ack=all
    group.id=NokiaNsp
    enable.auto.commit=true
    auto.commit.interval.ms=1000
    session.timeout.ms=30000
    key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
    value.deserializer=org.apache.kafka.common.serialization.StringDeserializer
    
    
  5. Configure nokiaNspRestMulitChannelHttpTransport.json for settings on REST requests. Default settings has been provided.
    1. Ensure following property has been added:

      "keepTokens":"access_token, refresh_token, subscriptionId",

    2. Check that the correct HOST and PORT of the target system is set for each request.
    
    {
       "GLOBAL":
       {
          "httpVersion":"1.1",
          "httpHeaders":"",
          "responseTimeout":"60",
          "securityProtocol":"TLSv1.2",
          "keepTokens":"access_token, refresh_token, subscriptionId",
          "tokenEndpointURI":"",
          "autoReconnect":"OFF"
       },
       
       "LOGIN":
       {
            "GET_ACCESS_TOKEN":
            {
                "uri":"https://HOST:PORT/rest-gateway/rest/api/v1/auth/token",
                "method":"POST",
                "headers":"Authorization=Basic ++Username++:++Password++,Accept=application/json,
                           Content-Type=application/json,Use-Cookie=true,
                           User-Agent=IBM Netcool/OMNIBus Message Bus Probe",
                "content":"{\"grant_type\":\"client_credentials\"}",
                "interval":"0",
                "requireSSL":"true"
            },
            
            "GET_REFRESH_ACCESS_TOKEN":
            {
                "uri":"https://HOST:PORT/rest-gateway/rest/api/v1/auth/token",
                "method":"POST",
                "headers":"Authorization=Basic ++Username++:++Password++,Accept=application/json,
                           Content-Type=application/json,Use-Cookie=true,
                           User-Agent=IBM Netcool/OMNIBus Message Bus Probe",
                "content":"{\"grant_type\":\"refresh_token\",\"refresh_token\":\"++refresh_token++\"}",
                "interval":"60",
                "requireSSL":"true"
            }
       },
    
       "SUBSCRIBE":
       {
            "GET_SUBSCRIPTION":
            {
                "uri":"https://HOST:PORT/nbi-notification/api/v1/notifications/subscriptions",
                "method":"POST",
                "headers":"Authorization=Bearer ++access_token++,Accept=application/json,
                           Content-Type=application/json,Use-Cookie=true,
                           User-Agent=IBM Netcool/OMNIBus Message Bus Probe",
                "content":"{\"categories\":[{\"name\":\"NSP-FAULT\"}]}",
                "interval":"0",
                "requireSSL":"true"
            },
            
            "GET_SUBSCRIPTION_REFRESH":
            {
                "uri":"https://HOST:PORT/nbi-notification/api/v1/notifications/subscriptions/
                       ++subscriptionId++/renewals",
                "method":"POST",
                "headers":"Authorization=Bearer ++access_token++,Accept=application/json,
                           Content-Type=application/x-www-form-urlencoded,Use-Cookie=true,
                           User-Agent=IBM Netcool/OMNIBus Message Bus Probe",
                "content":"",
                "interval":"120",
                "requireSSL":"true"
            }
       },
    
       "RESYNC":
       {
            "RESYNC_FAULT_MANAGEMENT_ALARMS":
            {
                "uri":"https://HOST:PORT/FaultManagement/rest/api/v2/alarms/details",
                "method":"GET",
                "headers":"Authorization=Bearer ++access_token++,Accept=application/json,
                           Content-Type=application/x-www-form-urlencoded,Use-Cookie=true,
                           User-Agent=IBM Netcool/OMNIBus Message Bus Probe",
                "content":"",
                "interval":"0",
                "requireSSL":"true"
            }
       },
    
       "LOGOUT":
       {
            "DELETE_SUBSCRIPTION_ID":
            {
                "uri":"https://HOST:PORT/nbi-notification/api/v1/notifications/subscriptions/
                       ++subscriptionId++",
                "method":"DELETE",
                "headers":"Authorization=Bearer ++access_token++,Accept=application/json,
                           Content-Type=application/x-www-form-urlencoded,Use-Cookie=true,
                           User-Agent=IBM Netcool/OMNIBus Message Bus Probe",
                "content":"",
                "interval":"0",
                "requireSSL":"true"
            },
            
            "REVOKE_ACCESS_TOKEN":
            {
                "uri":"https://HOST:PORT/rest-gateway/rest/api/v1/auth/revocation",
                "method":"POST",
                "headers":"Authorization=Basic ++Username++:++Password++,Accept=application/json,
                           Content-Type=application/x-www-form-urlencoded,Use-Cookie=true,
                           User-Agent=IBM Netcool/OMNIBus Message Bus Probe",
                "content":"token=++access_token++&token_type_hint=token",
                "interval":"0",
                "requireSSL":"true"
            }
       }
    }
    
    
    
    
  6. Modify the default OMNIbus deduplication triggers to process probe events from Nokia NSP NFM-P (KAFKA).

    On Unix, run the following command:
    $OMNIHOME/bin/nco_sql -server <objectserver_name> -user <username> -password <password> $OMNIHOME/java/conf/nokiaNsp_update_deduplication.sql
    On Windows, run the following command:
    %NCHOME%\bin\redist\isql.exe -S <objectserver name> -U <username> -P <password> -i %OMNIHOME%\java\conf\nokiaNsp_update_deduplication.sql