Предоставить конкретную панель управления Kibana за статическим URL-адресом через прокси-сервер Apache/Nginx

У нас есть установка Kibana 5.5.2 на Centos 7 с множеством настроенных панелей мониторинга, все отлично работает при подключении к IP:5601.

Клиент попросил нас предоставить доступ к его собственной панели инструментов под определенным именем хоста. Мы перепробовали множество конфигураций через Apache и Nginx-прокси, но у нас ничего не получилось.

Здесь вы более подробно:

  • Клиент хочет перейти на что-то вроде http://dasboard.customer.com/ и увидеть панель управления во встроенном режиме (полный экран). URL-адрес должен оставаться "статичным" (без контекста или значений, добавленных за.com)
  • мы настроили Apache для прокси этого Виртуального хоста к определенному "короткому URL снимка", данному Kibana (тот, у которого
    /goto/some-alphanumeric-code context), но мы получаем много Kibana
    ошибки или 404 (может быть, многие ресурсы теряются и не перераспределяются с такого рода proxyPass)

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

Может ли кто-нибудь дать нам какой-нибудь совет или пример? Спросите меня, если вам нужна дополнительная информация.

Большое спасибо!

2 ответа

Решение

Как подсказал @Mike в своем втором комментарии, в конце я просто использовал iframe, выставленный Apache.

В /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 (а не самозаверяющие), браузеры не жалуются на iframes.

У меня была такая же проблема. Мы хотели показать некоторые панели мониторинга в приложении портала, которое было открыто доступно, но 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;
}
Другие вопросы по тегам