Google_pubsub 输入插件
编辑Google_pubsub 输入插件
编辑- 插件版本: v1.4.0
- 发布于: 2024-10-15
- 更新日志
有关其他版本,请参阅版本化插件文档。
安装
编辑对于默认未捆绑的插件,可以通过运行 bin/logstash-plugin install logstash-input-google_pubsub
轻松安装。有关更多详细信息,请参阅使用插件。
获取帮助
编辑有关插件的问题,请在Discuss论坛中开启一个主题。对于错误或功能请求,请在Github中开启一个 issue。有关 Elastic 支持的插件列表,请查阅Elastic 支持矩阵。
描述
编辑作者: Eric Johnson <[email protected]> 日期: 2016-06-01
版权所有 2016 Google Inc.
根据 Apache 许可证 2.0 版(“许可证”)获得许可;除非遵守许可证,否则您不得使用此文件。您可以在以下位置获取许可证的副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据“按原样”基础分发的软件不提供任何形式的明示或暗示的保证或条件。请参阅许可证以了解管理权限和限制的特定语言。Google 依赖项 这是一个用于 Google Pub/Sub 的 Logstash 输入插件。该插件可以订阅主题并接收消息。
开发此插件的主要动机是通过 Stackdriver Logging 的导出的日志功能接收 Stackdriver Logging 消息。
先决条件
编辑您必须首先创建一个 Google Cloud Platform 项目并启用 Google Pub/Sub API。如果您打算使用该插件接收 Stackdriver Logging 消息,则还必须启用 Stackdriver Logging API 并配置日志导出到 Pub/Sub。在 https://cloud.google.com/ 上有大量入门信息
Cloud Pub/Sub
编辑目前,此模块要求您手动创建一个 topic
并在 logstash 配置文件中指定它。您还必须指定一个 subscription
,但该插件将尝试自行创建基于拉取的 subscription
。
从 Pub/Sub 接收的所有消息都将转换为 logstash event
并添加到处理管道队列中。所有 Pub/Sub 消息都将被 acknowledged
并从 Pub/Sub topic
中删除(请参阅有关 Pub/Sub 概念的更多信息)。
通常假设传入的消息将采用 JSON 格式并按原样添加到 logstash event
中。但是,如果收到纯文本消息,则插件会将原始文本作为 logstash event
中的 raw_message
返回。
身份验证
编辑您有两种身份验证选项,具体取决于您运行 Logstash 的位置。
-
如果您在 Google Cloud Platform 之外运行 Logstash,则需要在配置文件的
json_key_file
设置中提供 JSON 私钥文件的路径。如果您不想上传该文件并将其内容用作字符串,请将 JSON 私钥的内容添加到json_key_file_content
设置中。您必须为服务帐户分配足够的角色,以便创建订阅并从订阅中提取消息。在此处了解有关 GCP 服务帐户和 IAM 角色的更多信息 - 如果您在 Google Compute Engine 实例上运行 Logstash,则可以选择使用应用程序默认凭据。在这种情况下,您无需在配置文件中指定 JSON 私钥文件。
Stackdriver Logging(可选)
编辑如果您打算使用 logstash 插件进行 Stackdriver Logging 消息接收,您必须首先手动设置导出到 Cloud Pub/Sub 的选项,并手动创建 topic
。请参阅https://cloud.google.com/logging/docs/export/using_exported_logs [导出的日志] 中的更详细说明,并确保已手动配置了必要的权限。
从导出到 Pub/Sub 的 Stackdriver Logging 中的日志消息以 JSON 格式接收,并按原样转换为 logstash event
,格式如 此格式。
示例配置
编辑以下是包含的 example.conf-tmpl
文件的副本,其中显示了此插件的基本配置。
input { google_pubsub { # Your GCP project id (name) project_id => "my-project-1234" # The topic name below is currently hard-coded in the plugin. You # must first create this topic by hand and ensure you are exporting # logging to this pubsub topic. topic => "logstash-input-dev" # The subscription name is customizeable. The plugin will attempt to # create the subscription (but use the hard-coded topic name above). subscription => "logstash-sub" # If you are running logstash within GCE, it will use # Application Default Credentials and use GCE's metadata # service to fetch tokens. However, if you are running logstash # outside of GCE, you will need to specify the service account's # JSON key file below. #json_key_file => "/home/erjohnso/pkey.json" # Should the plugin attempt to create the subscription on startup? # This is not recommended for security reasons but may be useful in # some cases. #create_subscription => false } } output { stdout { codec => rubydebug } }
元数据和属性
编辑原始 Pub/Sub 消息保留在特殊的 Logstash [@metadata][pubsub_message]
字段中,以便您可以获取
- 消息属性
- 原始 base64 数据
- 用于去重的 Pub/Sub 消息 ID
- 发布时间
您必须在将数据发送到输出之前,在过滤器中提取您需要的任何字段,因为 Logstash 否则会删除 @metadata
字段。
有关字段的完整描述,请参阅 PubsubMessage 文档。
获取消息 ID 的示例
input {google_pubsub {...}} filter { mutate { add_field => { "messageId" => "%{[@metadata][pubsub_message][messageId]}" } } } output {...}
Google_pubsub 输入配置选项
编辑此插件支持以下配置选项以及稍后描述的常用选项。
设置 | 输入类型 | 必需 |
---|---|---|
有效的 filesystem 路径 |
否 |
|
是 |
||
是 |
||
是 |
||
是 |
||
否 |
||
否 |
另请参阅常用选项,以获取所有输入插件支持的选项列表。
json_key_file
编辑- 值类型为 路径
- 此设置没有默认值。
如果 logstash 在 Google Compute Engine 中运行,则该插件将使用 GCE 的应用程序默认凭据。在 GCE 之外,您将需要指定服务帐户 JSON 密钥文件。
常用选项
编辑所有输入插件都支持以下配置选项
codec
编辑- 值类型为 codec
- 默认值为
"plain"
用于输入数据的编解码器。输入编解码器是一种方便的方法,可以在数据进入输入之前对其进行解码,而无需在 Logstash 管道中使用单独的过滤器。