Integrating with Apache Kafka


With BMC Impact Integration for z/OS (BiiZ), you can use BMC AMI OpsA Rules and EXEC statements to send events and alerts to Apache Kafka. For more information about the Apache Kafka, see the Apache Kafka website.

Prerequisites

Before you can integrate BiiZ with Apache Kafka, you must have the following items:

  • A working cURL program, such as Rocket Software cURL for zSystems/OS

  • The Common REST API installed and configured 
    For more information about the CRA, see Installing and configuring the Common REST API.

  • In the BBPARM member BBISSPxx for the PAS, you must specify the following product code: 
    • PRODUCT=AAO

Important

This functionality is not available in Biiz standalone.

To send BMC AMI OpsA events and alerts to Apache Kafka, complete the steps in Configuring CRA to connect to Apache Kafka secured with SSL or SSL_SASL. To configure BiiZ and create a GME connection with Apache Kafka. complete the following.

Edit BBPARM member AAOGME00 and specify values for the following parameters:   

Parameter

Value to specify

TGTIP

Connection name

TGTBIMCF

BBPARM member IIMRSTxx, which is the configuration member for the REST API

TGTTYPE

RESTAPI value

Edit BBPARM member IMRSTxx and specify values for the following parameters:

Parameter

Value to specify

Server_event_url

(Required)

Server URL including the HTTP/HTTPS part of the address

This is used as the URL displayed only when issuing the .D GME command. You must set the actual URL in IIMDICKF.

Curl_path

(Required)

Full path name, including the cURL command to be used to send the events

For example, /usr/bin/curl.

Curl_parms

(Optional)

Specify the cURL parameters

The default value is --insecure --connect-timeout 10 --use-ascii.

Dictionary

(Required)

The dictionary file that can rename key and slot names, and set environmental variables such as user ID and password

Enter the value DD:BBIPARM(IIMDICFK).

Copy this member from BBPARM to UBBPARM and specify the following parameters:

Parameter

Value to specify

kafkaTopic

(Required) Kafka topic you want the event to be sent to

username

(Required) Username used to logon to CRA

password

(Required) Password used to logon to CRA

CRA_URL

(Required) URL to CRA

CRA_PORT

(Required) CRA port

CRA_PROTOCOL

(Required) CRA protocol in use

clusterName

(Required) A unique name

CRA uses this name to maintain this connection with Apache Kafka.

brokersList

(Required) Addresses of the Apache Kafka consumers

You can specify multiple entries separated with a comma. For example, "localhost:9092","127.0.0.1:9092" or "localhost:9092"

useAsyncSendinglse

(Optional) TRUE|FALSE

Specify TRUE to wait for confirmation that the event was successfully received, or FALSE if you don't want to wait for confirmation. Specifying an invalid value results in a bad request.

Kafka_properties

(Optional) The following Apache Kafka configuration properties for the producer: 

Kafka_properties="properties":{             \             
                         "key1":"value1",       \             
                         "key2":"value2",       \             
                         "key3":"value3"        \             
                         },                                   

You cannot modify value.serializer and key.serializer. By default the Kafka_properties parameter is commented out.

To override these variables in a BMC AMI OpsA Rule or EXEC, you can specify IIMDIC_<variableName> in one of the event or ALERT slots.

For example:
IIMDIC_ kafkaTopic= kafkaTopic1                   

Format 

(Required)

Specify the format file that can re-format the REST API request sent by this connection

Enter the value DD:BBIPARM(IIMFRMFK).

Copy this member from BBPARM to UBBPARM.

Important

Do not edit this member. It is already customized for Apache Kafka.

Configuring CRA to connect to Apache Kafka secured with SSL or SSL_SASL

To send BMC AMI OpsA events to Apache Kafka that is secured with Secure Sockets Layer (SSL) or Simple Authentication and Security Layer (SASL_SSL), set the following properties in your CRA environment file. The location of this file is specified in the job that starts the CRA.  For more information, see Setting up CRA to work as a stand-alone server.

Important

If Apache Kafka is not secured on your system, do not enter any values for the properties in this table.  


Apache Kafka property

Required for Kafka with SSL or SASL_SSL

Description 

kafka.security.protocol=[SSL | SASL_SSL] 

SSL and SASL_SSL

Specify whether the CRA will use SSL or SASL_SSL parameters

If your connection to Kafka is not secured, leave all the values in this table blank. 

kafka.ssl.protocol=[TLSv1.2,TLSv1.1,TLSv1] 

SSL and SASL_SSL

Specify the SSL protocol version 

You can specify more than one separated by commas.

kafka.ssl.producer.truststore.location=[yourSSLProducerTruststoreFileLocationFullPathName]

SSL and SASL_SSL

Specify the full path name of your producer truststore file

kafka.ssl.producer.truststore.password=[yourSSLProducerTruststorePassword]

SSL and SASL_SSL

Specify your producer truststore password

kafka.ssl.producer.keystore.location=[yourSSLProducerKeystoreFileLocationFullPathName]

SSL and SASL_SSL

Specify the full path name of your producer keystore file 

kafka.ssl.producer.keystore.password=[yourSSLProducerKeystorePassword]

SSL and SASL_SSL

Specify your producer keystore password

kafka.ssl.producer.key.password=[yourSSLProducerKeyPassword]

SSL and SASL_SSL

Specify your producer key password

kafka.sasl.producer.user.name=[yourSASLProducerUserName]

SASL_SSL 

If your Kafka is using SASL_SSL mode, specify a producer user that will produce events

kafka.sasl.producer.password=[yourSASLProducerPassword]

SASL_SSL 

If your Kafka is using SASL_SSL mode, specify the producer user password

kafka.sasl.mechanism=[SCRAM-SHA-512 | SCRAM-SHA-256]

SASL_SSL 

If your Kafka is using SASL_SSL mode, specify the mechanism mode

The common mechanism modes are SCRAM-SHA-512 or SCRAM-SHA-256.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*