我想建立在基于Linux的VM上运行的FileBeat和在Kubernetes中运行的LogStash(通过Ingress公开的LogStash(。我已经在filebeat.yml文件主机中指定了logstash输出:[" https://example.com/logstash"]。我有通过入口暴露的多个服务,因此我希望LogStash也可以通过相同的入口资源暴露。附加到入口资源的主机是https://www.example.com。而且,我使用的是在filebeat..yml的证书自动键中关联的TLS/SSL证书的.crt文件来确保文件beat和logstash之间的连接。在kubernetes上运行的logstash.yml中,我已将输入指定为TCP类型而不是Beats Type。
LogStash服务正在运行clusterip类型,并且具有以下Ingress规则
http:
paths:
- backend:
serviceName: logstash-service
servicePort: 5044
path: /logstash
现在,当我运行整个设置时,VM上的FileBeat给我错误
output.go:100#011Failed to connect to backoff(async(tcp://https://example.com/logstash)): lookup https on 168.63.129.16:53: no such host
Jul 29 19:35:16 filebeat[75346]: 2019-07-29T19:35:16.954Z#011INFO#011pipeline/output.go:93#011Attempting to reconnect to backoff(async(tcp://https://example.com/logstash)) with 7 reconnect attempt(s)
Jul 29 19:35:16 filebeat[75346]: 2019-07-29T19:35:16.954Z#011DEBUG#011[logstash]#011logstash/async.go:111#011connect
Jul 29 19:35:16 filebeat[75346]: 2019-07-29T19:35:16.957Z#011WARN#011transport/tcp.go:53#011DNS lookup failure "https": lookup https on 168.63.129.16:53: no such host
这种设置在技术上可能是可能的吗?主机在文件beat中应该指定的内容是什么?logstash输入类型应该是什么?在FileBeat中指定的tls.crt是否可以使用/logStash?
看起来您想使用无效的主机名使用自签名的SSL证书。有两种方法可以使主机名在您的自托网络中起作用:
- 在/etc/hosts中为主机名中添加IP记录,主机名
https://example.com/logstash
将在您的filebeat配置中使用。 - 创建证书并添加IP的主题名称(SAN(,更改您的文件beat配置,使用IP代替
https://example.com/logstash
主机名。