在Windows平台上使用Elasticsearch和Kibana进行集群级日志记录

时间:2018-08-16 16:32:36

标签: docker kubernetes

Kubernetes documentation指出可以使用Elasticsearch和Kibana进行集群级日志记录。

是否可以根据文档在Docker for Windows附带的Kubernetes实例上执行此操作?我对模仿这种行为的第三方Kubernetes清单或Helm图表不感兴趣。

1 个答案:

答案 0 :(得分:0)

Kubernetes是一个开源系统,可自动执行部署,扩展, 和容器化应用程序的管理。

这是一个复杂的环境,其中包含有关集群和事件状态的大量信息 在Pod生命周期执行期间进行处理并检查所有节点和整个Kubernetes的运行状况 集群。

我没有使用Docker for Windows的经验,所以我的观点是基于带有Linux容器的Kubernetes 视角。

要收集和分析所有这些信息,有一些工具,例如FluentdLogstash 并且它们附带诸如ElasticsearchKibana之类的工具。 这些集群级日志聚合可以使用Kubernetes编排框架来实现。 因此,我们可以期待一些正在运行的容器负责收集数据,而其他容器 照顾抽象的其他方面,例如分析和表示层。 请注意,某些解决方案取决于Kubernetes环境所在的云平台功能 在跑。例如,GCP提供了Stackdriver Logging

我们可以提到一些日志探测和分析层:

  • 监视窗格 是查看Kubernetes日志的最基本的形式。 您可以使用kubectl命令分别获取每个Pod的日志数据。 这些日志存储在pod中,当pod死亡时,日志也随之死亡。

  • 监视节点。每个节点收集的日志存储在JSON文件中。该文件可能会变得很大。 节点级日志比Pod级日志更持久。

  • 监视群集。 Kubernetes并没有为整个集群提供默认的日志记录机制,但是保留了这一点。 给用户和第三方工具弄清楚。一种方法是建立在节点级别的日志记录上。 这样,您可以分配一个代理来记录每个节点并合并其输出。

如您所见,在集群级别的监视上有一个利基,因此有理由汇总当前日志和 提供了一种实用的方法来分析和呈现结果。

在节点级别的日志记录中,常用的日志聚合器是Fluentd。它被实现为Docker容器, 它与pod生命周期并行运行。 Fluentd不会自己存储日志。 而是将其日志发送到Elasticsearch集群,该集群将日志信息存储在复制的节点集中。 看起来Elasticsearch被用作工作节点聚合日志的数据存储。 该聚合器集群由一个包含两个Elasticsearch实例的容器组成。

可以使用Kibana查看Elasticsearch集群中的聚合日志。 这提供了一个Web界面,该界面提供了一种更方便的交互式方法来查询摄取的日志 Kubernetes系统还对Kibana吊舱进行了监控,以确保其健康运行并达到预期的运行状态 存在副本数。 这些Pod的生命周期受复制控制器规范的控制,该规范本质上类似于 Elasticsearch集群已配置。

回到您的问题。我很确定上面提到的也适用于Kubernetes和Dockers 对于Windows。另一方面,我认为云平台或Linux前提环境 是为他们生活的自然空间。

答案受到Cluster-level Logging of Containers with ContainersKubernetes Logging文章的启发。

我也喜欢Configuring centralized logging from Kubernetes页面,并在使用Kubernetes时就使用了An Introduction to logging in Kubernetes