Google_pubsub 输入插件
编辑Google_pubsub 输入插件
编辑- 插件版本:v1.4.0
- 发布时间:2024-10-15
- 变更日志
其他版本,请参见 版本化插件文档.
安装
编辑对于默认情况下未捆绑的插件,可以通过运行 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 依赖项 这是一个用于 Google Pub/Sub 的 Logstash 输入插件。该插件可以订阅主题并摄取消息。
开发此插件的主要动机是通过 导出日志 功能摄取 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 消息都将被 确认
并从 Pub/Sub topic
中删除(请参阅有关 Pub/Sub 概念 的更多信息)。
通常假定传入的消息为 JSON 格式,并将按原样添加到 logstash event
中。但是,如果收到纯文本消息,插件将以 logstash event
中的 raw_message
返回原始文本。
身份验证
编辑根据您运行 Logstash 的位置,您有两种身份验证选项。
-
如果您在 Google Cloud Platform 之外运行 Logstash,则需要在配置中的
json_key_file
设置中提供 JSON 私钥文件的路径。如果您不想上传文件并将其内容用作字符串,则在json_key_file_content
设置中添加 JSON 私钥的内容。您必须为服务帐号分配足够的权限才能创建订阅并从订阅中提取消息。在此处了解有关 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 输入配置选项
编辑此插件支持以下配置选项以及稍后描述的 通用选项。
设置 | 输入类型 | 必需 |
---|---|---|
有效的系统文件路径 |
否 |
|
是 |
||
是 |
||
是 |
||
是 |
||
否 |
||
否 |
另请参见 通用选项,了解所有输入插件支持的选项列表。
json_key_file
编辑- 值类型为 路径
- 此设置没有默认值。
如果 logstash 在 Google Compute Engine 中运行,则插件将使用 GCE 的应用程序默认凭据。在 GCE 外部,您需要指定服务帐号 JSON 密钥文件。