如何删除 Google Cloud 上属于“GKE Con​​tainer”服务的所有日志记录

如何删除 Google Cloud 上属于“GKE Con​​tainer”服务的所有日志记录

我尝试删除属于GKE Container服务的大量日志记录。但我做不到。

这是

截图中可以看到大量的日志记录

我应该通过“cloud beta logs”命令删除哪一个?

有没有办法删除属于GKE Container服务的所有日志实体?

所有的日志记录都列在我的shell的结果中。

$ gcloud beta logging logs list
NAME
projects/bonair-pass/logs/cloudaudit.googleapis.com%2Factivity
projects/bonair-pass/logs/cloudaudit.googleapis.com%2Fdata_access
projects/bonair-pass/logs/compute.googleapis.com%2Factivity_log
projects/bonair-pass/logs/docker
projects/bonair-pass/logs/event-exporter
projects/bonair-pass/logs/events
projects/bonair-pass/logs/feeder-for-old-tracker
projects/bonair-pass/logs/fluentd-gcp
projects/bonair-pass/logs/heapster
projects/bonair-pass/logs/kubelet
projects/bonair-pass/logs/mqtt-broker-service
projects/bonair-pass/logs/node-problem-detector
projects/bonair-pass/logs/prom-to-sd
projects/bonair-pass/logs/prometheus-to-sd-exporter

答案1

我不相信仅用一个命令就能实现这一点。

日志并不像命令输出所示的那样以分层文件夹结构存储gcloud beta logging logs list

如果您确定要删除“GKE 容器”类别下定义的日志,则可以通过发出以下命令分别删除每个容器的日志:

gcloud logging logs delete LOG_NAME

如果您不确定列表中哪些日志属于“GKE 容器”类别,您可以通过导航至 Stackdriver 日志视图进行检查:

GKE Container > Cluster name > namespace_id

这将使用该命名空间中的容器名称填充第二个下拉菜单,该名称将与 GKE 容器下定义的日志相对应。

编辑:

即使您删除日志,资源使用情况的值也不会下降,因为该值代表该月内生成的日志量(而不是存储的日志量)。

如果您想停止接收 GKE 容器资源的日志,可以应用排除过滤器。这将允许您控制接收和不接收的日志,并控制您的成本。

至于您关于删除审计日志的评论,这些日志是无法删除的。管理员活动审计日志(和 Bigquery 数据访问审计日志)不受排除限制,也不包含在您项目中使用的数据总数中。

答案2

您可以使用:

gcloud beta logging logs list | grep "name" | awk '{print $1}' | xargs -n 1 -P 5 gcloud logging logs delete --quiet

删除所有带有“名称”的日志。

相关内容