Stackdriver GCP 中的日志保留

Posted

技术标签:

【中文标题】Stackdriver GCP 中的日志保留【英文标题】:Log retention in Stackdriver GCP 【发布时间】:2019-01-27 06:16:57 【问题描述】:

如何在 GCP Stack-driver 中启用日志保留。我还没有找到任何配置日志保留的文档。 我可以在日志记录部分看到导出选项并记录摄取。

【问题讨论】:

【参考方案1】:

Stackdriver 保留:

    管理员活动(400 天) 数据访问(30 天) 系统事件(400 天) 其他日志(30 天)

项目符号 1 到 3 是审核日志,您可以在 iam > audit logs 页面上启用。请记住,这可能是大量日志。对于数据访问日志尤其如此,因为记录了例如 GCS(Google 云存储)或 Cloud Datastore 中的每个访问对象。一些最佳做法是关闭开发的审计日志记录,或者只为您经常使用的服务(KMS、IAM、存储等)打开审计日志记录,并为 Cloud Build、Cloud Functions 等关闭审计日志记录。

Bullet 4,其他日志,可能是来自 Cloud Functions、App Engine 等的应用程序日志记录。这是来自您在 GCP 上运行的应用程序的日志记录。对于所有 Stackdriver 日志记录,现在可以配置保留时间(2020 年 4 月)。你可以阅读更多关于这个here的信息。

想要更长时间地存储日志记录?

在许多用例中,您希望将日志记录保持更长的时间。这可能是出于分析目的、监控或合规原因。您可以使用项目、目录甚至组织级别的日志接收器导出日志。 Logsinks 本身是免费的,您只需为目的地的存储付费,可能是以下之一:

谷歌云存储 发布/订阅 大查询

如果您想将日志记录导出移动到其他地方,可能是 GCP 外部,Pub/sub 可能是一个很好的解决方案。我最近了解到,在存储成本方面,Google Cloud Storage 和 Big Query 差别不大。它们都提供较低级别的存储撕裂,用于长期存储。

Logsink 最佳做法

对于很多用例,Big Query 可能是最好和最简单的解决方案。存储成本与 Big Query 标准和近线存储类相当。并且您可以轻松查询数据。 使用 Big Query,不要过于频繁地运行涵盖大量数据的查询。这可能会变得昂贵。 使用 Big Query 对数据进行分区,以便将每天或每周的数据插入到新的分区或表中。这反过来又自动将未更新表的存储成本降低了 50%。 由于合规性原因,您必须将数据存储数年(3、5 甚至 7 年)。我建议将数据导出到谷歌云存储。通过对象生命周期管理,您可以将这些数据放入存档存储中,这仅花费标准存储的一小部分 (15%)。

【讨论】:

【参考方案2】:

现在,有可能,see this post bellow(已编辑)


上一个答案:

日志保留期为 30 天,不可配置,您只需支付存储费用

Stackdriver Logging 允许您将日志保留 30 天,并且 为您提供一键式配置工具,可将数据存档更长时间 Google Cloud Storage 中的时间段。

https://cloud.google.com/logging/

但您可以为日志创建接收器并将它们存储在 Big Query 或 Google Cloud Storage(或两者中)

【讨论】:

【参考方案3】:

现在可以保留日志。

将此documentation 用于自定义保留期限。这可以在1 day3650 days 之间。

gcloud beta logging buckets update _Default --location=global --retention-days=[RETENTION_DAYS]

说明

对于每个 Google Cloud 项目,Logging 会自动创建两个日志存储分区:_Required_Default。项目中生成的所有日志都存储在_Required_Default 日志存储桶中,它们存在于生成日志的项目中:

_Required:此存储桶包含管理员活动审核日志、系统事件审核日志和访问透明度日志,并将它们保留 400 天。您无需为存储在 _Required 中的日志付费,并且 此处存储的日志的保留期限不能修改。你 无法删除此存储分区。

_Default:此存储桶包含 Google Cloud 项目中所有其他提取的日志,但 _Required 存储桶中保存的日志除外。标准 Cloud Logging 定价适用于这些日志。日志条目保存在 _默认存储桶保留 30 天,除非您应用自定义保留规则。

使用自定义存储桶和_Default 存储桶,您可以为不同的日志配置自定义保留期。

【讨论】:

谢谢!刚刚阅读页面,它仍处于测试阶段,但它可以工作! 这也是免费的!!长达 10 年 运行这个命令我得到ERROR: (gcloud.beta.logging) Invalid choice: 'buckets'. - 我已经为我的云存储设置了一个接收器,但除此之外我无法更改堆栈驱动程序的保留期。 @DdD 尝试使用 alpha 而不是 beta - 为我修复了它 @Alejandro 派对结束:“自 2021 年 3 月 31 日起,存储费用将适用于所有保留时间超过默认保留期的收费日志,费用为每月每 GiB 0.01 美元(或分数) )。详情见cloud.google.com/stackdriver/pricing#logs-storage"【参考方案4】:

现在,您可以通过以下命令配置自定义保留:

gcloud alpha logging buckets update _Default --location=global --retention-days=[RETENTION_DAYS]

见https://cloud.google.com/logging/docs/storage#logs-retention

【讨论】:

【参考方案5】:

除了 30 天之外,审核日志还会保留 400 天。

Design Patterns for Logging Exports 涵盖了导出到 GCS、BigQuery 和 PubSub(用于流式日志)的细节。

【讨论】:

以上是关于Stackdriver GCP 中的日志保留的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 查询 GCP Stackdriver 日志

GCP 日志记录中的 ChromeOS 错误

.NetCore 日志在 GCP Stackdriver 中输出错误的严重性

安装在 VM 上的 GCP stackdriver-agent 每分钟发送一次奇怪的日志

获取Dataproc日志到Stackdriver日志

Firebase 身份验证日志 - GCP