logstash读取kafka数据插件

       最近公司做日志检索和计数日志不同维度统计,选用了ELK,我们的日志已经上传到Kafka中,Logstash需要从Kafka读取数据,下面是Logstash的简化配置:


<span style="font-size:18px;">input {
  kafka {
        #Kafka topic
        topic_id => "test_count_log"
        #消费者组 
        group_id => "logstash_data_access_event"
        #zk的链接地址 
        zk_connect => "10.0.171.202:2181,10.0.171.203:2181,10.0.171.204:2181fka_msg"
        queue_size => 80000
        consumer_threads => 4
        fetch_message_max_bytes => 10485760
  }
}

output {
  elasticsearch {
        hosts => ["10.35.129.3:9200","10.35.129.4:9200","10.35.129.5:9200","10.35.129.6:9200","10.35.129.7:9200"]
        workers => 4
        codec => "json"
        index => "kafka_test_count_log-%{+YYYY.MM.dd}"
  }
}</span>

       想要使用多个 logstash 端协同消费同一个 topic 的话,那么需要把两个或是多个 logstash 消费端配置成相同的 group_id 和 topic_id , 但是前提是要把 相应的 topic 分多个 partitions (区) ,多个消费者消费是无法保证消息的消费顺序性的。这里解释下,为什么要分多个 partitions(区) , kafka 的消息模型是对 topic 分区以达到分布式效果。每个 topic 下的不同的 partitions (区) 只能有一个 Owner 去消费。所以只有多个分区后才能启动多个消费者,对应不同的区去消费。其中协调消费部分是由 server 端协调而成。不必使用者考虑太多。只是 消息的消费则是无序的 。

总结:保证消息的顺序,那就用一个 partition 。 kafka 的每个 partition 只能同时被同一个 group 中的一个 consumer 消费 。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值