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:
- 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
- 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. - 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" : "" } }
- 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
- Configure nokiaNspRestMulitChannelHttpTransport.json for settings on REST
requests. Default settings has been provided.
- Ensure following property has been added:
"keepTokens":"access_token, refresh_token, subscriptionId",
- Check that the correct
HOST
andPORT
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" } } }
- Ensure following property has been added:
-
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