官方文档地址: Kafka
Kafka 输出插件允许将你的记录输入到 Apache Kafka 服务中。这个插件使用官方的 librdkafka C library(内置依赖)。
1. 配置参数
参数 | 描述 | 默认值 |
---|---|---|
format | 指定数据格式,可选项:json,msgpack。 | json |
message_key | 用于存储消息的可选键。 | |
message_key_field | 如果设置,记录中的 Message_Key_Field 的值将指示消息键。如果没有设置也没有在记录中找到,Message_Key 将被使用(如果设置了)。 | |
timestamp_key | 设置存储记录时间戳的键。 | @timestamp |
timestamp_format | ‘iso8601’ 或者 ‘double’ | double |
brokers | 单个或多个 Kafka broker 列表,例如:192.168.1.3:9092,192.168.1.4:9092。 | |
topics | 单个 topic 或 topic 列表,由逗号(,)分隔,Fluent Bit 将使用它向 Kafka 发送消息。如果只设置了一个 topic,则该主题将用于所有记录。相反,如果存在多个 topic,将使用 Topic_Key 的值在记录中对应的字段的值匹配的那个 topic。 | fluent-bit |
topic_key | 如果存在多个 topic,记录中的 Topic_Key 的值对应的字段的值将会指示要使用的 topic。例如:如果 Topic_Key 是 router,并且记录是 {“key1”: 123, “router”: “route_2”}, Fluent Bit 将使用的 topic 为 route_2。请注意,如果 Topic_Key 指定的值对应的字段的值不在 Topics 中,那么默认情况下,将使用 Topics 列表中的第一个 topic。 | |
dynamic_topic | 将未知主题(在 Topic_Key 中找到)添加到 Topics。因此,在 Topics 中只需要配置一个默认主题 | Off |
queue_full_retries | Fluent Bit 将数据排队到 rdkafka 库中,如果由于某种原因底层库不能刷新记录,队列可能会填满,阻塞新添加的记录。queue_full_retries 选项设置本地数据排队的重试次数。缺省值为10次,每次重试间隔时间为1秒。将 queue_full_retries 值设置为0表示无限的重试次数。 | 10 |
rdkafka.{property} | {property} 可以是任何 librdkafka 属性 |
将rdkafka.log.connection.close
设置为false
和将rdkafka.request.required.acks
设置为1
是 librdfkafka 属性的推荐设置示例。
2. 入门指南
为了在 Apache Kafka 中插入记录,你可以从命令行或者配置文件中运行插件:
2.1. 命令行
kafka 插件,可以通过两种方式从命令行读取参数,通过-p
参数(属性),例如:
$ fluent-bit -i cpu -o kafka -p brokers=192.168.1.3:9092 -p topics=test
2.2. 配置文件
在你的主配置文件中添加以下输入和输出部分:
[INPUT]
Name cpu
[OUTPUT]
Name kafka
Match *
Brokers 192.168.1.3:9092
Topics test