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
[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

### Kibana 的配置方法 Kibana 是一个用于可视化 Elasticsearch 数据的强大工具。其基本功能依赖于与 Elasticsearch 实例的连接,因此正确配置 Kibana 至关重要。 #### 修改 Kibana 连接至指定的 Elasticsearch 实例 默认情况下,Kibana 将尝试连接到运行在 `localhost` 上的 Elasticsearch 实例[^2]。如果需要更改此设置以指向其他主机上的 Elasticsearch 实例,则需编辑位于 Kibana 安装目录下的 `kibana.yml` 文件。具体操作如下: 1. 找到 `elasticsearch.hosts` 参数,并将其更改为目标 Elasticsearch 主机地址。例如: ```yaml elasticsearch.hosts: ["http://your-elasticsearch-host:9200"] ``` 2. 如果启用了 Elasticsearch 认证机制(如用户名和密码),还需添加以下参数: ```yaml elasticsearch.username: "elastic" elasticsearch.password: "your-password" ``` 完成上述修改后,保存文件并重新启动 Kibana 服务以使更改生效。 #### 启动 Kibana 并验证状态 对于不同平台,启动方式可能有所不同。以下是两种常见的启动方法: - **Windows 系统**: 在解压后的 Kibana 目录中找到 `\bin` 子目录,双击 `kibana.bat` 文件即可启动 Kibana[^3]。如果没有响应,可以通过命令提示符手动执行该脚本。 - **Linux/Unix 系统**: 使用管理脚本来控制 Kibana 的生命周期。例如,在 Linux 下可通过以下命令检查 Kibana 当前状态: ```bash /opt/module/kibana/kibana-7.6.2-linux-x86_64/bin/manage_script.sh status ``` 此外,也可以通过直接调用主程序来启动它: ```bash ./kibana ``` 确保端口未被占用以及网络可达性正常之后再继续后续测试过程[^1]。 #### 常见问题及其解决方案 1. **无法访问 Kibana Web 页面** - 可能原因:防火墙阻止了流量或者监听地址错误。 - 解决方案:确认服务器允许外部请求到达 Kibana 默认使用的 5601 端口;另外调整 `server.host` 设置为 `"0.0.0.0"` 来接受来自任何 IP 地址的连接请求。 2. **Elasticsearch 连接失败** - 可能原因:URL 错误、认证凭证不匹配或者是网络连通性存在问题。 - 解决方案:仔细核对 `kibana.yml` 中关于 Elasticsearch 的各项配置条目是否准确无误,并保证两台机器之间能够互相通信。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值