No CAPM inventory in DX OI/O2 dashboard
search cancel

No CAPM inventory in DX OI/O2 dashboard

book

Article ID: 399637

calendar_today

Updated On:

Products

Network Observability CA Performance Management DX Operational Observability DX Operational Intelligence

Issue/Introduction

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: 

Environment

DX NetOps Performance Management

DX Operational Observability

Cause

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>




Resolution

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:

  • systemctl stop caperfcenter_oiconnector
  • systemctl start caperfcenter_oiconnector
  • systemctl status caperfcenter_oiconnector

 

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

Additional Information

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:

  • systemctl stop netops-kafka-zookeeper
  • systemctl stop netops-kafka
  • systemctl status netops-kafka-zookeeper
  • systemctl status netops-kafka
  • systemctl start netops-kafka-zookeeper
  • systemctl start netops-kafka

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.