通过 Apache/Nginx 代理在静态 URL 后面公开特定的 Kibana 仪表板

通过 Apache/Nginx 代理在静态 URL 后面公开特定的 Kibana 仪表板

我们在 Centos 7 上安装了 Kibana 5.5.2,并配置了许多仪表板,所有仪表板都可以顺利连接到 IP:5601。

一位客户要求我们让他自己的仪表板在特定主机名下可访问。我们通过 Apache 和 Nginx 代理尝试了很多配置,但都没有成功。

更多详细信息请参见:

  • 客户想要去类似的地方http://dasboard.customer.com 并以嵌入模式(全屏)查看仪表板。网址必须保持“静态”(.com 后面不附加任何上下文或值)
  • 我们将 Apache 配置为将此虚拟主机代理到 Kibana 提供的特定“快照短网址”(具有
    /goto/some-alphanumeric-code 上下文的网址),但我们收到很多 Kibana
    错误或 404(可能很多资源丢失并且没有用这种代理密码重新映射)

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

有人能给我们一些提示或例子吗?如果您需要更多信息,请问我。

多谢!

答案1

所以我遇到了同样的问题。我们想在公开的门户应用程序中显示一些仪表板,但 kibana 位于私有子网中,您只能从门户所在的服务器访问,或者如果您是用户,则可以通过 VPN 访问。

我的 nginx 配置如下

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

如果我没记错的话,你需要解析器行才能set工作。这需要是你的 DNS 服务器。如果你使用 IP 和

然后,我们为想要显示的仪表板创建了一个 URI,它是

#
# allows non-vpn users to see API dashboard
location /view/platform/ {
    rewrite ^/view/platform/(.*) /$1 break;
    proxy_pass $kibana_endpoint;
}

答案2

正如@Mike 在他的第二条评论中所建议的那样,最后我只是使用了 Apache 公开的 iframe。

/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>

如果使用 CA 签名的 SSL 证书(而不是自签名的),浏览器就不会抱怨 iframe。

相关内容