1

所以我在官方Openshift/Origin 文档之后安装了以下Openshift/Origin 架构 我们还想使用开箱即用的聚合日志记录设置,这就是为什么严格使用Openshift 聚合日志记录文档来设置的原因。

到目前为止,反馈非常好,但我还有另一个挑战,我需要一些帮助。开发人员希望自己指定将转发到 Elasticsearch 的日志级别。当前日志级别仅通过 FluentD 设置。

有没有办法通过 Deployment 变量设置日志级别并使其将 Fluentd 原封不动地传递给 Elasticsearch ?

目标是为人们提供一种自行设置将转发到 Elasticsearch 的日志级别的方法。

4

1 回答 1

1

如果不添加自定义 FluentD,恐怕无法通过标准工具来做到这一点。

首先,集群中的 FluentD通过 json-file 日志驱动程序读取 Docker 提供的容器日志

默认情况下,Fluentd 分别从 /var/log/messages 和 /var/log/containers/.log 读取系统日志和容器日志。

即使使用 SystemD 日志记录,您也会得到相同的结果 - 日志记录级别由 Docker 设置。Kubernetes也使用该驱动程序。

对于 Docker json-file driver 你可以设置log-tags,理论上可以帮你过滤日志。但是 Kubernetes 不可能在运行时为容器设置这些选项,所以现在有办法。

我看到如何做到这一点的唯一方法是将 sidecar 容器与自定义日志记录代理一起使用。它看起来像这样:

日志代理边车

使用 sidecar,您可以运行 FluentD 并在其中运行自定义配置,并解析应用程序的日志并进行任何修改,包括使用环境变量作为日志级别。

于 2018-03-19T20:29:11.227 回答