我是Google Cloud StackDriver Logging的新手,根据这个documentation,StackDriver将数据访问审核日志存储30天。在同一页面上也提到,日志条目的大小限制为100KB。 我知道日志可以使用Google Cloud Storage导出Cloud SDK以及在许多语言中使用Logging Libraries(我们更喜欢Python)。 我有两个与导出日志有关的问题,它们是:
StackDriver中是否有任何方法可以安排类似于任务或cronjob的内容,以便在固定的时间间隔后自动将日志导出到Google云端存储中?
Stackdriver支持通过sinks
导出日志数据。由于一切都是自动的,因此您无法设置计划。基本上,数据输出as soon as possible
,你无法控制每个汇点的出口量或出口之间的延迟。我从来没有发现这是一个问题。根据设计,记录不能用作实时系统。最近的是沉到PubSub,它有几秒延迟(根据我的经验)。
从Stackdriver导出数据有两种方法:
大于100KB的日志条目会发生什么。我猜他们被截断了。我的假设是否正确?如果是,是否有任何方法可以导出/查看完整的(根本没有截断)日志条目?
超过条目最大大小的条目不能写入Stackdriver。尝试创建条目的API调用将失败,并显示类似于(Python错误消息)的错误消息:
400 Log entry with size 113.7K exceeds maximum size of 110.0K
这意味着除非编写者具有处理此案例的逻辑,否则将丢弃过大的条目。
根据堆栈驱动程序日志记录的文档,整个过程是自动的。导出接收器到谷歌云存储比Bigquery和Cloud子/ pub慢。 link for the documentation
我最近使用导出接收器进行大查询,如果您不想使用其他第三方应用程序进行日志分析,这比cloud pub / sub更好。对于Bigquery接收器需要数据集,您要在哪里存储日志条目。我注意到,sink在bigqeury数据集中以时间戳为基础创建了bigquery表。
还有一件事,如果你想查询时间戳分区表,请检查此链接Legacy SQL Functions and Operators