Kibana4 监听端口 80 而不是端口 5601

Kibana4 to listen on Port 80 instead of Port 5601

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

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

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

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

port: 5601

并将其更改为:

port: 80

完整设置在这里:https://www.elastic.co/guide/en/kibana/current/settings.html

这应该添加到 config/kibana.yml server.port: 80

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

在配置文件中设置端口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 重定向。

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

让 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