Enabling Seamless Tcp Communication
Overview
Motadata AIOps supports multiple communication protocols between core components (Application, Collector, Datastore, and Agents). For environments where tcp is preferred over ZMQ (ZeroMQ), this guide provides instructions to enable seamless TCP-based communication across the platform.
TCP mode allows direct client-server communication and enables easier integration with secured environments and reverse proxy setups. However, it is critical to configure all relevant components consistently to avoid data ingestion or message-processing failures.
In the case of using a protocol other than ZMQ (i.e., when switching to TCP), make sure to remove the following entries from the agent.json file:
"event.publisher.port" : 9449,
"event.subscriber.port" : 9444,
Prerequisites
- Ensure all nodes (Application, Collector, Datastore, Agent) are reachable on required ports.
- Open ports
9478-9487for TCP communication across Application, Datastore, Collector, and Agents with bidirectional access.
Ensure that ports 9478 to 9487 are open in the Motadata AIOps application with bidirectional access to enable seamless TCP client/server communication between the application, collector, agent, and remote entities. Specifically, port 9478 and the next 4 are used for sending, while port 9483 and the next 4 are used for receiving.
By default, port 9478 for sender and 9483 for receiver are open. To add next four ports for each, we can use the below key that should be added in the application server > motadata.json.
tcp.event.publishers and tcp.event.subscribers
Configuration Steps
Below are the required TCP protocol settings to be applied in motadata.json and agent.json files for each component and make sure you restart the services after making protocol changes to ensure they take effect.
Application
motadata.json
"event.observer.protocol": "tcp",
"event.app.sender.protocol": "tcp",
"event.app.receiver.protocols": [ "tcp" ],
"motadata.manager.event.protocol": "tcp",
"event.remote.processor.sender.protocol": "tcp",
"event.remote.processor.receiver.protocol": "tcp",
"tcp.ssl.enabled": "yes" // if applicable
agent.json
"event.agent.sender.protocol": "tcp",
"event.agent.receiver.protocol": "tcp"
Datastore
motadata.json
"motadata.manager.event.protocol": "tcp",
"tcp.ssl.enabled": "yes" // if applicable
agent.json
"event.agent.sender.protocol": "tcp",
"event.agent.receiver.protocol": "tcp"
Collector
motadata.json
"motadata.manager.event.protocol": "tcp",
"event.remote.processor.sender.protocol": "tcp",
"event.remote.processor.receiver.protocol": "tcp",
"tcp.ssl.enabled": "yes" // if applicable
agent.json
"event.agent.sender.protocol": "tcp",
"event.agent.receiver.protocol": "tcp"
Agent
motadata.json
"motadata.manager.event.protocol": "tcp",
"tcp.ssl.enabled": "yes" // if applicable
agent.json
"event.agent.sender.protocol": "tcp",
"event.agent.receiver.protocol": "tcp"