如何在落地本地磁盘的同时传入kafka这项技术

优采云 发布时间: 2021-08-08 19:56

  

如何在落地本地磁盘的同时传入kafka这项技术

  nginx通用log采集工具在登陆磁盘的同时将数据传输到kafka

  说明

  nginx 将参数从浏览器传输到本地磁盘。之前的博文已经讲的很清楚了,我们将如何在登陆本地磁盘的同时转入kafka。

  这项技术意味着我们可以在页面中埋藏一些点。当用户正常发送请求时,会向log采集服务器发送一些数据。 Kafka和磁盘几乎同时有实时数据。

  特点

  以后可以做log采集server集群,之前会搭建一个负载均衡服务器来分发任务。其中一个挂了,任务可以分配到另一台机器上。

  高并发、高吞吐量、高可用

  实时、离线、容错

  采集Server 集群日志。

  具体实现

  1.专门创建了一台机器作为log采集server

  安装flume log采集tool 两个角色

  TaildirSource:可以监控一个目录下的多个文件并记录偏移量

  KafkaChannel:Channel将source采集的数据写入Kafka

  编写配置文件脚本nginx-kafka.conf

  a1.sources = r1

a1.channels = c1

a1.sources.r1.type = TAILDIR

a1.sources.r1.positionFile = /root/taildir_position.json

a1.sources.r1.filegroups = f1

a1.sources.r1.filegroups.f1 = /log/access-.*\.log

a1.channels.c1.type = org.apache.flume.channel.kafka.KafkaChannel

a1.channels.c1.kafka.bootstrap.servers = node-1.51doit.cn:9092,node-2.51doit.cn:9092,node-3.51doit.cn:9092

a1.channels.c1.kafka.topic = access12

a1.channels.c1.parseAsFlumeEvent = false

a1.sources.r1.channels = c1

  并执行

  bin/flume-ng agent -n a1 -c ./conf -f /root/nginx-kafka.conf -Dflume.root.logger=INFO,console

  2.在其他机器上启用zookeeper和kafka

  自己创建一个topic,2个副本4个分区

  /usr/apps/kafka_2.11-2.2.2/bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic access12 --replication-factor 2 --partitions 4

  3.然后同时监控登陆盘路径,以及kafka的消耗过程

  [root@doit04 ~]# /log/access-2020031512.log/tail -f access-2020031512.log

[root@doit03 ~]# /usr/apps/kafka_2.11-2.2.2/bin/kafka-console-consumer.sh --bootstrap-server doit01:9092, doit02:9092, doit03:9092 --topic access12 --from-beginning

  在浏览器的搜索窗口中传递参数时会出现以下场景:

  kafka消耗的数据和nginx登陆盘上的数据基本是同时更新的!

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线