Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 指向多个项目';原木沉到一个桶里_Google Cloud Platform - Fatal编程技术网

Google cloud platform 指向多个项目';原木沉到一个桶里

Google cloud platform 指向多个项目';原木沉到一个桶里,google-cloud-platform,Google Cloud Platform,我有几个GCP项目,它们将日志接收器连接到不同的存储桶。我想把它们合并成一个桶。但是stackdriver导出不会将任何区别信息添加到它创建的对象名称中;它们看起来都像cloudaudit.googleapis.com/activity/2017/11/14/00:00:00\u 00:59:59\u S0.json 如果我开始把它们都推到一个桶里,会发生什么?不同的项目接收器是否会覆盖彼此的对象?有没有办法区分哪个项目仅仅从对象创建了日志 如果没有,我想我应该切换到pubsub接收器,然后编写

我有几个GCP项目,它们将日志接收器连接到不同的存储桶。我想把它们合并成一个桶。但是stackdriver导出不会将任何区别信息添加到它创建的对象名称中;它们看起来都像
cloudaudit.googleapis.com/activity/2017/11/14/00:00:00\u 00:59:59\u S0.json

如果我开始把它们都推到一个桶里,会发生什么?不同的项目接收器是否会覆盖彼此的对象?有没有办法区分哪个项目仅仅从对象创建了日志

如果没有,我想我应该切换到pubsub接收器,然后编写一些代码来生成具有更理想名称的对象。是否有任何既定的模式或示例可以这样做

更新:我为此问题提交了文件。

如果您有一个or,其中包含要从中收集日志的所有项目,那么您可以创建一个接收器,从该组织/文件夹中的所有项目收集日志


不幸的是,您无法从云控制台执行此操作。相反,您必须使用
--organization
--folder
选项或。

要启用此功能,只需在接收器上选择并指向具有以下格式的存储桶:
storage.googleapis.com/[bucket\u ID]

我刚刚在我的几个项目中启用了这个功能,因为我很想在导出到bucket时看到结果。但是,我一直在为我的所有项目使用一个BQ接收器,并且创建的表混合了所有日志,因此在使用单个BQ接收器时不会丢失任何日志

我假设地面军事系统的水槽也会以同样的方式工作,但我会在几天后告诉你

如果单个bucket sink不起作用,您可以始终使用单个BQ sink(这将有助于分析日志),并且当您不再希望将它们包含在BQ中时,可以将它们导出,并将文件存储在您想要的任何位置

此外,由于您将不断向水槽中写入数据,因此不能使用近线或冷线,因此存储容量比a大(BQ为0.02 USD/GB,而区域存储容量介于0.02和0.35 USD/GB之间,具体取决于区域;BQ每月免费10GB,GCS 5GB)

我通常会建议使用BQ接收器,但我会告诉你我的桶日志会发生什么

更新:

几个小时后,我验证了共享桶形水槽的工作原理与您预期的差不多。它按时间顺序连接日志,而不考虑项目来源,并且只为每个时间窗口创建一个文件。希望这有帮助!(我还是更喜欢BQ作为日志接收器…)

更新2:

对于您在功能请求中寻求的行为,我将使用BQ,但您也可以轻松地grep项目ID并分离日志:

grep '"logName":"projects/<your-project-id>/' mixed-log.json > single-project-log.json
grep的“logName”:“projects//”mixed-log.json>single-project-log.json
或者,只需获取一个由触发的云函数(因此,每次您在接收器中收到日志文件时),即可为您运行此函数

或者,您可以创建一个名称空间bucket,并让一个云函数在编写它们后立即将它们移动到您需要的任何地方


可能性是无限的!

不幸的是,这在我的情况下不起作用-项目分布在我无法直接控制的多个组织中。