To configure the BPM event emitter against IBM Business Automation Insights, you run the
EnableBAI.py script again with a properties file. This file generates the
configuration files that are used by the emitter to send events from BPMN processes, BPEL processes,
and BPEL human tasks to a Kafka server.
Before you begin
Warning: Failure of
IBM Business Automation Insights integration might
cause an outage on the
Business Automation Workflow system. If
Business Automation Insights is down or
unresponsive, disable the communication immediately. For more information, see
Uninstalling the BPM event emitter.
In the previous phase Installing and configuring the BPM emitter, you ran the
EnableBAI.py script to enable subscription to event emission and then you
restarted your IBM Business Automation Workflow
deployment environment (Dmgr, Node, and servers).
About this task
If you have deployed IBM Business Automation Insights on
Kubernetes, you can create a copy of the BAIConfigure.properties
template file,
which you then edit to match your needs, or you can start from a new file. You can find the
BAIConfigure.properties
template in the
<Workflow_Install_Root>\BPM\Lombardi\tools\def
directory.
Procedure
- Set the following mandatory properties.
- bpmCellName
- The name of the IBM Business Automation Workflow server cell.
This name is used in IBM Business Automation Insights to
identify the source of the events.
- DeploymentEnvironmentName
- The Workflow target deployment environment (DE) name. If only one deployment environment is
available, set this property to
None
.
- bootstrapServers
- Set this property to the output of the following
command.
oc get routes -n <namespace> -l app.kubernetes.io/name=kafka | awk '{if($1~/bootstrap/){print "https://"$2}}'
- topicName
- The name of IBM Business Automation Insights ingress
topic, prefixed with
icp4ba-bai-
. The default name is
icp4ba-bai-ibm-bai-ingress
.
- type
- The type of security configuration to use with Kafka. You must provide a truststore in JKS
format.
- To retrieve the truststore from the Red Hat OpenShift environment, run the oc
get
command.
oc get secret/iaf-system-cluster-ca-cert -o "jsonpath={.data.ca\.crt}" | openssl enc -d -base64 -A > kafka-iaf-ca.crt
- To generate the JKS file, run this
command.
keytool -keystore truststore.jks -storetype jks -alias CARoot -import -file kafka-iaf-ca.crt -noprompt -storepass secret
- Pass these property values by running the following command.
<Dmgr_profile_root>\bin\wsadmin.[bat|sh] -f <Workflow_Install_Root>\BPM\Lombardi\tools\def\EnableBAI.py --update=connection --property="<full_path_to_property_file>"
This command has the following effects.
- The script generates the BPMEventEmitter configuration file to the
<profile_root>\config\cells\<cell_name>\nodes\<node_name>\servers\<server_name>\analytics\config
directory or to the
<profile_root>\config\cells\<cell_name>\clusters\<cluster_name>\analytics\config
directory, or to both.
- If necessary, the script distributes the SSL-related configuration files to each server instance
under
<profile_root>\config\cells\<cell_name>\nodes\<node_name>\servers\<server_name>\analytics\config.
- The script updates the configuration and synchronizes the nodes.
- Restart the BPMEventEmitter application in the WebSphere® Application
Server administration console for the new
configuration to take effect.
Results
With this configuration, you connect your IBM Business Automation Workflow environment with the Kafka
topic that runs on the OpenShift Cloud Platform.
Example
This properties file configures a successful connection of a
IBM Business Automation Workflow environment with the Kafka
topic that runs on Red Hat OpenShift.
#CommonConfigurations
DeploymentEnvironmentName=De1
bootstrapServers=iaf-system-kafka-bootstrap-ku2103.apps.kuocp.cp.fyre.ibm.com:443
topicName=icp4ba-bai-ibm-bai-ingress
#Customized name for BPM server displayed in BAI
bpmCellName=PCCell1
type=scram_sha_512
trustStore=/tmp/truststore.jks
trustStore.password=secret
username=icp4ba-kafka-auth
password=dc5gk0oCS2vs
If you call the EnableBAI.py script with
this BAIConfigure.properties file, you get this
BPMEventEmitter.yml file.blackList:
- "e0eb3ba9-e2ef-32b7-a1b2-d3533a359a62"
- "23d3ecec-6fdb-4033-9c57-e931aa13761f"
- "9645fce4-f4af-450f-8ce3-09d45bdb7920"
- "dbecd816-afed-47b0-ba92-c13256fcb566"
bpmCellName: "PCCell1"
kafkaConfiguration:
kafka.bootstrap.servers: "iaf-system-kafka-bootstrap-ku2103.apps.kuocp.cp.fyre.ibm.com:443"
enabled: true
monitor.topic: "icp4ba-bai-ibm-bai-ingress"
kafka.client.id: bai-bpmn-event-producer
kafka.ssl.protocol: TLSv1.2
kafka.ssl.enabled.protocols: TLSv1.2
kafka.ssl.truststore.type: JKS
kafka.ssl.keystore.type: JKS
kafka.ssl.truststore.location: /opt/ibm/bpm/profiles/Node1Profile/config/cells/PCCell1/nodes/Node1/servers/SingleClusterMember1/analytics/config/truststore.jks
kafka.ssl.truststore.password: secret
kafka.security.protocol: SASL_SSL
kafka.sasl.mechanism: SCRAM-SHA-512
kafka.sasl.jaas.config: org.apache.kafka.common.security.scram.ScramLoginModule required username="icp4ba-kafka-auth" password="dc5gk0oCS2vs";