Google_pubsub 输入插件
编辑Google_pubsub 输入插件编辑
- 插件版本:v1.3.0
- 发布时间:2023-08-22
- 更新日志
有关其他版本,请参阅 版本化插件文档。
安装编辑
对于默认情况下未捆绑的插件,可以通过运行 bin/logstash-plugin install logstash-input-google_pubsub
轻松安装。有关更多详细信息,请参阅 使用插件。
获取帮助编辑
如果您对插件有任何疑问,请在 Discuss 论坛中打开一个主题。对于错误或功能请求,请在 Github 中打开一个问题。有关 Elastic 支持的插件列表,请参阅 Elastic 支持矩阵。
描述编辑
作者:Eric Johnson <[email protected]> 日期:2016-06-01
版权所有 2016 Google Inc.
根据 Apache 许可证 2.0 版(“许可证”)获得许可;除非符合许可证,否则您不得使用此文件。您可以在以下网址获取许可证副本
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据许可证分发的软件按“原样”分发,不提供任何明示或暗示的保证或条件。有关许可证下特定语言的权限和限制,请参阅许可证。Google deps 这是一个用于 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编辑
目前,此模块要求您手动创建 主题
并在 logstash 配置文件中指定它。您还必须指定一个 订阅
,但插件会尝试自行创建基于拉取的 订阅
。
从 Pub/Sub 接收到的所有消息都将转换为 logstash 事件
并添加到处理管道队列中。所有 Pub/Sub 消息都将被 确认
并从 Pub/Sub 主题
中删除(请参阅有关 Pub/Sub 概念 的更多信息)。
通常假设传入消息将采用 JSON 格式并按原样添加到 logstash 事件
中。但是,如果收到纯文本消息,则插件将在 logstash 事件
中以 raw_message
的形式返回原始文本。
身份验证编辑
根据您运行 Logstash 的位置,您有两种身份验证选项。
Stackdriver Logging(可选)编辑
如果您打算将 logstash 插件用于 Stackdriver Logging 消息提取,则必须先手动设置“导出到 Cloud Pub/Sub”选项,并手动创建 主题
。请参阅 https://cloud.google.com/logging/docs/export/using_exported_logs [导出日志] 中的详细说明,并确保还手动配置了 必要的权限。
从 Stackdriver Logging 导出到 Pub/Sub 的日志消息以 JSON 格式接收,并按 此格式 原样转换为 logstash 事件
。
示例配置编辑
以下是包含的 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 输入配置选项编辑
此插件支持以下配置选项以及稍后描述的 通用选项。
设置 | 输入类型 | 必需 |
---|---|---|
有效的 文件系统路径 |
否 |
|
是 |
||
是 |
||
是 |
||
是 |
||
否 |
||
否 |
另请参阅 通用选项,以获取所有输入插件支持的选项列表。
json_key_file
编辑
- 值类型为 路径
- 此设置没有默认值。
如果 logstash 在 Google Compute Engine 中运行,则插件将使用 GCE 的应用程序默认凭据。在 GCE 之外,您需要指定一个服务帐户 JSON 密钥文件。
通用选项编辑
所有输入插件都支持以下配置选项
详细信息编辑
codec
编辑
- 值类型为 编解码器
- 默认值为
"plain"
用于输入数据的编解码器。输入编解码器是一种便捷的方法,用于在数据进入输入之前对其进行解码,而无需在 Logstash 管道中使用单独的过滤器。