Docker中的ELK和不同网络中的机器中的Beats

时间:2018-06-26 12:22:19

标签: docker elastic-stack filebeat

我试图在专用网络的docker容器中配置ELK,并在另一个专用网络的节拍器中配置Linux机器。我试图为Filebeat生成SSL证书以验证ELK服务器的身份。我尝试通过转发容器端口来使用容器主机的公共IP,但是没有用。谁能帮助我验证文件节拍节点中的ELK服务器身份。

我做了什么?

在网络A上: 1)使用sebp / elk映像启动ELK容器 2)是否为端口5601、9200、5044进行了端口转发 3)验证kibana是否正在网络中加载并且成功 4)使用安装了docker的主机的公共IP在ELK容器中生成SSL证书。 5)将此SSL证书复制到Beats主机/ etc / pki / tls / certs /

在网络B上: 1)机器中安装的节拍(不是容器) 2)使用端口(Say x.x.x.x:8001)的Docker主机的公共IP配置filebeat.yml并添加ssl证书路径 3)重新启动网络A中的logstash和网络B中的filebeat,并收到以下错误 错误: .514762 transport.go:125:ERR SSL客户端无法连接:x509:无法验证证书,因为它不包含任何IP SAN。

非常感谢

1 个答案:

答案 0 :(得分:0)

您可以检查并验证以下几点-

  1. 将容器的elasticsearch,logstash和kibana端口暴露给主机,如果使用默认端口,请使用以下命令进行检查-
  docker port elk_stack
  5044/tcp -> 0.0.0.0:5044
  5601/tcp -> 0.0.0.0:5601
  9200/tcp -> 0.0.0.0:9200
  1. 检查filebeat日志是否显示连接请求以更正elasticsearch / kibana主机,在上述情况下,该主机将是您的​​主机IP和暴露的容器端口。

  2. 使用curl命令从运行filebeat的远程主机上检查是否可以访问elasticsearch和kibana-

curl ${elasticsearch_host}:9200
curl ${kibana_host}:5601