编程大赛第三轮总结

2021-09-10 23:17:37阅读 22评论 0

题目回顾

需要从日志文件中分析出结果和见解。有3个日志文件,总共100多万条记录。

实现方案优劣分析

有一点是非常明确的,在对数据进行分析前,必须要先将数据进行处理。对于数据的处理我们想到了3个方案:

1)将数据格式化处理后,按字段存入到数据库
使用程序读取日志文件,每一行通过正则匹配后取出对应字段的数据,然后存入数据库,优点就是实现简单快速,缺点就是有局限性,对于不同格式的日志需要准备不同的正则。

2)将数据存入ES,通过ES对数据索引处理后,再进行分析
这个方案比较通用,将数据处理好后,可以再存入数据库进行复杂的分析,缺点是需要安装ES,索引也会占用一定的硬盘空间。

3)直接读取文件,文件读取完毕后结果就出来了
写代码前需要确定分析的内容,适用于非常固定的分析需求,不具有灵活性,文件过大或过多会影响服务器性能的稳定性。优点是没有持久化的中间数据生成,几乎不占用空间。

我们最终选择方案1+方案2,先快速用现成的ES处理数据,再快速出一个分析结果。然后后我们用程序读取文件,通过正则匹配取出数据存入sqlite数据库。

数据分析

1)操作系统
分析出用户常用的操作系统,我们可以针对主流操作系统版本,将我们的软件进行优化,如老版操作系统还占比较大比例,我们应该继续保持兼容

2)浏览器分布
分析出主流浏览器,便于我们后续对前端的兼容考量

3)请求状态
将请求状态异常的数据进行分析,是否是用户的某个操作习惯导致的异常,便于后期优化程序

4)耗时
统计出最耗时的访问链接,以便于针对性优化,进一步定位问题

5)方法
统计出用户常访问的方法,根据该方法的传输特点,判断是否存在安全漏洞

6)ip访问次数排行
统计出高频访问的ip地址,找到对应的用户,便于准确定位到哪一类用户较为频繁使用服务,以便于我们后期更精准地为其提供软件服务
 

实现效果

1114.png
1115.jpg

后端:python+Django+sqlite

前端:vue+elementUi+v-charts

访问地址:http://150.158.191.127:8000/

还没有评论,来说两句吧