Hi @Arunlal_A,
If possible I'd suggest setting ES as output. If the only problem with this option is the network separation there is a solution. You can add coordinator nodes to the networks where metricbeat is running and make these nodes the only ones that have access to the network where your Elastic Stack is running. This way you don't need to add additional elements, and it is also easier to setup metricbeat when it sends events directly to Elasticsearch.
Logstash, and Redis (or Kafka) can also be valid options, but I'd only use them if you have some other requirements or more complex architectures.
I am not sure of understanding this question.
- If you mean to monitor metricbeat itself, take a look to Metricbeat monitoring.
- If you mean to make Metricbeat listen for custom events, take a look to the HTTP Server metricset.
- If you mean to monitor your own software, you can also take a look to the APM solution.
Yes, this queue is independent of the output, events are stored in this queue before being sent to the outputs.