logging - 如何在 Stackdriver Logging 上禁用来自 k8s_cluster 的日志?
问题描述
我们有一个 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 不会从我们的 gcp 项目(https://console.cloud.google.com/logs/usage?project=xxxx )中检测到任何数据(摄取的 0B)它使用日志查看器,然后我们可以看到日志。
Grafana 能够使用 Stackdriver Datasource 检测数据,您可以在此处查看
解决方案
过滤器包含始终启用的系统事件resource.type="k8s_cluster"
的审核日志,因此,它们不会从 Stackdriver Logging 中排除,不像只有容器 stdout 和 stderr 日志记录。resource.type="container"
此外,您可以通过将“@type”条件添加到 Stackdriver 过滤器来确定哪些日志属于审核日志流:
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 能够显示这些基于日志的指标,因为它们是通过 Datasource 导出的,而不是进入 Stackdriver。
推荐阅读
- android - Kotlin 承诺契约培训
- zabbix - Zabbix - 主机组列表
- java - Spark Streaming:如何获取一天的时间戳计数?
- python - {Numpy} 将两个不同大小的列表相乘
- spring-boot - Spring Boot Rest API - 未知字段 - 错误消息自定义
- javascript - Polaris shopify 导入 css 问题
- c++ - 如何在 Matlab 2016b 中导入 Eigen C++ 库?
- dart - 如何在颤动中制作视频缩略图?
- node.js - curl在nodejs中解析equilant(伪造ip的主机名)
- java - 应用程序监听器
不叫