MQTT 输入
编辑MQTT 输入编辑
使用 MQTT
输入读取使用轻量级消息协议传输的数据,该协议适用于小型和移动设备,并针对高延迟或不可靠的网络进行了优化。
此输入连接到 MQTT 代理,订阅选定的主题并将数据解析为常见的邮件行。所有操作都在行过滤、多行和 JSON 解码之前完成,因此此输入可以与这些设置结合使用。
配置示例
filebeat.inputs: - type: mqtt hosts: - tcp://broker:1883 - ssl://secure_broker:8883 topics: - sample_topic
所有其他设置均为可选。
配置选项编辑
mqtt
输入支持以下配置选项以及稍后介绍的通用选项。
hosts
编辑
要连接到的 MQTT 代理列表。
topics
编辑
要订阅和读取的主题列表。
client_id
编辑
连接到 MQTT 代理的每个 MQTT 客户端的唯一标识符。
username
编辑
MQTT 协议在应用程序级别提供的用于身份验证的客户端用户名。
password
编辑
MQTT 协议在应用程序级别提供的用于身份验证的客户端密码。
clean_session
编辑
clean_session
标志指示客户端是否希望与代理建立持久会话。默认值为 true
。
当 clean_session
设置为 false 时,该会话被视为持久会话。代理存储客户端的所有订阅以及以服务质量 (QoS) 级别 1 或 2 订阅的客户端的所有未接收消息。
相反,当 clean_session
设置为 true 时,代理不会保留客户端的任何信息,并且会丢弃持久会话中的任何先前状态。
通用选项编辑
所有输入都支持以下配置选项。
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
。