谷歌计算引擎上的 ELK 堆栈

谷歌计算引擎上的 ELK 堆栈

尝试在 Google 计算引擎服务器上设置 ELK 堆栈时,我发现谷歌提供的“点击部署”解决方案已经过时了。

尽管如此,我还是尝试在 ES 上安装 Logstash 和 Kibana,结果发现无法连接到 Kibana(尽管我可以从 Google Compute 内部和外部连接到 elasticsearch 本身,没有任何问题)。

由于 ELK 堆栈已经在 AWS Ububnu 14.04 机器上运行,我想我将尝试从一台新机器开始,并在 Google Compute 上自行安装所有内容。

安装 ES 后,我再次发现无法从外部连接到 ES(在默认端口 9200 上,当然可以通过点击部署来实现)。

值得注意的是,点击部署服务器可能旨在供内部使用,因为它们具有临时 IP,而我使用静态 IP 定义了所有机器(围绕这个主题的测试也是死路一条)。

在所有情况下,我的服务器的结果都是相同的 - 我收到的错误是 ERR_CONNECTION_REFUSED。

这(令人惊讶地)让我认为我缺少一些防火墙定义。

  1. 我尝试打开另一个端口并在服务器端监听它netcat -lp <some-port>
  2. 然后,我尝试从我的远程机器运行与在 elastic 上运行的相同的请求,但是在新的端口上:curl -X GET 'http://<static-ip>:<some-port>'
  3. 请求顺利进行
  4. 我停止了 elasticsearch 并开始netcat -lp 9200
  5. curl -X GET 'http://<static-ip>:9200'从移除机器中取出的物品就像魔法一样。

    即使打开了所有机器的相关端口并重复整个过程(使用所有不同的组合)后,我意识到我可能遗漏了其他东西。

尽管我尽了最大努力与谷歌实例进行比较,但还是没有找到其他出路。

我在这里遗漏了什么?ES 或 GCE 中还有其他连接定义吗?

答案1

出色地,孔奇有点正确。问题出在 ES 连接到环回设备,但设置network.bind_host_non_loopback_只是解决方案的一半,我现在只能从外部访问 ES(当然)。

显然,有一个 GCE 插件可以解决这个问题,但只支持 ES 1.7 版,我想我得等它赶上来。其余的可以自己解决。

相关内容