使用 Google Dataflow 直接将数据从 Google Cloud Storage 采集到 Elastic 中

blog-thumb-cloud-gcp.png

今天我们很高兴地宣布我们已支持通过 Google Dataflow 直接将 Google Cloud Storage (GCS) 数据采集到 Elastic Stack 中。现在,开发人员、站点可靠性工程师 (SRE) 和安全分析人员只需在 Google Cloud 控制台中点击几下,就可以从 GCS 采集数据到 Elastic Stack。

许多开发人员、SRE 和安全分析人员用 GCS 来存储 Google Cloud 中的应用程序和基础架构所生成的日志和事件,同时也用 Elastic Stack 排除、监测或查看来自这些应用程序和基础架构的安全异常。 为了增强这两种解决方案的体验,Google 和 Elastic 合作提供了一种简便轻松的方式,将存储在 GCS 中的日志和事件采集到 Elastic Stack 中。这有助于您简化数据管道体系结构、免除运行开销,并减少故障排除所需的时间,所有这些都只需要在 Google Cloud 控制台中点击几下即可实现,且无需创建自定义数据处理器。

在这篇博文中,我们将介绍如何开始使用 Google Dataflow 实现从 GCS 到 Elastic Stack 的无代理数据采集。

简化从 GCS 采集数据的过程

Google Cloud Storage 是一种对象存储解决方案,经常被拿来与 Amazon S3 或 Azure Blob Storage 进行比较。GCS 以具有吸引力的价格常常用于数据备份和存档、无需流式传输的数据分析,甚至托管简单的网页和应用程序。开发人员、SRE 或安全分析人员可能会决定在 GCS 中存储应用程序或基础架构日志和事件,用于备份或存档。Google Cloud 用户也可能只将某个数据管道中的部分数据采集到 Elastic Stack 中,并将其他数据存储在 GCS 中以便日后必要时进行分析。

一旦将日志和事件存储在 GCS 中,您就必须确定用于第三方分析解决方案(如 Elastic)的采集方法。如果只需在 Google Cloud 控制台中点击几下,就能直接从 GCS 采集数据到 Elastic Stack,那就最好不过了。现在通过 Google Dataflow 中的下拉菜单就可以实现,这是一款常用的无服务器数据处理产品,基于 Apache Beam 构建而成。Dataflow 能有效地将来自 GCS 的日志和事件推送到 Elastic Stack。我们目前支持 CSV 文件格式,并将很快增加对 JSON 的支持。

下面简要介绍了数据采集流程。这种集成适用于所有用户,而无论您使用的是 Elastic Cloud 上的 Elastic Stack、Google Cloud Marketplace 中的 Elastic Cloud,还是自管型环境。

Dataflow

 

开始使用

要想演示 GCS 的采集功能,最好的方法就是通过一个示例逐步呈现。下面的示例将分析来自美国地质勘探局 (USGS) 的地震数据,它收录了一个公共数据集,提供有关实时地震和地震统计的信息。我们将用上个月 USGS 2.5 级以上的地震数据作为 CSV 文件。我们在下面仅列出了这个文件的前五行,让您大概了解数据的样子:

数据文件

 

在 Google Cloud 控制台的 Dataflow 页面,请选择 GCS to Elasticsearch template(“从 GCS 到 Elasticsearch”模板)。这个模板使用下列信息之一创建 JSON 文档的架构:

  1. Javascript UDF(如有提供)
  2. JSON 架构(如有提供)
  3. CSV 标题*(默认)

如果提供了 UDF 或 JSON 架构,它将被用来代替 CSV 标题。

云暂存

 

对于表单上的第一个字段,请输入 GCS 中表示文件位置的参数。 Cloud ID 可以从 Elastic Cloud UI 中找到,如下所示。可以用 Create API key API 创建 API 密钥。
API 密钥

 

We're hiring

Work for a global, distributed team where finding someone like you is just a Zoom meeting away. Flexible work with impact? Development opportunities from the start?