如何清除 Google Cloud Platform 中的 Stackdriver 日志?
Posted
技术标签:
【中文标题】如何清除 Google Cloud Platform 中的 Stackdriver 日志?【英文标题】:How to clear Stackdriver logs in Google Cloud Platform? 【发布时间】:2019-02-21 15:05:26 【问题描述】:我最近意识到我为日志支付了太多费用:
As you can see in the image, logs are getting bigger each month
您也可以看到,我今天刚刚对摄取设置了“限制”。希望这会减慢速度。
但据我了解,我的日志变得如此之大,以至于我必须每月为它们的保留付费。我无法弄清楚如何: a) 删除一定时期的日志(或全部) b) 让日志在 x 天后自动删除
I also just today put a quota limit of 100 instead of 6000
【问题讨论】:
【参考方案1】:日志根据retention policy过期:
Admin Activity 400 days
System Events 400 days
Data Access 30 days
Access Transparency 30 days
Other Logs 30 days
请注意,您无需为管理员活动或系统事件日志付费。
控制成本的一些解决方案是排除和导出,但即使您使用timestamp
指定filter expressions 中的日期范围来创建an exclusion filter,因为它已经加载,它不会被排除。这同样适用于创建用于导出数据的日志接收器,因为它将导出未来匹配的日志。
您可以使用gcloud logging logs delete
到delete all the logs for a given project or for a given resource,但不能指定时间范围。
所以,我的建议是下一个:
1.- 删除不需要记录的资源的所有现有日志。
2.- 创建排除项以仅保留您在 30 天内可能需要的日志。
3.- 为您可能需要超过 30 天的所有日志创建导出接收器。
【讨论】:
感谢您的回复。我试过 gcloud logging logs delete ERROR: (gcloud.logging.logs.delete) argument LOG_NAME: Must be specified。如您所见,我需要一个日志名称。不知道如何找出名字?所以那是 1。对于 2,我确实创建了排除项以仅记录 1% 的内容,但找不到将其设置为 30 天的限制?我真的不明白当管理和系统事件是唯一持续超过 30 天的事件时,它们应该是免费的。从屏幕截图中可以看出,我每月为日志支付大约 100 美元,并且日志变得越来越大(它们会累积)。 对于 1,您必须指定资源,如提供的示例中所示:projects/my-gcp-project-id/logs/compute.googleapis.com%2Factivity_log
。您可以指定任何其他资源,要发现日志 ID,请转到 Stackdriver Logging,选择资源和日志。然后点击上方栏的箭头,点击“转换为高级过滤器”,该栏将显示logName="LOG_ID"。
关于 2,您没有累积日志,如果您这样做了,那么您将拥有 TB 的日志,因为您每月创建大约 250 GB 的日志。也许您的 App Engine 应用程序每个月都会创建更多日志,但这些日志并没有累积,因为默认情况下这些日志的保留策略是 30 天。在本月,您已经提取了 154.52 GB 的日志,并且使用新的过滤器,这些日志会在 1 天或 30 天后被删除,以根据其保留政策刷新所有日志。
1 现在运行良好,非常感谢。对于 2:我可以选择让日志更早刷新吗?
恐怕没有配置保留政策天数的选项,但是有一个Feature Request to allow configuration of retention time,我建议在那里投票并发布。以上是关于如何清除 Google Cloud Platform 中的 Stackdriver 日志?的主要内容,如果未能解决你的问题,请参考以下文章
存储桶文件更改后,如何清除静态 Cloud Storage 网站上的缓存?
如何使用 Google PubSub 确认 (@google-cloud/pubsub)
如何使用 Google Python Client for Cloud Functions 获取 Google Cloud Functions 列表?
google-cloud-recommendations 如何识别 UserEvent 是不是被删除?