Multi-tenant single web-host requiring separate ES indicies? Possible to do?

Hello ES Forum,

I'm currently searching for any documentation to this effect but is it possible to do the following:

A single web server hosting multiple different websites (multi-tenant) that would require one installation of Elasticsearch BUT keep all search data (indicies, nodes etc) separate for each site?

Worse yet each website would have the similar index information so ideally I would need to keep all site data "seperate" so as a) not to overwrite anything b) allow different clients to see each other's indexed documents which would lead to confusion.

Basically I've only read (so far) that there is a 1:1 ratio of website to ES installation. So only 1 website per web server per Elasticsearch installation. Is that right?

Or is it possible to have multiple separate sites on 1 web server with multiple "separate" ES clusters/nodes etc.

Would this involve individual ports 9200, 9300, 9400 for each separate ES cluster?

Or am I over thinking this and each clustername is that separate "instance"

Apologies if I'm misusing terms here but I'm having difficulty understanding the ratios here.

Any guidance would be greatly appreciated.

{EDIT} It appears this might be possible. Can anyone expound on this as well? Can I run multiple Elasticsearch nodes on the same machine?

So with differently named ES instances indicated in yml files, different clusternames, explicit port numbers for each node so that they are predictable (eg. http.port and transport.tcp.port) is that the way to multi-tenant?


Yes, using something allocation awareness or filtering. But it kinda defeats the purpose.

I think so, yes. You don't need multiple clusters on a single node unless you have strong security concerns, then you wouldn't even want to do this anyway.

I appreciate you taking the time to respond.

However I'm not really clear on what direction you're trying to indicate.

Yes it can be done but "don't do it."?

So in a more constructive way, perhaps you could expound on the thinking or steer towards documentation?

Much appreciated either way!

You want to multitenant in a single cluster right? - this you can totally do.
But then you also want to keep each tenants data on separate nodes in the same cluster? - this you don't want to do.

Do you know of any documentation (URLs etc.) with additional information on this topic? I'm not seeing how the "allocation awareness" or "filtering" comes into play. I appreciate the tips but actually being able to execute on suggestions currently is a little difficult hence my original post.

Ah I reread your comment here. I would be looking to use 2 clusters to separate data not 1.