4

We have some dashboards in Kibana defined over indexes in Elasticsearch over logs from a multi tenant environment. I.e. we have records from multiple clients all in one index, so far for our own use (analysis of apps' behavior, system failures and so on).

We would like to give clients some statistics about their own activity (i.e. how many times which API call was used by their applications and so forth). I know that it is possible to use embed functionality i.e. get code that Kibana itself generates to access a dashboard or a single visualization. The problem with this approach is that the URL that we would have to make available to the client (for example, put in an iframe in a webpage) includes the filter which limits the data to only their Tenant ID. So, if they know IDs of other tenants, they could manipulate that code and get access to other client's logs, which is in our case not an option.

  1. Is there a way to achieve this? For example, through a proxy app that would take some hash code and map it to the tenant ID internally?

  2. Are there better/other ways to provide access to information prepared by Kibana? Some sort of offline renderer that would, say, take snapshots over a pre-defined time range and store them as static files? Anything that doesn't involve letting users see too much of what we have?

We are running Kibana 5.5.2 but an upgrade would also be an option.

Yuri Makassiouk
  • 425
  • 3
  • 16

0 Answers0