编程比赛题目:亿级流量实时分析(第二天)

在编程比赛中,面对亿级流量的日志实时分析挑战,团队决定放弃ELK,转而构建自定义Agent和Server系统。Agent脚本监控日志文件并传输给Server,Server使用grok解析并汇总到Redis。前端直接从Redis获取统计信息。尽管在logServer上遇到Redis连接问题,这次尝试揭示了不断优化现有解决方案的重要性。
摘要由CSDN通过智能技术生成

虽然第一天的比赛里,我们用ELK成功对日志文件进行解析,并用可视化界面展示数据。但我们不想只限于“搭环境比赛”,而且从第一天的情况来看, ES的性能在有效的资源下已经有点撑不住了。所以决定今天开始自己造轮子。

 

再次分析题目,其实比赛要的是某时间段某源IP、目标IP、请求URL的统计数据,对具体的数据明细并不关心。故我们打算自己写个Agent脚本,读取日志文件,通过socket传输给Server端。Server端对日志文件按行截取,然后利用之前在logStash中写的grok正则表达式来解析需要的信息,然后汇总到redis中。前端页面只负责从redis中获取统计数据。

大概的架构图如下:                        

                                  

 

1. logAgent部分

主要是获取到指定目录下所有的日志文件,多线程对多个文件进行随机读取,建立Socket通道,输出到logServer里

(1)首先用common-io包里的FileAlterationObserver来实现对指定目录下文件的监控

FileAlterationObserver observer = new FileAlterationObserver(path, new FileFilter() {
	public boolean a
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值