在ElasticSearch中使用Fluentd存储日志

时间:2018-02-08 05:23:43

标签: linux docker elasticsearch kubernetes fluent

我有一个Kubernetes集群,其上有50多个pod,我想从所有这些pod中获取日志,然后将日志存储在ElasticSearch中并使用Kibana将其可视化,但ElasticSearch和Kibana应该在Kubernetes之外,同一网络中的另一台虚拟机。

如何配置Fluentd抓取日志并将其发送到非Kubernetes ElasticSearch?

1 个答案:

答案 0 :(得分:0)

完全有可能。在kubernetes集群中,您需要在可从群集外部的虚拟机访问的外部IP上公开Fluentd服务,并在此虚拟​​机上运行ElasticSearch和Kibana。

ElasticSearch(在kubernetes集群之外)将使用k8s中的Fluentd服务访问Fluentd(在kubernetes集群内)并提取日志。

有四种方法可以在k8s中公开Fluentd服务以供ElasticSearch进行外部访问:

  1. LoadBalancer自动设置ExternalIP的服务类型。当存在外部非k8s,云提供商的负载均衡器(如CGE,AWS或Azure)时,将使用此方法,此外部负载均衡器将为nginx入口服务提供ExternalIP。
  2. ExternalIPshttps://kubernetes.io/docs/concepts/services-networking/service/#external-ips
  3. NodePort:在这种方法中,可以使用NodeIP从集群外部访问服务:NodePort / url / of / the / service。
  4. Ingresshttps://kubernetes.io/docs/concepts/services-networking/ingress/