我尝试删除属于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
删除所有带有“名称”的日志。