Kibana 默认Web 端口 5601 改为 80 的简单办法

来源:互联网 发布:如何自学软件测试 编辑:程序博客网 时间:2024/05/16 17:08

Kibana 安装好后,默认的 Web 端口为 5601,输入网址时感觉很不方便,于是萌生出将其改为 80 端口的办法。

查看配置文件 /etc/kibana/kibana.yml,发现其定义就在第一项目,于是修改。

# Kibana is served by a back end server. This setting specifies the port to use.# server.port: 5601server.port: 80

接下来启服务 (service kibana restart) ,却发现启动失败,检查日志文件,发现如下错误:

FATAL { Error: listen EACCES 0.0.0.0:80    at Object.exports._errnoException (util.js:1018:11)    at exports._exceptionWithHostPort (util.js:1041:20)    at Server._listen2 (net.js:1245:19)    at listen (net.js:1294:10)    at net.js:1404:9    at _combinedTickCallback (internal/process/next_tick.js:83:11)    at process._tickCallback (internal/process/next_tick.js:104:9)  cause:   { Error: listen EACCES 0.0.0.0:80       at Object.exports._errnoException (util.js:1018:11)       at exports._exceptionWithHostPort (util.js:1041:20)       at Server._listen2 (net.js:1245:19)       at listen (net.js:1294:10)       at net.js:1404:9       at _combinedTickCallback (internal/process/next_tick.js:83:11)       at process._tickCallback (internal/process/next_tick.js:104:9)

这个基本上是权限问题了,就是一般应用不允许使用 1024 内的系统端口。查看网上的解决方案,有用 nginx 组合来配置的,但这个又要花费不少时间。于是采用另一种方案,使用 iptables 转发,将到 80 端口的请求全部转发到 5601,而且这样两个端口可以同时工作,使用起来更方便了。具体的操作如下:

  • 设置 iptables
[root@ELK kibana]# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5601
  • 查看 iptables,已经生效。恢复 Kibana 配置文件并启动,访问测试站点http://kibana.zhengyongfeng.cn,成功! 并且 http://kibana.zhengyongfeng.cn:5601 也能正常访问,感谢 iptables 的优良设计。
[root@ELK kibana]# iptables -nv -L -t natChain PREROUTING (policy ACCEPT 29 packets, 3546 bytes) pkts bytes target     prot opt in     out     source               destination   82  4488 REDIRECT   tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 5601Chain INPUT (policy ACCEPT 111 packets, 8034 bytes) pkts bytes target     prot opt in     out     source               destinationChain OUTPUT (policy ACCEPT 160 packets, 10600 bytes) pkts bytes target     prot opt in     out     source               destinationChain POSTROUTING (policy ACCEPT 160 packets, 10600 bytes) pkts bytes target     prot opt in     out     source               destination
  • 上面的 iptables 规则在重启系统生会丢失,为了永久生效,可以使用下面的办法保存配置。
[root@ELK kibana]# service iptables saveiptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ][root@ELK kibana]# cat /etc/sysconfig/iptables# Generated by iptables-save v1.4.18 on Sat Nov 11 15:06:23 2017*nat:PREROUTING ACCEPT [0:0]:INPUT ACCEPT [0:0]:OUTPUT ACCEPT [2:120]:POSTROUTING ACCEPT [2:120]-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 5601COMMIT# Completed on Sat Nov 11 15:06:23 2017

至此, Kibana Web 端口在 80 上的配置顺利完成,利用系统已有的服务可以简单的实现,而不用额外的组件。

小结:

  1. Kibana Web 端口可以使用 iptables 简便的实现到 80 的转换来解决其使用1024下的系统端口的权限问题。
  2. iptables 可以转发的功能,是一个非常好的设计,如果在双网上的情况下,可以实现路由功能。透彻的理解它在系统设计与搭建中会很有意义,当然还有其他功能也不错。

参考:
[1] https://stackoverflow.com/questions/9164915/node-js-eacces-error-wen-listening-on-most-ports

阅读全文
0 0
原创粉丝点击