GCP Pub/Sub 输入

编辑

使用 gcp-pubsub 输入从 Google Cloud Pub/Sub 主题订阅中读取消息。

此输入例如可用于接收已导出到 Google Cloud Pub/Sub 主题的 Stackdriver 日志。

可以配置多个 Filebeat 实例从同一订阅中读取,以实现高可用性或增加吞吐量。

配置示例

filebeat.inputs:
- type: gcp-pubsub
  project_id: my-gcp-project-id
  topic: vpc-firewall-logs-topic
  subscription.name: filebeat-vpc-firewall-logs-sub
  credentials_file: ${path.config}/my-pubsub-subscriber-credentials.json

配置选项

编辑

gcp-pubsub 输入支持以下配置选项,以及稍后描述的 通用选项

project_id

编辑

Google Cloud 项目 ID。必需。

topic

编辑

Google Cloud Pub/Sub 主题名称。必需。

subscription.name

编辑

要从中读取的订阅的名称。必需。

subscription.create

编辑

一个布尔值,配置输入以在订阅不存在时创建订阅。默认值为 true

subscription.num_goroutines

编辑

创建用于从订阅中读取的 goroutine 数量。这不会限制可以并发处理的消息数量或输入将创建的最大 goroutine 数量。即使只有一个 goroutine,也可能一次处理多条消息,因为该 goroutine 可能会不断收到消息。要限制并发处理的消息数量,请设置 subscription.max_outstanding_messages。默认为 1。

subscription.max_outstanding_messages

编辑

未处理消息(未确认但尚未过期)的最大数量。如果该值为负数,则未处理的消息数量将不受限制。由于内部队列的存在,输入将被阻塞,直到达到 queue.mem.flush.min_eventsqueue.mem.flush.timeout。要防止此阻塞,此选项必须至少为 queue.mem.flush.min_events。默认为 1600。

credentials_file

编辑

包含用于订阅的凭据和密钥的 JSON 文件的路径。作为替代方法,您可以使用 credentials_json 配置选项或依赖 Google 应用默认凭据 (ADC)。

credentials_json

编辑

包含用于订阅的凭据和密钥的 JSON blob。如果您想将凭据数据嵌入到配置文件中或将信息放入密钥库中,这可以作为 credentials_file 的替代方案。您也可以使用 Google 应用默认凭据 (ADC)。

通用选项

编辑

所有输入都支持以下配置选项。

enabled
编辑

使用 enabled 选项启用和禁用输入。默认情况下,enabled 设置为 true。

tags
编辑

Filebeat 在每个已发布事件的 tags 字段中包含的标签列表。标签使您可以在 Kibana 中轻松选择特定事件或在 Logstash 中应用条件筛选。这些标签将附加到常规配置中指定的标签列表中。

示例

filebeat.inputs:
- type: gcp-pubsub
  . . .
  tags: ["json"]
fields
编辑

您可以指定的可选字段,以向输出添加其他信息。例如,您可以添加可用于筛选日志数据的字段。字段可以是标量值、数组、字典或这些的任何嵌套组合。默认情况下,您在此处指定的字段将分组在输出文档中的 fields 子字典下。要将自定义字段存储为顶级字段,请将 fields_under_root 选项设置为 true。如果在常规配置中声明了重复字段,则其值将被此处声明的值覆盖。

filebeat.inputs:
- type: gcp-pubsub
  . . .
  fields:
    app_id: query_engine_12
fields_under_root
编辑

如果此选项设置为 true,则自定义 字段 将存储为输出文档中的顶级字段,而不是分组在 fields 子字典下。如果自定义字段名称与 Filebeat 添加的其他字段名称冲突,则自定义字段将覆盖其他字段。

processors
编辑

要应用于输入数据的一系列处理器。

有关在配置中指定处理器的信息,请参阅 处理器

pipeline
编辑

为此输入生成的事件设置的摄取管道 ID。

管道 ID 也可以在 Elasticsearch 输出中配置,但是此选项通常会产生更简单的配置文件。如果在输入和输出中都配置了管道,则使用来自输入的选项。

keep_null
编辑

如果此选项设置为 true,则具有 null 值的字段将发布在输出文档中。默认情况下,keep_null 设置为 false

index
编辑

如果存在,则此格式化的字符串会覆盖来自此输入的事件的索引(对于 elasticsearch 输出),或者设置事件元数据的 raw_index 字段(对于其他输出)。此字符串只能引用代理名称和版本以及事件时间戳;要访问动态字段,请使用 output.elasticsearch.index 或处理器。

示例值:"%{[agent.name]}-myindex-%{+yyyy.MM.dd}" 可能会扩展为 "filebeat-myindex-2019.11.01"

publisher_pipeline.disable_host
编辑

默认情况下,所有事件都包含 host.name。可以将此选项设置为 true 以禁用将此字段添加到所有事件。默认值为 false

指标

编辑

此输入在 HTTP 监控端点下公开指标。这些指标在 /inputs 路径下公开。它们可用于观察输入的活动。

指标 描述

acked_message_total

成功确认的消息总数。

failed_acked_message_total

确认失败的消息总数。

nacked_message_total

未确认的消息总数。

bytes_processed_total

已处理的字节总数。

processing_time

处理事件所经过时间的直方图,单位为纳秒。