We finished installing the OIConnector along with Kafka, but there is no CAPM entities in DX OI/O2 (DX Operational Observability) dashboard.
In the /opt/CA/OIConnector/logs/OIConnector.log file:
[ERROR] 2025-05-27 16:54:03.954 [pool-6-thread-8] OIIntegration - Caught exception during initial KafkaConfigurationManager configuration, rescheduling attempt.
org.apache.kafka.common.KafkaException: Failed to create new KafkaAdminClient
Caused by: org.apache.kafka.common.config.ConfigException: You must set either bootstrap.servers or bootstrap.controllers
[INFO ] 2025-05-27 16:54:34.029 [pool-6-thread-25] KafkaConfigurationManager - KafkaEventIngestionService already exists. Using external configuration.
[INFO ] 2025-05-27 16:54:34.102 [pool-6-thread-25] KafkaConfigurationManager - Kafka event service configuration completed.
Local configuration: clusterName=OIConnector_cluster, event.topic=netops.syslog.event-ingestion, kafkaEnabled=true, bootstrap.servers=<kafka-server>:9092,
External configuration: clusterName=OIConnector_cluster, event.topic=netops.syslog.event-ingestion, kafkaEnabled=true, bootstrap.servers=
[INFO ] 2025-05-27 16:54:34.102 [pool-6-thread-25] ClusterAdmin - ClusterAdmin instance for Product: OIConnector
[INFO ] 2025-05-27 16:54:34.102 [pool-6-thread-25] ClusterAdmin - Bootstrap-servers:
DX NetOps Performance Management
DX Operational Observability
The DA (Data Aggregator) does not have the right Kafka config.
Retrieve a list of the KafkaConfigIDs by issuing a GET request to the kafkaeventservice Data Aggregator REST web service:
http://<DA_hostname>:8581/rest/kafkaeventservice
OR run a curl syntax like below:
curl -sk -u admin http://<DA_hostname>:8581/rest/kafkaeventservice | xmllint --format -
There should likely be just one kafka config ID returned - take not of it.
Example of the above GET output:
<KafkaEventIngestionServiceList>
<KafkaEventIngestionService version="1.0.0">
<ID>6955</ID>
<KafkaConfigID>6954</KafkaConfigID>
<KafkaTopicName>netops.syslog.event-ingestion</KafkaTopicName>
<KafkaEnabled>true</KafkaEnabled>
</KafkaEventIngestionService>
</KafkaEventIngestionServiceList>
Then issue another GET and supply the KafkaConfigID value from the previous step:
http://<DA_hostname>:8581/rest/kafkaconfig/<KafkaConfigID>
Or run a curl syntax like below:
curl -sk -u admin http://<DA_hostname>:8581/rest/kafkaconfig/<KafkaConfigID> | xmllint --format -
curl -sk -u admin http://<DA_hostname>:8581/rest/kafkaconfig/6954 | xmllint --format -
This should show the configured host(s).
Example of the above GET output, but with empty result (missing BootstrapServers entry):
<KafkaConfiguration version="1.0.0">
<ID>6954</ID>
<BootstrapServersList>
<BootstrapServers></BootstrapServers>
</BootstrapServersList>
<ClusterName>OIConnector_cluster</ClusterName>
</KafkaConfiguration>
Fix the missing BootstrapServers value in DA. It can be set using PUT request to the kafkaconfig Data Aggregator REST web service, with the following body:
http://<DA_hostname>:8581/rest/kafkaconfig/<KafkaConfigID>
Body
Specify as many BootstrapServer entries as required for the Kafka nodes:
<KafkaConfiguration version="1.0.0">
<BootstrapServersList>
<BootstrapServers>example-kafka-1:9092</BootstrapServers>
<BootstrapServers>example-kafka-2:9092</BootstrapServers>
<BootstrapServers>example-kafka-3:9092</BootstrapServers>
</BootstrapServersList>
</KafkaConfiguration>
Here an example of curl syntax:
curl -u admin -H 'Content-Type: application/xml' -X PUT -d '<KafkaConfiguration version="1.0.0"> <BootstrapServersList> <BootstrapServers><kafka-server>:9092</BootstrapServers> </BootstrapServersList> </KafkaConfiguration>' http://<DA_hostname>:8581/rest/kafkaconfig/<KafkaConfigID>
Please stop/start the OIConnector service to put the change in place:
In the /opt/CA/OIConnector/logs/OIConnector.log file:
[INFO ] 2025-06-02 13:32:36.524 [pool-6-thread-5] KafkaConfigurationManager - Kafka event service configuration completed.
Local configuration: clusterName=OIConnector_cluster, event.topic=netops.syslog.event-ingestion, kafkaEnabled=true, bootstrap.servers=<kafka-server>:9092,
External configuration: clusterName=OIConnector_cluster, event.topic=netops.syslog.event-ingestion, kafkaEnabled=true, bootstrap.servers=<kafka-server>:9092
[INFO ] 2025-06-02 13:32:36.528 [pool-6-thread-5] ClusterAdmin - ClusterAdmin instance for Product: OIConnector
[INFO ] 2025-06-02 13:32:36.528 [pool-6-thread-5] ClusterAdmin - Bootstrap-servers: <kafka-server>:9092
Use the kafka-cluster tool to get the ID of a cluster. The following example shows how to retrieve the cluster ID, which requires a bootstrap-server argument.
/opt/CA/netops-kafka/kafka/bin/kafka-cluster.sh cluster-id --bootstrap-server <kafka-server>:9092
Try restarting the kafka services:
Collect the /opt/CA/netops-kafka/kafka/logs/server.log and controller.log files.
Collect the /opt/CA/netops-kafka/kafka/config/answers.properties file.