Elasticsearch: Service Unavailable in Kibana 4.3

I'm running 4 instances of Elasticsearch 2.1. 1 of the instances, named "superman_172_31_5_65", runs with Kibana 4.3 (Apache is the proxy) and has node.data and node.master set to false. Whenever I start Kibana I get the "Service Unavailble" for Elasticsearch. Digging into /var/log/elasticsearch we see

[2015-12-07 23:59:34,242][WARN ][discovery.zen] [superman_172_31_5_65] master left (reason = transport disconnected), current nodes: {{spiderman_172_31_56_21}{c0XXmfsrQYqXbgsZ705h4g}{172.31.56.21}{172.31.56.21:9300}{max_local_storage_nodes=1, master=true},{ironman_172_31_56_19}{q1B4AXEsTJie2vPcQCPh-g}{172.31.56.19}{172.31.56.19:9300}{max_local_storage_nodes=1, master=true},{superman_172_31_5_65}{2UIAOma_SQO8AN2cUXP-fQ}{172.31.5.65}{172.31.5.65:9300}{max_local_storage_nodes=1, data=false, master=false},}
[2015-12-07 23:59:34,242][INFO ][cluster.service] [superman_172_31_5_65] removed {{hulk_172_31_56_20}{5JI2m1n8S1CDok_6yBwv0w}{172.31.56.20}{172.31.56.20:9300}{max_local_storage_nodes=1, master=true},}, reason: zen-disco-master_failed ({hulk_172_31_56_20}{5JI2m1n8S1CDok_6yBwv0w}{172.31.56.20}{172.31.56.20:9300}{max_local_storage_nodes=1, master=true})
[2015-12-07 23:59:34,242][WARN ][cluster.service] [superman_172_31_5_65] failed to notify ClusterStateListener
java.lang.IllegalStateException: master not available when registering auto-generated license
at org.elasticsearch.license.plugin.core.LicensesService.requestTrialLicense(LicensesService.java:750)
at org.elasticsearch.license.plugin.core.LicensesService.clusterChanged(LicensesService.java:484)
at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:494)
at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:231)
at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:194)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
(END)

Essentially it can't contact the master. Any suggestions? Should I set node.master in the other elasticsearch.yml?

The other nodes? Yes as someone needs to be the master