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

时间:2019-03-09 18:04:25

标签: google-cloud-platform stackdriver google-cloud-stackdriver

我是Google Cloud StackDriver Logging的新手,并且根据documentation的要求,StackDriver将数据访问审核日志存储30天。在同一页面上还提到,日志条目的大小限制为100KB。
我知道一个事实,既可以使用Google Cloud Storage导出Cloud SDK,也可以使用多种语言的Logging Libraries导出日志(我们更喜欢Python)。
我有两个与导出日志有关的问题,分别是:

  1. StackDriver中是否可以安排类似于任务或cronjob的某种方式,这些任务或cronjob在固定的时间间隔后会自动将日志导出到Google Cloud存储中?
  2. 大于100KB的日志条目会发生什么情况。我认为他们被截断了。我的假设正确吗?如果是,是否可以通过任何方式导出/查看完整(完全没有被截断的)日志条目?

2 个答案:

答案 0 :(得分:3)

  

StackDriver中是否可以安排类似于   不断在Google Cloud中导出日志的任务或cronjob   在固定的时间间隔后自动存储吗?

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

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

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

大于100KB的日志条目将如何处理。我假设   他们被截断了。我的假设正确吗?如果可以,有什么办法   我们可以在其中导出/查看完整内容(完全不会被截断)   日志条目?

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

400 Log entry with size 113.7K exceeds maximum size of 110.0K

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

答案 1 :(得分:0)

根据堆栈驱动程序记录的文档,整个过程是自动的。将接收器导出到Google云存储要比Bigquery和Cloud子/发布慢。 link for the documentation

我最近将导出接收器用于大型查询,如果您不想使用其他第三方应用程序进行日志分析,则它比云发布/订阅要好。对于Bigquery,接收器需要在其中存储日志条目的数据集。我注意到接收器在bigqeury数据集中的时间戳基础上创建了bigquery表。

如果要查询时间戳分区表,还需要检查一下此链接 Legacy SQL Functions and Operators