Информационная панель kibana только для чтения для AWS Elasticsearch 6.3 - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть требование об обмене данными только с панелью управления Kibana в режиме просмотра только для клиентов.

Я впервые работаю с Elasticsearch и Kibana.И это мой первый вопрос Stackoverflow.Так что, будь добр, потерпи меня.

Наша команда использует сервис AWS Elasticsearch с ES версии 6.3, AWS не предоставляет доступ к серверу ElasticSearch и серверу приложений Kibana.

Kibana имеет встроенную поддержку панели управления только для чтения, как упомянуто здесь -
Режим только панели управления Kibana .

В Kibana 6.0 и более поздних версиях поддерживается функция только для чтения.Кроме того, существует плагин X-pack для версий Kibana, не поддерживающий эту функцию.

В AWS ES Service я установил автономный Kibana на отдельный экземпляр EC2, чтобы использовать его встроенную функцию только для чтения.
Скачать Kibana6.2.4

Используя документы AWS, я настроил kibana.yml

Автономная Kibana выглядела точно так же, как и по умолчанию с AWS ES, естьнет параметров для управления пользователями.

Я установил плагин X-pack с kibana6.2.4, используя следующую команду:

sudo ./bin/kibana-plugin install x-pack

Я получил следующие исключения:

Authentication Exception :: {"path":"/_xpack","statusCode":401,"response":"{\"Message\":\"Your request: '/_xpack' is not allowed.\"}"}

ЕслиЯ использую kibana6.3 , он автоматически начинает выдавать ошибки -

Authentication Exception :: {"path":"/_xpack","statusCode":401,"response":"{\"Message\":\"Your request: '/_xpack' is not allowed.\"}"}

Если я отключу функцию безопасности x-pack,

xpack.security.enabled: false

сервер kibana будет работать бесконечнов режиме оптимизации на моем экземпляре aws ec2 t2.micro потребление процессора увеличится до 100%, и через некоторое время экземпляр перестанет отвечать на запросы.

Я обнаружил, что необходимы некоторые изменения вasticsearch.yml, которые находятсяна экземпляре кластера ElasticSearch, к которому у нас нет доступа.

Я поднял билет в службу поддержки AWS, и они сказали, что на данный момент просматривать только панель управления kibana невозможно.Я попросил их сделать это запросом функции, который они приняли, но ETA не дали

Затем я снова пошел дальше, чтобы найти другие решения.Я обнаружил, что настройку прокси-сервера можно использовать для ограничения некоторых вызовов ES REST API, чтобы сделать просмотр панели управления kibana доступным только для чтения.

Вот несколько ссылок, которые я использовал -
Конфигурация Nginxдля Kibana-ElasticSearch только для чтения / для чтения и записи
Kibana только для чтения по Интернету
Elasticsearch плагин только для чтения

Плагин restвыше требуется доступ к серверу ElasticSearch, которого у меня нет.

В качестве еще одной попытки, используя ссылки выше, я настроил экземпляр AWS EC2 t2.micro и настроил nginx в качестве прокси-сервера, чтобы ограничить внутренние вызовы API ElasticSearch длясделать Kibana доступным только для чтения.
Вот мой фрагмент конфигурации в nginx.conf -

  set $posting 11;
  if ( $request_method !~ ^(GET|POST|OPTIONS|HEAD)$ )                     { return 405; }
  if ( $request_method = POST )                                           { set $posting 1; }
  if ( $request_uri ~ ^/(.+)/(_search)(.*)$ ) { set $posting "${posting}1"; }
  if ( $request_method ~ ^(GET|OPTIONS|HEAD)$ )                           { set $posting 11; }
  if ( $posting != 11 ) { return 403; }

  # for elb health checks
  location /status {
    root /usr/share/nginx/html/ ;
  }

  location / {
    proxy_set_header Host search-<ES_DOMAIN>-<CRYPTO_STRING>.ap-south-1.es.amazonaws.com;
    proxy_set_header X-Real-IP <PUBLIC IP>;

    proxy_http_version 1.1;
    proxy_set_header Connection "Keep-Alive";
    proxy_set_header Proxy-Connection "Keep-Alive";
    proxy_set_header Authorization "";

    proxy_pass https://search-<ES_DOMAIN>-<CRYPTO_STRING>.ap-south-1.es.amazonaws.com/;
    proxy_redirect https://search-<ES_DOMAIN>-<CRYPTO_STRING>.ap-south-1.es.amazonaws.com/_plugin/kibana/ http://<PUBLIC IP>/kibana/;
  }

С этим параметром nginx ссылки на страницы Kibana Discover / Timelion / Dev Tools / Management не будут работать для сохранения / удаления,и это хорошо.
Страница поиска становится пустой, что является правильным, так как никто не может отправлять свои собственные запросы.

Бот Visualize and Dashboardh работают аналогично, они показывают свои списки элементов, что нормально, но после этого обе страницы не открывают никаких реальных графиков.Я хочу, чтобы даже страница «Визуализация» оставалась пустой, но не страница «Панель инструментов».

Когда я просматривал инструменты проверки / разработки браузера firefox / chrome, страницы Visualize и Dashboard совершали вызовы, используя следующий apis -
"_plugin /kibana / api / сохраненные_объекты / _bulk_get ",
" _msearch ",
" _plugin / kibana / api / timelion / run "

Я не уверен, как остановить работу всех элементов пользовательского интерфейса, кроме представлениятолько ссылки в Dashboard, даже страница визуализации должна быть полностью ограничена.
Я пытаюсь оставить открытой только Dashboard для просмотра предопределенных графиков без каких-либо параметров редактирования, сохранения или удаления.

После некоторых исследований со Stackoverflow,Я получил несколько ответов, которые либо старые, либо неактуальные, либо даже требуют доступа к серверу ES / Kibana, которого у меня нет.
Это ссылки на Stackoverflow: -
Возможна ли установка пользовательского плагина kibana в awsasticsearch
Панель управления Kibana только для чтения
Как заблокировать выбранные подстраницы кибаны с помощью nginx
Режим только панели инструментов Kibana

По этой ссылке дан другой подход, Применение разрешения только для чтения к панели управления kibana
Но это заблокирует индекс .kibana, и это будетпроблема для других пользователей, использующих его.

Любая помощь или указатели будут высоко оценены.Я не могу решить эту проблему самостоятельно в течение многих дней.

...