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.jsonNote: 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": true, "broker_watch": true }, "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": true, "broker_watch": true }, "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.StringDeserializerOtherwise, 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 -
To enable SASL/OAuth2 authentication with the Nokia NSP server, uncomment and configure the following parameters in nokiaNspKafkaClient.properties:
# SASL/OAUTH2 AUTHENTICATION CONFIGURATIONS # UNCOMMENT THE LINES BELOW TO PERFORM SASL/OAUTH2 AUTHENTICATION #sasl.mechanism=OAUTHBEARER #sasl.login.callback.handler.class=org.apache.kafka.common.security.oauthbearer.secured.OAuthBearerLoginCallbackHandler #sasl.login.connect.timeout.ms=15000 #sasl.oauthbearer.token.endpoint.url=https://++authenticationServer++/rest-gateway/rest/api/v1/auth/token # UPDATE <CLIENTID> AND <SECRET> BEFORE UNCOMMENT THE LINE BELOW #sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required clientId=<clientId> clientSecret="<secret>";Note: Leave++authenticationServer++as it is innokiaNspKafkaClient.properties. The probe will replace the variable with the NSP hostname and port defined inLOGIN.GET_ACCESS_TOKEN.uriin the REST Multichannel HTTP transport configuration file. -
To enable the SASL SSL Kafka connection with the Nokia NSP server, apply the following settings in nokiaNspKafkaConnectionProperties.json:
{ "zookeeper_client" : { "target" : "", "properties" : "", "java_sys_props" : "", "topic_watch": true, "broker_watch": true }, "brokers" : "SASL_SSL://<Nokia SDN Host IP>:<Kafka port>", "topics": "", "kafka_client" : { "properties" : "<Absolute Path To $OMNIHOME/java/conf/nokiaNspKafkaClient.properties", "java_sys_props" : "" } } - 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
HOSTandPORTof 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.sqlOn 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