Cluster configuration and time based index

Hi guys i have 2 querys,

I am implementing Elastic cluster which will have 3 data node, 1 primary master node & 1 node for both client & secondary master.
while pushing the data to cluster whether i have to specify data nodes or client node?
from my point am using nginx for proxy,security & load balance purpose so in nginx i ll specify 3 data nodes so that nginx will manage the HA of data nodes.

also i want to disable direct http access of data nodes, so user can access client node and admin will manage through master. is it sense better? pls suggest.

Second one,

I want to create 1 primary index & 1 secondary index. the primary index will keep last 30 days data. Documents which are present more than 30 days in primary index should be moved to secondary index based on time stamp, then the secondary index will keep last 6 month documents

How to configure this in Elasticsearch end? because my client servers are pushing the data directly to elastic using Curl cmd through nginx proxy, my custom time stamp format is 2016-08-24:17:21:54.

Having two masters is bad, see Important Configuration Changes | Elasticsearch: The Definitive Guide [2.x] | Elastic
However if you have dedicated master nodes, don't send requests to them.

Don't do that.
Create an index per month and use that.

Thank u Mark Walkom,

The 3d master will be any one of data node which will take master role also.

Could you please explain, why should I avoid primary and secondary index with time based concept..
so I can understand from your perspective. bez its isnecessary for my requirement.

Also can I configure elasticsearch to create an index every three month or one month? i can do this using logstash but here am not using logstash.

Thanks in advance.

How are you going to move the data between indices?
How is that simpler than having this month and last month?

ES will create whatever the client asks for.

Is it possible to do such configuration so elastic will move the 30 days expired docs to secondary index by considering timestamp of docs.


The most priority things am testing as per your suggestion,

Using logstash am able to create month wise index but how to configure it in elasticsearch side ?

Thanks in advance.

No, there is not. You would need to build it yourself.

You don't, LS asks ES to create the index based on the timestamp and the pattern you use in the output.