当前位置:   article > 正文

nginx通用日志采集工具将数据落地磁盘的同时传入kafka_nginx本地和日志服务器同时采集日志

nginx本地和日志服务器同时采集日志

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

并执行

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

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
  • 1

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
  • 1
  • 2

在浏览器的搜索窗口传入参数会发生下面的情景:
kafka消费到的数据和nginx落地磁盘的数据基本为同时更新!
在这里插入图片描述

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号