• 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

    声明: 作者:Yongfeng01 出处:http://www.cnblogs.com/yongfeng01 转载需声明出处。
  • 相关阅读:
    js对select动态添加和删除OPTION
    文本框textarea实时提示还可以输入多少文字
    JavaScript中统计Textarea字数并提示还能输入的字符
    inupt textarea提示文字(点击消失,不输入恢复)
    inupt textarea提示文字(点击消失,不输入恢复)及限制字数
    Server.MapPath()获取本机绝对路径
    cocos基础教程(12)点击交互的三种处理
    cocos基础教程(9)声音和音效
    cocos进阶教程(2)多分辨率支持策略和原理
    cocos基础教程(10)纹理缓存技术
  • 原文地址:https://www.cnblogs.com/Yongfeng001/p/8030371.html
Copyright © 2020-2023  润新知