0

We have a Kibana 5.5.2 installation on Centos 7 with many dashboards configured, all works great connecting to IP:5601.

A customer asked us to let his own dashboard be reachable under a specific hostname. We tried a lot of configurations trough Apache and Nginx proxy but we didn't succeed.

Here you are more details:

  • customer wants to go to something like http://dasboard.customer.com and see the dashboard in embedded mode (full screen). The url must stay "static" (no context or values appended behind .com)
  • we configured Apache to proxy this Virtual Host towards the specific "snapshot short url" given by Kibana (the one with the
    /goto/some-alphanumeric-code context), but we get lots of Kibana
    errors or 404 (maybe a lot of resources get lost and not remapped with that kind of proxyPass)

    ProxyPass / http://10.10.102.4:5601/goto/be563e821f356144222a28b348e48a2d?embed=true nocanon

Could someone give us any tip or example? Ask me if you need extra infos.

Thanks a lot!

2 Answers2

0

So I had the same issue. We wanted to show some dashboards in a portal application that was exposed publicly but kibana sat in a private subnet that you could only access from that server the portal was on or via VPN if you were a user.

So my nginx config looked like

resolver 10.10.0.2;
set $kibana_endpoint https://kibana.prod.domain.com;

You needed the resolver line for the set to work if I remember correctly. That needs to be your dns server. Its probably not needed if you use IP and

We then created a URI for the dashboard we wanted to show which was

#
# allows non-vpn users to see API dashboard
location /view/platform/ {
    rewrite ^/view/platform/(.*) /$1 break;
    proxy_pass $kibana_endpoint;
}
Mike
  • 22,310
  • 7
  • 56
  • 79
  • Thanks Mike, I'll try that in the next few days. Just to clarify, how was the dashboard linked in your portal? I mean, which was the exposed URI to get to the dashboard? As I understand from nginx config, it was probably something like https://portal.domain.com/view/platform. I'm confused on how to refer to a specific dashboard only. – shortsteps Nov 26 '17 at 09:13
  • ya if you hit `portal.domain.com/view/platform` it would then proxy back to the kibana dashboard and display it on the portal. If I remember we used an iframe for it to just show the dashboard embeded in the page. – Mike Nov 26 '17 at 13:21
  • Ok, thanks. I would have preferred to hit `portal.domain.com` and get to the specific dashboard with the URI unchanged, but I don't know if it is even possible... Would it make sense to use `location /`? Anyway, I'll let you know. We've already tested the iframe possibility, and it would solv our issue, but some modern browsers complain about security in iframes. Isn't it? – shortsteps Nov 26 '17 at 16:24
0

As @Mike suggested in his second comment, in the end I simply used an iframe exposed by Apache.

In /var/www/html/index.html:

<html>
<head>
  <style>
    body {
      margin: 0;
    }

    iframe {
      max-width: 100%;
      width: 100%;
      height: 100%;
      overflow: hidden;
      border: none;
      margin: auto;
    }
  </style>
</head>
<body>
  <iframe
    src="https://localhost:5601/goto/59a0cd9d5b20600031114818b6ac0dd5?embed=true"
    scrolling="yes"
  ></iframe>
</body>
</html>

If using CA signed SSL certificates (and no self-signed), browsers don't complain about iframes.