我们可以安排 StackDriver Logging 导出日志吗?

Can we schedule StackDriver Logging to export log?

我是 Google Cloud StackDriver Logging and as per this documentation StackDriver 的新手,它会将数据访问审核日志存储 30 天。在同一页上还提到,日志条目的大小限制为 100KB。
我知道日志可以导出 Google Cloud Storage using Cloud SDK as well as using Logging Libraries 多种语言(我们更喜欢 Python)。
我有两个与导出日志相关的问题,它们是:

  1. 在 StackDriver 中有没有什么方法可以安排类似于任务或 cronjob 的东西,在固定的时间间隔后自动将日志导出到 Google 云存储中?
  2. 大于 100KB 的日志条目会发生什么情况。我假设他们被截断了。我的假设正确吗?如果是,有什么方法可以 export/view 完整的(完全没有被截断的)日志条目?

Is there any way in StackDriver to schedule something similar to a task or cronjob that keeps exporting the Logs in the Google Cloud storage automatically after a fixed interval of time?

Stackdriver 支持通过 sinks 导出日志数据。没有您可以设置的时间表,因为一切都是自动的。基本上,数据被导出 as soon as possible 并且您无法控制每个接收器的导出量或导出之间的延迟。我从来没有发现这是一个问题。根据设计,日志记录不用作实时系统。最接近的是下沉到 PubSub,它有几秒钟的延迟(根据我的经验)。

有两种方法可以从 Stackdriver 导出数据:

  1. 创建导出接收器。支持的目标是 BigQuery、Cloud Storage 和 PubSub。日志条目将自动写入目的地。然后您可以使用工具来处理导出的条目。这是推荐的方法。
  2. 在 Python、Java 等中编写您自己的代码来读取日志条目并对它们执行您想要的操作。时间安排由您决定。此方法是手动的,需要您管理日程和目的地。

What happens to the log entries which are larger than 100KB. I assume they get truncated. Is my assumption correct? If yes, is there any way in which we can export/view the full(which is not at all truncated) Log entry?

无法将超过条目最大大小的条目写入 Stackdriver。尝试创建条目的 API 调用将失败,并显示类似于 (Python 错误消息):

的错误消息
400 Log entry with size 113.7K exceeds maximum size of 110.0K

这意味着太大的条目将被丢弃,除非作者有逻辑来处理这种情况。

根据堆栈驱动程序记录的文档,整个过程是自动的。导出接收器到 google 云存储比 Bigquery 和云 sub/pub 慢。 link for the documentation

我最近使用导出接收器到大查询,如果您不想使用其他第三方应用程序进行日志分析,这比云更好pub/sub。对于 Bigquery sink 需要数据集,您想在哪里存储日志条目。我注意到 sink 在 bigquery 数据集中基于时间戳创建 bigquery table。

如果你想查询时间戳分区 tables,还有一件事检查这个 link

Legacy SQL Functions and Operators