Kafka
Kafka reader 输出的是内容可根据具体情况自定义 parser 进行解析,并且支持gzip、snappy、lz4格式的消息解压缩。
目前我们提供了两个Kafka Reader,您需要根据您的kafka实际版本进行选择。
新版与老版在基础配置的主要区别是老版填的是zookeeper地址,而新版填的是kafka地址;在高级选项里新版加入了鉴权机制,使用场景覆盖的更加广泛。
一、 新版Kafka(newkafak)数据源,针对0.9及以后版本的Kafka
基础配置
consumer 组名称(
kafka_groupid
):kafka组名
,多个 logkit 同时消费时写同一个组名可以协同读取数据。topic 名称(
kafka_topic
):kafka 的topic
名称列表,可以同时读取多个topic,用逗号连接,如"topic1,topic2",要注意多个 topic 中的数据读取都会使用同一种解析方式,需要确认数据编码格式是一致的。broker 地址(
kafka_brokers
):kafka brokers 地址列表,多个用逗号
分隔,常用端口是9092
。读取起始位置(
read_from
):oldest
:从 partition 最开始的位置,newest
:从 partition 最新的位置。默认从 oldest 位置开始消费。
高级选项
来源标签(
datasource_tag
): 把读取kafka topic 也作为标签,记录到解析出来的数据结果中,此处填写标签名称客户端标识(
client_id
) :消费kafka时显示的客户端标识,默认为logkit
SASL用户名(
sasl_username
): 使用SASL协议进行鉴权的用户名SASL用户名(
sasl_password
): 使用SASL协议进行鉴权的密码SSL/TLS证书授权文件路径(
tls_ca
): SSL/TLS证书授权路径SSL/TLS证书文件路径(公钥)(
tls_cert
): SSL/TLS证书路径(公钥)SSL/TLS私钥路径(
tls_key
): SSL/TLS证书路径(私钥)使用TLS但忽略认证(
insecure_skip_verify
): 对于https的访问忽略认证检查
二、老版Kafka(kafka)数据源,针对0.8及以前版本的Kafka
基础配置信息
consumer 组名称(
kafka_groupid
):kafka组名
,多个 logkit 同时消费时写同一个组名可以协同读取数据。topic 名称(
kafka_topic
):kafka 的topic
名称列表,可以同时读取多个topic,用逗号连接,如"topic1,topic2",要注意多个 topic 中的数据读取都会使用同一种解析方式,需要确认数据编码格式是一致的。zookeeper 地址(
kafka_zookeeper
):zookeeper 地址列表,多个用逗号
分隔,常用端口是2181
。读取起始位置(
read_from
):oldest
:从 partition 最开始的位置,newest
:从 partition 最新的位置。默认从 oldest 位置开始消费。
高级选项
- zookeeper 中 kafka 根路径(
kafka_zookeeper_chroot
):kafka 在 zookeeper 根路径中的地址。 - zookeeper超时时间 (
kafka_zookeeper_timeout
): 从 zookeeper 读取数据的超时时间,默认1s。
常见问题
1. 如果我配置了多个kafka broker的地址,但是只分发到一个logkit-pro agent实例运行,是否会出现消费不全?
不会,logkit-pro 会读取完整的数据
2. 如果我配置了多个kafka broker的地址,但是只分发到多个logkit-pro agent实例运行,是否会出现重复消费?
只要配置了同一个kafka_groupid
,不同的logkit-pro实例会通过kafka集群的zookeeper互相协调自适应,分别消费不同的Partition,达到负载均衡的效果。
3. 通过kafka采集数据,分发一台和分发多台有啥区别?
kafka是个分布式消息队列,一个topic可以有很多Partition,logkit分发到多台,填写了同一个 kafka_groupid
以后会自适应,分别消费不同的Partition,达到加速消费的目的。
4. 两个kafka读取的版本该如何选择?
根据您的kafka集群版本选择即可,0.9及以后的kafka集群选择新版,之前的版本选老版。
5. 读取kafka的logkit是否一定要装在kafka集群的机器上?
不需要,只要能与kafka集群网络联通即可。