Configuring transport module properties files
Transport properties files define how the gateway sends events using the transport module.
keyStore=C:\\IBM\\Tivoli\\Netcool\\omnibus\\java\\security\\client.jks
The jmsTransport.properties file
Table 1 describes the properties defined in the jmsTransport.properties file. which is the transport module properties file associated with the Java Message Service (JMS) transport module protocol.
JMS
and jmsTransport.properties in
the G_XML.props properties file.Property name |
Description |
---|---|
initialContextFactory |
Use this property to specify the context factory class name of the JMS provider. Note: The initialContextFactory is
the initial context factory for the Java™ Naming
Directory Interface (JNDI) provider being used. The default is the
Websphere JNDI provider.
|
jmsFilter |
Use this property to specify the expression for JMS servers for sending the intended messages or events to the probe. |
jmsHeaderMap |
Use this property to assign a value to the JMS header. Multiple instances of this property is supported. Configuration format:
Supported JMS headers for sender update:
The assigned value can be static or dynamic. A static value is a string enclosed with single quotes, for example:
A dynamic value can be obtained from raw Netcool event data by configuring a data source in the property. The data source can be any mapped field name specified in the gateway’s map field, for example:
For details about using dynamic values, see Dynamic value assignment for jmsHeaderMap and jmsPropertyMap. |
jmsPropertyMap |
Use this property to assign a value to the JMS property. Multiple instances of this property is supported. Configuration format:
JMS property names are customizable. The assigned value can be static or dynamic. A static value is a string enclosed with single quotes, for example:
A dynamic value can be obtained from raw Netcool event data by configuring a data source in the property. The data source can be any mapped field name specified in the gateway’s map field, for example:
For details about using dynamic values, see Dynamic value assignment for jmsHeaderMap and jmsPropertyMap. |
providerURL |
Use this property to specify the URL of the JMS provider. You can specify the URL of the data store for the JNDI provider, or you can specify the path to a binding file. Note: If
you specify a binding file, always create that file using the IBM® WebSphere® MQ JMS Administration tool. In
addition, copy the WebSphere jar
files to the $OMNIHOME/java directory. For information
about creating binding files and JMS Administration tool jar files,
see the IBM WebSphere MQ information center.
|
queueConnectionFactory |
Use this property to specify the identifier of the queue connection factory. |
topicConnectionFactory |
Use this property to specify the identifier of the topic connection factory. |
username |
Use this property to specify the user name for the JMS connection. |
password |
Use this property to specify the password for the JMS connection. |
The fileTransport.properties file
Table 2 describes the properties defined in the fileTransport.properties file. which is the transport module properties file associated with the Data File transport module protocol.
File
and fileTransport.properties in
the G_XML.props properties file.Property name |
Description |
---|---|
jsonFilename |
Use this property to specify the full path to a JSON file to run through the gateway. The default is ${OMNIHOME}/var/jsonAlarm.txt. |
streamFilename |
Use this property to specify the full path to a stream capture file to run through the gateway. The default is ${OMNIHOME}/var/xmlAlarm.txt. Note: You
can specify either the streamfilename property
or the xmlfilename property but not both.
|
xmlFilename |
Use this property to specify the full path to a standard stream of XML to run through the gateway. Note: You
can specify either the streamfilename property
or the xmlfilename property but not both.
|
sleepInterval |
Use this property to specify the interval (in milliseconds) that the gateway waits between iterations when tailing the source file. The default is 1000 milliseconds. |
The mqttTransport.properties file
Table 3 describes the properties defined in the mqttTransport.properties file, which is the transport module properties file associated with the MQTT transport module protocol.
MQTT
and mqttTransport.properties in
the G_XML.props properties file.Property name |
Description |
---|---|
connectionURL |
Use this property to specify the URL of the MQTT bus provider. The default is tcp://localhost:1883. |
clientId |
Use this property to specify an ID for each MQTT client connection to the MQTT provider. The clientId of each MQTT client connection must be unique. The default is MQTTClient. |
topicName |
Use this property to specify the name of a topic to subscribe to for messages. To subscribe to multiple topics, you can define multiple topic names. The default is "". Note: The
MQTT wildcard character
# can be used to define a
wildcard set of topics to subscribe to. For example, a value of # would
register interest in all topics known to the MQTT provider. |
cleanStart |
Use this property to specify whether the connection should perform a clean start. The default is false. If you specify a value of false, any message stored by the MQTT provider for a connection client ID will be returned on startup. |
keepAlive |
Use this property to specify the frequency (in seconds) with which the MQTT provider connection is polled during periods of inactivity. Polling keeps the connection alive and active. The default is 30. |
The httpTransport.properties file
Table 4 describes the properties defined in the httpTransport.properties file, which is the transport module properties file associated with the HTTP and HTTPS transport module protocol.
HTTP
and httpTransport.properties in
the G_XML.props properties file.Property name |
Description |
---|---|
batchHeader |
Use this property to specify the header for batch messages. A batch message consists of a group of Netcool events of which every event is originally an XML file, but each has been stripped of its XML declaration to ensure XML parsing at the endpoint. To complete the batched events as an XML file, batchHeader must
contains the following:
Note: batchFooter must have an XML
closing tag corresponding to the opening tag specified within this
property.
The default is "". |
batchFooter |
Use this property to specify the footer for batch message. Note: batchFooter must
have an XML closing tag corresponding to the opening tag specified
within the batchHeader property.
The default is "". |
batchSeparator |
Use this property to set the separator used between events in a batch. This property is usually set to a comma ( The default is "". |
bufferFlushTime |
Use this property to specify the interval (in seconds) at which the gateway flushes the buffer. When the difference between the current time and the time at which the last event was put into the buffer is equal to or greater than the bufferFlushTime interval, all buffered events are batched up for HTTP posting. The default is 20. |
bufferSize |
Use this property to specify the maximum size that the gateway allows for the buffer. When the buffer size is reached, all events in the buffer are batched up for HTTP posting. The default is 10. |
clientURL |
Use this property to specify a URL definition for a HTTP/HTTPS destination. The default is "". |
concurrentRequestThreads |
Use this property to set the thread pool size for HTTP requests. The default is 1. |
httpTimeout |
Use this property to specify the time (in seconds) that the gateway allows for the HTTP connection. The default is 10. |
retryLimit |
Use this property to specify the maximum number of HTTP operation retries that the gateway can make. After a successful HTTP operation, the gateway makes no more retries. The default is 2. |
retryWait |
Use this property to specify the time (in seconds) that the gateway waits before retrying an HTTP operation . The default is 5. |
threadPoolSize |
Use this property to specify the number of threads that should be used to handle client connections to the internal HTTP/HTTPS server used by the transport module. The default is 10. |
useNullHostnameVerifier |
Use this property to disable hostname verification in the HTTP client against the web server’s SSL certificate. This unblocks the authentication exception caused by the hostname in a valid SSL certificate being different from the web server’s current hostname. The default is false. |
username |
Use this property to specify the username to use for basic authentication. Leave this property blank for no authentication. The username and password in the HTTP client has the following constraints:
The default is "". |
password |
Use this property to specify the password to use in basic authentication. This property is ignored if username is blank. The password property can be set to the value generated from the encryption by ConfigCryptoAlg. For more information see Encrypting gateway and transport module properties The default is "". |
HTTP operation retry
If the gateway fails to send out a message using the HTTP operation, it retries for the number of times specified by the retryLimit property. When the target returns a positive response, the gateway stops retrying.
The gateway waits for the number of seconds specified by the retryWait property between each HTTP operation retry.
When the gateway is in retry mode, if the condition for the next message sending is ripe (see the description for bufferSize and bufferFlushTime) the new message is put on hold until the retry of the previous message is completed. This prevents concurrent attempts of message sending which might disturb event ordering at the receiving end.
Event transformation and batching
The netcool event produced from the empty Transformer is in the following format:
<?xml version="1.0" encoding="UTF-8"?>
<tns:netcoolEvent type="update"
xmlns:tns="http://item.tivoli.ibm.com/omnibus/netcool">
<tns:netcoolField name="Serial" type="integer">1</tns:netcoolField>
<tns:netcoolField name="Node" type="string">1.1.1.1</tns:netcoolField>
<tns:netcoolField name="Acknowledged" type="integer">0</tns:netcoolField>
<tns:netcoolField name="ServerName" type="string">NCOMS_P</tns:netcoolField>
<tns:netcoolField name="ServerSerial" type="integer">1</tns:netcoolField>
</tns:netcoolEvent>
To batch multiple Netcool events into XML compliant format, you must make some configuration changes in the Transformer Module and Transport Module.
Transformer Module
transformer.xsl
<tns:transformer name="netcoolEvents" type="northbound"
endpoint=“http://<ip>:<port>”
className="com.ibm.tivoli.netcool.integrations.transformer.XSLTTransformer">
<tns:property name="xsltFilename" type="java.lang.String"
value="${OMNIHOME}/java/conf/netcoolstripxmlheader.xsl"
description="XSLT file for converting Netcool events to NC events"/>
</tns:transformer>
This XLST definition strips the XML declaration from every Netcool event produced from the Transformer Module. The header-stripped event is then placed in the HTTP Transport’s buffer.
When the condition is ripe (refer to the bufferSize and bufferFlushTime properties), events in the buffer are batched up and enclosed by the string values specified by batchHeader and batchFooter.
<?xml version="1.0" encoding="UTF-8"?>
<tns:netcoolEventList xmlns:tns="http://item.tivoli.ibm.com/omnibus/netcool">
<tns:netcoolEvent type="update"
xmlns:tns="http://item.tivoli.ibm.com/omnibus/netcool">
<tns:netcoolField name="Serial" type="integer">1</tns:netcoolField>
<tns:netcoolField name="Node" type="string">1.1.1.1</tns:netcoolField>
<tns:netcoolField name="Acknowledged" type="integer">0</tns:netcoolField>
<tns:netcoolField name="ServerName" type="string">NCOMS_P</tns:netcoolField>
<tns:netcoolField name="ServerSerial" type="integer">1</tns:netcoolField>
</tns:netcoolEvent>
<tns:netcoolEvent type="update"
xmlns:tns="http://item.tivoli.ibm.com/omnibus/netcool">
<tns:netcoolField name="Serial" type="integer">2</tns:netcoolField>
<tns:netcoolField name="Node" type="string">2.2.2.2</tns:netcoolField>
<tns:netcoolField name="Acknowledged" type="integer">0</tns:netcoolField>
<tns:netcoolField name="ServerName" type="string">NCOMS_P</tns:netcoolField>
<tns:netcoolField name="ServerSerial" type="integer">2</tns:netcoolField>
</tns:netcoolEvent>
</tns:netcoolEventList>
HTTP Transport configurations for event-format-oriented use cases
Property name |
Description |
---|---|
bufferSize |
2 or above. |
batchHeader |
|
batchFooter |
|
Use Case 2: Gateway send single event
Property name |
Description |
---|---|
bufferSize |
1 |
batchHeader |
Leave empty. |
batchFooter |
Leave empty. |
The multiChannelHttpTransport.properties file
Table 7 describes the properties defined in the multiChannelHttpTransport.properties file, which is the transport module properties file associated with the Multi-Channel HTTP transport module protocol.
MultiChannelHttp
and multiChannelHttpTransport.properties in the
G_XML.props properties file.
Property name |
Description |
---|---|
httpConnectionPropertiesFile |
Use this property to specify the path to the transport properties file. The default is multiChannelHttpTransport.json. |
ConfigCryptoAlg |
Use this property to specify the encryption method to be used. The default is AES_FIPS. |
ConfigKeyFile |
Use this property to specify the path to the encryption key file. The default is aesfips.key. |
MaxMsgSize |
Use this property to specify the maximum size of the message payload in bytes. This is intended to limit the size of batched message events to comply with the requirements of the service endpoint. The default is 0 (which specifies no limit to the message body size). |
For details about configuring the gateway to integrate with Microsoft Azure Event Hubs, see Integrating the gateway with Microsoft Azure Event Hubs.
Although this integration was developed for Azure Event Hubs, the functionality may also be applied to other similar integrations that uses the REST API.
multiChannelHttpTransport.json
configured for JSON
batch events: "SEND":
{ "NEW_EVENT":
{
"uri":"https://host:port/endpoint",
"method":"POST",
"headers":"Authorization=++Authorization++,Content-Type=application/json”,
"content":"",
"headerFile":"/opt/IBM/tivoli/netcool/omnibus/java/conf/newHeader.props",
"headerFileRefresh":"60",
"requireSSL":"true",
"bufferSize":"1000",
"bufferFlushTime":"45",
"batchHeader":"[",
"batchSeparator":",",
"batchFooter":"]"
}
}
The contents of newHeader.props
:
Authorization=Bearer thisisthesecrettoken
If your service endpoint requires a certificate for authentication, you can import the certificate into the $NCHOME/platform/<platform>/jre64_<version>/jre/lib/security/cacerts.
The pulsarTransport.properties file
Table 8 describes the properties defined in the pulsarTransport.properties file, which is the transport module properties file associated with the Pulsar transport module protocol.
PULSAR
and
pulsarTransport.properties in the G_XML.props properties
file.
Property name |
Description |
---|---|
ConnectionPropertiesFile |
Use this property to specify the JSON file holding the Apache Pulsar connection properties. |
PulsarClientMode |
Use this property to specify whether the Pulsar client is running in
CONSUMER or
PRODUCER mode.Note: By default PulsarClientMode is commented
out, so you must uncomment it to use it.
|
The socketTransport.properties file
Table 9 describes the properties defined in the socketTransport.properties file, which is the transport module properties file associated with the socket transport module protocol.
Socket
and socketTransport.properties in
the G_XML.props properties file.Property name |
Description |
---|---|
serverPort |
Use this property to specify the port to which the events will be sent. |
clientAddress |
Use this property to specify the address
to which the gateway connects. The format of the address is |
subscribeMessages |
This property is not used by the gateway. |
subscribeResponses |
Use this property to specify a list of response processors for responses to the subscribe messages. |
disconnectMessages |
Use this property to specify messages sent when disconnecting an asynchronous client. |
disconnectResponses |
Use this property to specify response processors for the disconnect messages. |
activeAlarmsMessages |
Use this property to specify messages sent when requesting active alarms as an asynchronous client. |
messageTerminator |
Use this property to specify a regex that should match the end of each alert from the target system. |
readResponseAttempts |
Use this property to specify how many times the probe should attempt to read a response to a message. |
readerResponseDelay |
Use this property to specify how long, in seconds, the probe should wait between attempts to read a response. |
threadPoolSize |
Use this property to specify the maximum number of threads to use to process connections made to the probe when it is running as a server. |
The scalaTransport.properties file
Table 10 describes the properties defined in the scalaTransport.properties file, which is the transport module properties file associated with the SCALA transport module protocol.
SCALA
and scalaTransport.properties in
the G_SCALA.props properties file.The gateway uses the Java Secure Socket Extension (JSSE) framework to implement secure transport over Secure Socket Layer (SSL) and Transport Layer Security (TLS). The JSSE framework hides the complexities of the underlying protocols associated with SSL and TLS. Thus, the following transport properties defined in the scalaTransport.properties file map directly to the JSSE properties: keyStore, keyStorePassword, trustStore, and trustStorePassword.
Property name |
Description |
---|---|
scalaURL |
Use this property to specify the URL of the target data collector application to which the gateway connects. The default is http(s)://some.host.com:port/Unity/DataCollector. |
scalaRetryMax |
Use this property to specify the maximum number of attempts that the gateway makes to connect to the target data collector application before dropping the message. If you set this property to 0 (zero), the gateway tries to connect to the target data collector application indefinitely. The default is 0. Note: While the IBM
Operations Analytics - Log Analysis data collector is not reachable, events are buffered in the gateway. This allows the gateway to
handle temporary or intermittent connectivity problems to the IBM
Operations Analytics - Log Analysis data collector. A prolonged period of connectivity loss potentially results in event loss due to
the gateway's inability to buffer large numbers of events if the event rate is extremely high. In
situations where the event rate is high, it is unlikely that the gateway can send all of the data
and catch up once the IBM
Operations Analytics - Log Analysis data collector is available.
|
scalaRetryPeriod |
Use this property to specify the amount of time (in seconds) between each reconnection attempt to the target data collector application. The default is 30 seconds. |
keyStore |
Use this property to specify the location of the Java keystore file that contains the private keys for any HTTPS ports. See the JSSE for Java security property javax.net.ssl.keyStore. The default is $OMNIHOME/java/security/client.jks. |
keyStorePassword |
Use this property to specify the password to access the private keys for any HTTPS ports from the keystore file specified in the keyStore property. See the JSSE for Java security property javax.net.ssl.keyStorePassword. The default is password. |
trustStore |
Use this property to specify the location of the Java trust store file that contains the server's public key for any HTTPS clients. See the JSSE for Java security property javax.net.ssl.trustStore). The default is $OMNIHOME/java/security/cacerts.jks. |
trustStorePassword |
Use this property to specify the password to access the server's public key for any HTTPS clients from the trust store file specified in the trustStore property. See the JSSE for Java security property javax.net.ssl.trustStorePassword. The default is password. |
threadPoolSize |
Use this property to specify the number of threads that the HTTP servers share to process incoming requests. The default is 16 threads. |
username |
Use this property to specify the username to use for authentication with the target data collector application. The default is no value (that is, the property is blank). Leave this property blank for no authentication. |
password |
Use this property to specify the password to use for authentication with the target data collector application. The password property is ignored if the username property is left blank. The default is no value (that is, the property is blank). |
eventBufferSize |
Use this property to specify the maximum number of events to contain in each batch of log record data that the transport module sends to the target data collector application. The default is 200 events. |
eventBufferFlushTime |
Use this property to specify the amount of time (in seconds) to wait for new events before flushing the buffer. The flush timer is reset on each event added to the batch. The default is 30 seconds. |
enableTrace |
Use this property to enable diagnostic tracing of communications between the transport module and the target data collector application. The default is false (that is, disable diagnostic tracing). |
jsonMsgHostname |
Use this property to specify the hostname that corresponds to the data source for received data. This will be the name of the host where the gateway is running. The default is <local hostname>. |
jsonMsgPath |
Use this property to specify the path that corresponds to the data source for received data. The default is NCOMS. |
readTimeout |
Use this property to specify the length of time (in seconds) that the gateway allows for reading on a socket. The default is 30 seconds. |