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

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: 5601
server.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 nat
Chain 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 5601

Chain INPUT (policy ACCEPT 111 packets, 8034 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 160 packets, 10600 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 160 packets, 10600 bytes)
 pkts bytes target     prot opt in     out     source               destination
  • 上面的 iptables 规则在重启系统生会丢失,为了永久生效,可以使用下面的办法保存配置。
[root@ELK kibana]# service iptables save
iptables: 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 5601
COMMIT
# 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

转载于:https://www.cnblogs.com/yongfeng01/p/8030371.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值