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 одновременно.