【问题标题】:Kibana4 to listen on Port 80 instead of Port 5601Kibana4 监听端口 80 而不是端口 5601
【发布时间】:2015-04-13 21:19:51
【问题描述】:

我在运行 RHEL7 的 Amazo EC2 实例上运行了 elasticsearch 1.4 和 kibana4。

Kibana4 作为独立进程运行,未部署在 nginx 等 Web 容器中。它正在侦听端口 5601。(默认端口)。我想让 kibana 监听 80 端口。

不使用nginx可以实现吗?如果是怎么办?

【问题讨论】:

  • 看看配置文件,应该有端口的设置

标签: nginx elasticsearch kibana-4


【解决方案1】:

您需要设置功能 CAP_NET_BIND_SERVICE 以将非 root 进程绑定到特权端口 (

让 kibana 监听 80 端口:

1- 编辑 /etc/kibana/kibana.yml 中的 kibana 端口

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

【讨论】:

【解决方案2】:

编辑文件 {kibana-directory}/config/kibana.yml。找到这一行:

port: 5601

并将其更改为:

port: 80

【讨论】:

  • 在 Kibana 4 中,您可以在没有特权用户的情况下执行此操作。你会得到这样的错误FATAL { [Error: listen EACCES 0.0.0.0:80]
  • 在哪里可以找到 {kibana-directory}/config/kibana.yml。
  • 没有root权限的程序在unix系统上不能监听1000以下的端口
【解决方案3】:

在配置文件中设置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.

所以不建议在 root 用户下运行 kibana 服务。如果您有网络服务器,最好制定端口转发规则或 HTTP 重定向。

【讨论】:

    【解决方案4】:

    此处的完整设置:https://www.elastic.co/guide/en/kibana/current/settings.html

    这应该被添加到 config/kibana.yml 服务器端口:80

    并使用 sudo 运行 kibana 服务器。确保没有进程同时使用端口 80。

    【讨论】:

    • 以 sudo 运行服务绝不是一个好主意。相反,您可以授予它在较低端口 (>1024) 中侦听的权限。 sudo setcap cap_net_bind_service=+epi path/to/exec(如 /usr/share/kibana/bin/kibana 或 java 或...)
    猜你喜欢
    • 1970-01-01
    • 2013-04-07
    • 2012-05-17
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    相关资源
    最近更新 更多