Kibana4 для прослушивания на порт 80 вместо порта 5601

У меня есть asticsearch 1.4 и kibana4, работающие на экземпляре Amazo EC2 под управлением RHEL7.

Kibana4 работает как отдельный процесс и не развертывается в веб-контейнере, таком как nginx. Он прослушивает порт 5601.(порт по умолчанию). Я хотел бы, чтобы кибана слушала на порту 80.

Можно ли этого достичь без использования nginx? Если да, то как?

2 ответа

Решение

Редактировать файл {kibana-directory}/config/kibana.yml. Найдите эту строку:

port: 5601

и измените его на:

port: 80

Вам нужно установить возможности CAP_NET_BIND_SERVICE для привязки некорневого процесса к привилегированному порту (<1024)

чтобы кибана слушала порт 80:

1- отредактируйте порт кибаны в /etc/kibana/kibana.yml

server.port : "80"

2- выполните следующие команды:

sudo setcap cap_net_bind_service=+epi /usr/share/kibana/bin/kibana
sudo setcap cap_net_bind_service=+epi /usr/share/kibana/bin/kibana-plugin
sudo setcap cap_net_bind_service=+epi /usr/share/kibana/bin/kibana-keystore
sudo setcap cap_net_bind_service=+epi /usr/share/kibana/node/bin/node

Установка порта 80 в файле конфигурации вызовет следующую ошибкуkibana[11777]: FATAL Error: listen EACCES: permission denied 0.0.0.0:80в связи с тем, что сервис kibana по умолчанию выполняется под пользователем kibana

Вы можете изменить пользователя на root, но это вызовет следующее предупреждениеkibana[11639]: Kibana should not be run as root. Use --allow-root to continue.

Поэтому запускать службу kibana под пользователем root не рекомендуется. Лучше создайте правило перенаправления портов или перенаправление HTTP, если у вас есть веб-сервер.

Полные настройки здесь: https://www.elastic.co/guide/en/kibana/current/settings.html

Это должно быть добавлено в config/kibana.yml server.port: 80

И запустить сервер кибана с sudo. Убедитесь, что ни один процесс не использует порт 80 одновременно.

Другие вопросы по тегам