温馨提示:本文翻译自stackoverflow.com,查看原文请点击:kubernetes - How to disable logs from k8s_cluster on Stackdriver Logging?
google-cloud-platform google-cloud-stackdriver kubernetes logging

kubernetes - 如何在Stackdriver Logging上禁用来自k8s_cluster的日志?

发布于 2020-03-27 10:32:24

我们有一个Google Coud Platform项目,在该项目中我们使用集群来部署应用程序,我们在本月的账单中注意到Stackdriver Logging增加太多,因此我们开始创建排除项。

我们从resource.type="container"没有问题的情况下排除了日志但是我们无法从 resource.type="k8s_cluster"

过滤以创建所需的排除项:

resource.type="k8s_cluster"
protoPayload.serviceName="k8s.io"
protoPayload.resourceName="app.k8s.io/v1beta1/namespaces/default/applications/prometheus-1"

奇怪的是,除非我们进行过滤,否则Stackdriver Monitoring不会从那里检测到任何数据(提取的0B),也不会从我们的gcp-project(https://console.cloud.google.com/logs/usage?project=xxxx)中检测到任何数据。使用日志查看器,那么我们可以看到日志。

Grafana能够使用Stackdriver Datasource检测数据,您可以在此处查看

查看更多

查看更多

提问者
Kitsuness
被浏览
135
yyyyahir 2019-07-03 22:04

过滤器resource.type="k8s_cluster"包含始终启用的系统事件的审核日志,因此,不会将它们排除在Stackdriver Logging中,而resource.type="container"仅包含容器stdout和stderr日志记录。

此外,您可以通过在Stackdriver过滤器中添加'@type'条件来确定哪些日志属于Audit Logs流:

resource.type="k8s_cluster"
protoPayload.serviceName="k8s.io"
protoPayload.resourceName="app.k8s.io/v1beta1/namespaces/default/applications/prometheus-1"
protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"

最后,Grafana能够显示这些基于日志的指标,因为它们是通过数据源而不是通过Stackdriver导出到其中的。