What ports are used to communicate between Elasticsearch/Logstash/Kibana?

I'm trying to design a topology diagram indicating with IP:port of how each service is communicating with one another. How would I fix and complete this diagram?

  • I'm sending logs through Logstash
  • I'm using Nginx with SSL.

/etc/nginx/sites-enabled/mydomain.com:

  server {
      listen 80 default_server;
      server_name _;
      return 301 https://$host$request_uri;
  }
  server {
      listen 443 ssl;
      include snippets/signed.conf;
      include snippets/ssl-params.conf;
      server_name x.x.x.x;
      auth_basic "Restricted Access";
      auth_basic_user_file /etc/nginx/htpasswd.users;
      location / {
          proxy_pass http://localhost:5601;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection 'upgrade';
          proxy_set_header Host $host;
          proxy_cache_bypass $http_upgrade;
      }
  }

I'm reading online such as here that Elasticsearch uses ports 9200, 9300, and/or 9400. But I can't determine if those ports are used for communication FROM Elasticsearch or TO elasticsearch. So which of ports 9200/9300/9400 does Elasticsearch use?
Would that port be used in the Logstash->Elasticsearch relation or the Elasticsearch->Kibana relation?

They will all use 9200 to talk to Elasticsearch, that's the default HTTP port.