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

6

我在一台运行RHEL7的Amazon EC2实例上安装了elasticsearch 1.4和kibana4。

Kibana4作为一个独立的进程运行,并没有部署在像nginx这样的Web容器中。它正在监听端口5601(默认端口)。我想让Kibana监听80端口。

如果没有使用nginx,是否可以实现这一目标?如果可以,如何实现?


只需检查配置文件,它可能具有端口设置。 - Mohammad AbuShady
4个回答

7

您需要设置能力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

有关更多上下文,请参见Kibana无法绑定端口80或443 - colan

6

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

port: 5601

并将其更改为:

port: 80

1
在Kibana 4中,您可以无需特权用户就能做到这一点。您可能会收到以下错误:FATAL { [Error: listen EACCES 0.0.0.0:80] - ipeacocks
我在哪里可以找到{kibana-directory}/config/kibana.yml文件? - Anand Deshmukh
非特权程序在Unix系统下无法监听1000以下的端口。 - Pouria Moosavi

1
在配置文件中设置端口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服务。最好制定一个端口转发规则,或者如果您有web服务器,则进行HTTP重定向。

0

4
以sudo身份运行服务永远不是一个好主意。相反,您可以授予权限使其在低端口(>1024)上监听。 sudo setcap cap_net_bind_service=+epi path/to/exec (例如/usr/share/kibana/bin/kibana或java等...) - TanisDLJ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接