nginx通用日志采集工具将数据落地磁盘的同时传入kafka

nginx通用日志采集工具将数据落地磁盘的同时传入kafka

说明
nginx从浏览器传参数到本地磁盘上篇博客已经讲的很清楚这次我们将如何在落地本地磁盘的同时传入kafka
这项技术意味着我们可以在页面里面埋一些点,在用户正常的发送请求的时候会向日志采集服务器发送一些数据kafka和磁盘几乎同时拥有实时数据.
特点
以后我们可以做日志采集服务器集群,前面再搞一个负载均衡服务器用于分配任务,有一台挂了,可以将任务给到另一台机器,
高并发,高吞吐,高可用
可实时,可离线,可容错

的日志采集服务器集群.
具体实施
1.专门搞出一台机器作为日志采集服务器
安装flume日志采集工具 两个角色
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 两个副本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落地磁盘的数据基本为同时更新!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值