Google cloud platform 指向多个项目';原木沉到一个桶里
我有几个GCP项目,它们将日志接收器连接到不同的存储桶。我想把它们合并成一个桶。但是stackdriver导出不会将任何区别信息添加到它创建的对象名称中;它们看起来都像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接收器,然后编写
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,并让一个云函数在编写它们后立即将它们移动到您需要的任何地方
可能性是无限的!不幸的是,这在我的情况下不起作用-项目分布在我无法直接控制的多个组织中。