Deploying the appropriate infrastructure for a large environment like yours isn't an exact science, as it depends on various factors such as agent noise levels and the hardware configuration of worker nodes. However, I'd be glad to offer some tips and guidance to help you achieve your goal.
I recommend starting with a cluster comprising 5 to 8 worker nodes, assuming each node has a standard configuration of 8 GB RAM and a 4-core CPU.
To ensure proper load distribution for the 10000 agents, it's crucial to implement a load balancer. For this agent count, I suggest excluding the master node from the backend of the load balancer. The master node should focus solely on centralization tasks and providing the centralized API.
Once your setup is operational, pay close attention to relevant logs, such as ossec.log, api.log, and cluster.log on the master node, as well as cluster.log and ossec.log on the worker nodes. These logs will help you identify any errors.
Furthermore, you can utilize the Wazuh API to monitor whether different nodes are experiencing event drops in the collection or analysis queues. Refer to the following link for details: Wazuh API Node Statistics. If event drops are detected, consider scaling up your nodes.
For a more precise estimate of how well your infrastructure is handling the load, you can employ Wazuh's calculator: Wazuh Calculator. This tool will assist you in determining whether your current setup adequately supports the number of agents in your environment.
Regards !