MQTT 输入

编辑

使用 MQTT 输入读取使用轻量级消息协议传输的数据,该协议适用于小型和移动设备,并针对高延迟或不可靠的网络进行了优化。

此输入连接到 MQTT 代理,订阅所选主题并将数据解析为常见的消息行。所有操作都在行过滤、多行和 JSON 解码之前发生,因此此输入可以与这些设置结合使用。

配置示例

filebeat.inputs:
- type: mqtt
  hosts: 
    - tcp://broker:1883
    - ssl://secure_broker:8883
  topics: 
    - sample_topic

hosts 是必需的。

topics 是必需的。

所有其他设置都是可选的。

配置选项

编辑

mqtt 输入支持以下配置选项以及稍后描述的通用选项

hosts

编辑

要连接的 MQTT 代理的列表。

topics

编辑

要订阅和读取的主题列表。

消息发送者和消息接收者之间的协议级别,该级别定义了交付的保证。

MQTT 中有 3 个 QoS 级别。默认为 0

  • 最多一次 (0),
  • 至少一次 (1),
  • 恰好一次 (2)。

client_id

编辑

每个连接到 MQTT 代理的 MQTT 客户端的唯一标识符。

username

编辑

MQTT 协议在应用程序级别提供的用于身份验证的客户端用户名。

password

编辑

MQTT 协议在应用程序级别提供的用于身份验证的客户端密码。

clean_session

编辑

clean_session 标志指示客户端是否要与代理建立持久会话。默认值为 true

clean_session 设置为 false 时,会话被认为是持久的。代理会存储客户端的所有订阅以及客户端错过的所有消息,这些客户端以服务质量 (QoS) 级别 1 或 2 订阅。

相反,当 clean_session 设置为 true 时,代理不会保留客户端的任何信息,并会丢弃任何持久会话中的先前状态。

SSL 参数的配置选项,例如要使用的证书、密钥和证书颁发机构。

有关更多信息,请参阅SSL

通用选项

编辑

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

enabled
编辑

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

tags
编辑

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

示例

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

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

filebeat.inputs:
- type: mqtt
  . . .
  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