Google Cloud Pub/Sub 输出插件

编辑

Google Cloud Pub/Sub 输出插件

编辑

有关其他版本,请参阅版本化插件文档

安装

编辑

对于默认未捆绑的插件,可以通过运行 bin/logstash-plugin install logstash-output-google_pubsub 轻松安装。有关更多详细信息,请参阅使用插件

获取帮助

编辑

有关插件的问题,请在Discuss论坛中开一个主题。对于错误或功能请求,请在Github中开启一个 issue。有关 Elastic 支持的插件列表,请查阅Elastic 支持矩阵

描述

编辑

一个 Logstash 插件,用于将日志事件上传到Google Cloud Pub/Sub。为了提高效率,事件会批量处理并在后台上传。消息负载是事件的序列化 JSON 表示形式。

用例示例

  • 通过 Pub/Sub 将事件流式传输到 Dataproc 进行实时分析。
  • 将事件从本地数据中心转发到云中的 Logstash。
  • 使用 Pub/Sub 作为可扩展的缓冲区,以平衡处理步骤之间的事件流。

注意:虽然此项目部分由 Google 维护,但它不是 Google 的官方产品。

环境配置

编辑

要使用此插件,您必须创建一个服务帐户,并授予它在主题上的发布权限。您还可以使用分配给计算实例的应用程序默认凭据

Pub/Sub 主题必须在您运行插件之前存在。

配置示例

编辑

基本

编辑

一个基本配置,仅包含项目、主题和 JSON 密钥文件

output {
  google_pubsub {
    # Required attributes
    project_id => "my_project"
    topic => "my_topic"

    # Optional if you're using app default credentials
    json_key_file => "service_account_key.json"
  }
}

高容量

编辑

如果您发现上传速度太慢,可以增加消息批处理

output {
  google_pubsub {
    project_id => "my_project"
    topic => "my_topic"
    json_key_file => "service_account_key.json"

    # Options for configuring the upload
    message_count_threshold => 1000
    delay_threshold_secs => 10
    request_byte_threshold => 5000000
  }
}

属性

编辑

您可以将其他属性附加到每个请求。例如,您可以将数据中心标签附加到日志消息以帮助进行调试

output {
  google_pubsub {
    project_id => "my_project"
    topic => "my_topic"
    json_key_file => "service_account_key.json"


    attributes => {"origin" => "pacific-datacenter"}
  }
}

不同的编解码器

编辑

您可以将编解码器与此插件一起使用,以更改事件的主体

output {
  google_pubsub {
    project_id => "my_project"
    topic => "my_topic"
    json_key_file => "service_account_key.json"


    codec => plain {format => "%{[time]}: %{[message]}"}
  }
}

Google Cloud Pub/Sub 输出配置选项

编辑

此插件支持以下配置选项,以及稍后描述的通用选项

另请参阅通用选项,以获取所有输入插件支持的选项列表。

project_id

编辑
  • 值类型为字符串
  • 此设置没有默认值。

Google Cloud 项目 ID(名称,而不是数字)。

topic

编辑
  • 值类型为字符串
  • 此设置没有默认值。

Google Cloud Pub/Sub 主题。您必须在运行此插件之前手动创建主题。

json_key_file

编辑
  • 值类型为路径
  • 此设置没有默认值。

用于验证您的用户到存储桶的密钥的路径。此服务用户必须具有 pubsub.topics.publish 权限,以便它可以发布到主题。

如果 Logstash 在 Google Compute Engine 中运行,并且未定义 json_key_file,则插件将使用 GCE 的应用程序默认凭据。在 GCE 之外,您必须指定一个服务帐户 JSON 密钥文件。

delay_threshold_secs

编辑
  • 值类型为数字
  • 默认值为: 5

从第一个消息排队的时间起,一旦此延迟过去,就发送批次。必须大于 0。

message_count_threshold

编辑
  • 值类型为数字
  • 默认值为: 100

一旦此数量的消息排队,即使尚未经过延迟阈值,也以单个调用发送所有消息。必须 < 1000。值为 0 将导致消息立即发送,但会因开销而降低总吞吐量。

request_byte_threshold

编辑
  • 值类型为字节
  • 默认值为: 1000000

一旦批处理请求中的字节数达到此阈值,即使尚未超过延迟或消息计数阈值,也以单个调用发送所有消息。这包括完整的消息负载大小,包括设置的任何属性。

attributes

编辑
  • 值类型为哈希
  • 默认值为: {}

以键:值格式添加到消息的属性。键和值必须是字符串。

通用选项

编辑

所有输出插件都支持这些配置选项

设置 输入类型 必需

codec

codec

enable_metric

布尔值

id

字符串

codec

编辑
  • 值类型是codec
  • 默认值是 "json"

用于输出数据的编解码器。输出编解码器是一种方便的方法,可以在您的数据离开输出之前对其进行编码,而无需在 Logstash 管道中使用单独的过滤器。

enable_metric

编辑

禁用或启用此特定插件实例的度量日志记录。默认情况下,我们会记录所有可以记录的度量标准,但您可以禁用特定插件的度量标准收集。

  • 值类型是字符串
  • 此设置没有默认值。

向插件配置添加唯一的 ID。如果未指定 ID,Logstash 将生成一个。强烈建议在您的配置中设置此 ID。当您有两个或多个相同类型的插件时,这尤其有用。例如,如果您有 2 个 google_pubsub 输出。在这种情况下添加命名的 ID 将有助于在使用监视 API 时监视 Logstash。

output {
  google_pubsub {
    id => "my_plugin_id"
  }
}

id 字段中的变量替换仅支持环境变量,不支持使用来自密钥存储的值。