目的:将 nginx 服务器的 access.log日志收集到 kafka 指定 topic
步骤:
1、kafka操作
1、创建 topic
//一般分区数对应节点核数
kafka-topics.sh --zookeeper s102:2181 --partitions 4 --replication-factor 3 --create --topic logs
2、查看 topic 列表
kafka-topics.sh --zookeeper s102:2181 --list
3、启动消费者
kafka-console-consumer.sh --zookeeper s102:2181 --topic logs
注意:kafka集群:s102-s104,使用root启动
2、flume操作
1、配置flume:nginx服务器在s102,s103上,因此需要在两个节点配置flume收集进程
a1.sources = r1 a1.channels = c1 a1.sinks = k1 a1.sources.r1.type = exec a1.sources.r1.command = tail -F /logs/access.log a1.channels.c1.type = memory a1.channels.c1.capacity = 10000 a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink a1.sinks.k1.kafka.topic = logs a1.sinks.k1.kafka.bootstrap.servers = s102:9092 a1.sinks.k1.kafka.flumeBatchSize = 20 a1.sinks.k1.kafka.producer.acks = 1 a1.sinks.k1.kafka.producer.linger.ms = 0 a1.sources.r1.channels=c1 a1.sinks.k1.channel=c1
2、启动flume:分别在s102,s103开启
flume-ng agent -f /home/centos/log_flume_kafka.txt -n a1
scp log_flume_kafka.txt root@s103:/home/centos/
3、开启测试
1、创建 topic,启动kafka消费者
2、启动flume
3、开启反向代理,启动nginx服务器
4、启动单机 redis 进程
5、生成日志
6、观察消费者消费情况