How many users can access Elasticsearch and Kibana at the same time?

I can't speak to the Elasticsearch side - but from a Kibana perspective, this is difficult to answer because (as you point out) things can vary wildly depending on the exact dashboards that are accessed, number of visualizations the dashboards have, breadth of filters, whether you are using reporting or alerting features, etc. And if you are running Elasticsearch on the same machine, that adds another set of variables based on how much CPU/RAM is available for Kibana to use. So the real answer to the question is it depends.

Given those caveats, I'd say most of the "average" Kibana deployments I see which are primarily using dashboards & visualization features without running a lot of background tasks like alerts/reports can handle around ~50 concurrent requests given a 2vCPU / 2GB RAM instance, though this can fluctuate quite a bit.

Note that these are requests, not users, and a single user loading a dashboard could be triggering several different requests at once. Also remember that Kibana serves static assets like JavaScript bundles & images, there is some variation based on how frequently users are visiting Kibana and whether they already have cached assets in their browser (thus reducing the load on the server). A large volume of users with a cold cache hitting dashboards concurrently will stress the Kibana server much more than users who have already been navigating Kibana for a bit and have cached assets.

Because so many factors can influence resource consumption, we do not formally publish any sizing guidance for Kibana -- it is simply too difficult of a question to answer in a generalized way -- but hopefully this gives you something to start with.

Overall I'd recommend running Kibana on a different machine from Elasticsearch, and going with 1-2CPU/2GB RAM as a starting point, then scaling horizontally as needed. If you are making heavy use of reporting/alerting features (which run tasks in the background on the Kibana server), you may want to allocate more memory to each instance.

A few links that may be useful if you haven't seen them yet:

2 Likes