Customizing the configuration file

Customize the event emitter configuration file to provide the information needed to communicate with the Kafka services deployed for Business Automation Insights.

About this task

The IBM® Business Automation Navigator event emitter sends events in JSON format. These events are stored in Kafka. You can customize the configuration file based on the Kafka instance that is provided by Business Automation Insights.
Note: In Business Automation Insights environment, the value of ${KAFKA_TOPIC} must be prefixed with icp4ba-bai-.
Restriction: Kafka Kerberos configuration is not supported. For more information about Navigator event emitter security, see Securing communications from event emitters to Kafka.

Procedure

  1. Create a directory on a shared network drive visible to all application server instances that are hosting the Navigator application, or on one node where the Navigator application is deployed.
  2. In the directory, create a configuration file and name it configuration with no extension.
  3. Edit the configuration file with a text editor and define security settings such as for an SSL keystore and truststore, or for an SASL_SSL truststore.
    Use the following example as a model for the contents of the configuration file:
    navigatoremitter.input.navigator.server=${NAVIGATOR_HOSTNAME}
    navigatoremitter.output.kafka.topic=icp4ba-bai-navigator-ingress
    navigatoremitter.output.kafka.bootstrap.servers=${KAFKA_HOST}:{PORT}
    navigatoremitter.output.kafka.security.protocol=SASL_SSL
    navigatoremitter.output.kafka.ssl.truststore.location=${KAFKA_BROKERS_TRUSTSTORE_FILE}
    navigatoremitter.output.kafka.ssl.truststore.password=${KAFKA_BROKERS_TRUSTSTORE_PASSWORD}
    navigatoremitter.output.kafka.ssl.enabled.protocols=TLSv1.2,TLSv1.3
    navigatoremitter.output.kafka.ssl.truststore.type=PKCS12
    navigatoremitter.output.kafka.ssl.endpoint.identification.algorithm=
    navigatoremitter.output.kafka.sasl.mechanism=SCRAM-SHA-512
    navigatoremitter.output.kafka.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username=""{$KAFKA_SECRET}"" password="{$KAFKA_PASSWORD}";
    
    Note: Hostname Verification
    The navigatoremitter.output.kafka.ssl.endpoint.identification.algorithm fields are optional. If you experience problems with authenticating to Kafka and observe that removing these fields resolves the authentication problem, you can disable the server hostname verification. Set the navigatoremitter.output.kafka.ssl.endpoint.identification.algorithm parameter to an empty string. Example:
    navigatoremitter.output.kafka.ssl.endpoint.identification.algorithm=

    Use the following information to clarify what values are included in the settings:

    navigatoremitter.input.navigator.server
    The Navigator server that has the configured navigator event emitter.
    navigatoremitter.output.kafka.topic
    The name of the Kafka topic where raw navigator events are stored.
    navigatoremitter.output.kafka.bootstrap.servers
    The list of Kafka servers that is used to bootstrap connections to Kafka. For connecting to a Kafka cluster, this list must be in the format of host1:port1,host2:port2. These servers, which might change dynamically, are used for the initial connection to discover the full cluster membership. This list does not need to contain the full set of servers. You might want to list more than one server in case one is down.
    navigatoremitter.output.kafka.security.protocol
    The value is SASL_SSL.
    navigatoremitter.output.kafka.ssl.truststore.location

    The full path to the truststore where the Kafka server certificate was imported. Default path for a traditional WebSphere® node isC:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01\config\cells\backend1Cell01\nodes\backend1Node01\trust.p12.

    The default path for a Navigator containerized deployment is /shared/tls/truststore/pkcs12/trusts.p12.

    navigatoremitter.output.kafka.ssl.truststore.password
    The password to the truststore.
    navigatoremitter.output.kafka.ssl.enabled.protocols
    The value is TLSv1.2.
    navigatoremitter.output.kafka.ssl.truststore.type
    The file format of the truststore file.
    navigatoremitter.output.kafka.ssl.endpoint.identification.algorithm
    The value is HTTPS.
    navigatoremitter.output.kafka.sasl.mechanism
    The value is SCRAM-SHA-512.
    navigatoremitter.output.kafka.sasl.jaas.config
    The template is org.apache.kafka.common.security.scram.ScramLoginModule and the required username=\"<username>\" password=\"<userpassword>\";".
    • The username value is the Kafka username.
    • The user password value is the Kafka password.
  4. If necessary, copy the directory to all other nodes where the Navigator application is deployed.
  5. Restart all application servers that are hosting the Navigator application.