如何收集本地服务日志?

问题描述

我想通过knative部署我的服务,但是我不知道如何收集服务日志并将其保存在es中。服务日志位于/ var / log目录下,因此我将该目录安装到emptyDir卷并通过sidecar收集日志。提交yaml文件时,我发现knatve不支持这种方法

enter image description here

我知道如何收集容器控制台日志,但是当通过knative部署服务时,我只是不知道如何收集特定的目录日志。那么有人知道解决方案吗?

感谢您的帮助和时间

解决方法

正如错误所述,yaml有2个容器(多容器),默认默认不支持。这就是为什么您的Yaml不被knative webhook接受的原因。 现在v0.17支持多容器。您应该先尝试一下。 https://github.com/knative/serving/blob/master/config/core/configmaps/features.yaml#L44 https://knative.dev/docs/serving/feature-flags/#control

就我而言,我确实只是使用stdout将日志收集到ES的,并且工作起来非常容易,所以我没有尝试您的方法。但是,似乎不需要考虑此配置文件来挂载其他卷。 https://github.com/knative/serving/blob/master/config/monitoring/logging/elasticsearch/100-fluentd-configmap.yaml#L46

我再也没有更好的主意了。希望你找到最好的方法。