For an Elasticsearch cluster with 3 master only nodes and 2 data nodes, do I point elasticsearch.hosts in kibana.yml at the data nodes or the master only nodes (or both)?
why do you have 3 master nodes?
you wont need to do anything in the Kibana yml file
But to get the master (s) to talk to the data nodes you will need to set that in the elasticsearch.yml
From what I've been researching, 3 master nodes that are separated from the data nodes is recommended. Also, I should've clarified, but Kibana won't be installed on the any of the elasticsearch nodes. It will be separate. I understand what I need to do for the Elasticsearch nodes to communicate with each other, but I'm wondering exactly how I'm supposed to configure Kibana to communicate with Elasticsearch. I don't have a coordinating only Elasticsearch node and the documentation doesn't specify which Elasticsearch node you are supposed to use for Kibana when you have master only nodes and data nodes.
3 master 2 data is a fine architecture.
Point Kibana at the data nodes
If you want a little more production / HA you could perhaps take a look at this