1、Kafka里边几个重要的知识点:
Topic: 类似于数据库中的表,可以将一组相同的数据发送给一个Topic,在日志处理中通常会将不同类型的日志写入不同的Topic;
Partition: 是kafka数据存储的基本物理单元,同一个Topic的数据可以被存储在一个或多个partition中
Producer: 生产者,向kafka写数据的服务,例如filebeat;
Consumer: 消费者,去kafka取数据的服务,例如logstash;
Consumer Group: 也是个逻辑上的概念,为一组consumer的集合,同一个topic的数据会广播给不同的group,同一个group中只有一个consumer能拿到这个数据。
也就是说对于同一个topic,每个group都可以拿到同样的所有数据,但是数据进入group后只能被其中的一个consumer消费,基于这一点我们只需要启动多个logstsh,并将这些logstash分配在同一个组里边就可以实现logstash集群。
2、kafka配置
3个logstash对应topic更改分区数量3
kfk]# bin/kafka-topics.sh --alter --zookeeper 10.0.0.168:2181 --partitions 3 --topic kibana
查看topic分区
kfk]# bin/kafka-topics.sh --describe --bootstrap-server 10.0.0.168:9092
Topic: kibana PartitionCount: 3 ReplicationFactor: 1 Configs: segment.bytes=1073741824
Topic: kibana Partition: 0 Leader: 3 Replicas: 3 Isr: 3
Topic: kibana Partition: 1 Leader: 1 Replicas: 1 Isr: 1
Topic: kibana Partition: 2 Leader: 2 Replicas: 2 Isr: 2
查看消费者group列表
kfk]# bin/kafka-consumer-groups.sh --bootstrap-server 10.0.0.168:9092 --list
logstash
3、logstash配置
logstash ~]$ sudovim /usr/local/logstash/conf.d/logstash-kafka.conf
input {
kafka {
bootstrap_servers =>["10.0.0.168:9092,10.0.0.139:9092,10.0.0.184:9092"]
group_id =>"logstash"#消费组
topics =>"kibana"#主题
codec =>"json"
consumer_threads =>1
decorate_events =>true}}
output {if[app]=="kibana"{
elasticsearch {
hosts =>["10.0.0.184:9200","10.0.0.30:9200","10.0.0.106:9200"]
index =>"kibana-%{+YYYY.MM.dd}"#与kafka的主题topic保持一致
user =>"user"
password =>"密码"
ssl =>"true"
cacert =>"/usr/local/logstash/http_ca.crt"}}}
4、配置完启动查看Group详情
[centos@kibana ~]$ sudo /home/kfk/bin/kafka-consumer-groups.sh --bootstrap-server 10.0.0.168:9092 --group logstash --describe
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
logstash kibana 0216202021620277 logstash-0-3751a00f-0c9f-42d1-86ad-a1c4e8f57dd9 /host1 logstash-0
logstash kibana 189473894730 logstash-0-88a04bcf-80d7-427a-93d3-a9f79925e8a9 /host2 logstash-0
logstash kibana 21373567137358013 logstash-0-e84d5fcd-21f4-44f1-9109-ca245e61425a /host3 logstash-0
版权归原作者 平头哥1 所有, 如有侵权,请联系我们删除。