Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在大型访问日志中检测可疑/bot IP地址(~30Gb)_R_Hadoop_Bigdata - Fatal编程技术网

R 在大型访问日志中检测可疑/bot IP地址(~30Gb)

R 在大型访问日志中检测可疑/bot IP地址(~30Gb),r,hadoop,bigdata,R,Hadoop,Bigdata,我有大的访问日志~30Gb,我正在寻找找到可疑/bot IP地址的方法。当然,我们可以用IP+用户代理替换IP。因此,我的问题是: 查找从任何IP完成的平均请求数 查找发出的请求数超过平均数的IP地址请参阅上一点 查找每小时定期执行请求的IP地址,例如在白天 您可以提供有关如何检测bot的建议 这个日志相当大,我认为R lang无法处理它。我应该在hadoop或类似的东西后面使用某种存储吗?我绝对没有处理/分析大数据的经验,因此任何想法、建议和TUT/文章都非常感谢。访问日志可能包含大量基于您的

我有大的访问日志~30Gb,我正在寻找找到可疑/bot IP地址的方法。当然,我们可以用IP+用户代理替换IP。因此,我的问题是:

查找从任何IP完成的平均请求数 查找发出的请求数超过平均数的IP地址请参阅上一点 查找每小时定期执行请求的IP地址,例如在白天 您可以提供有关如何检测bot的建议
这个日志相当大,我认为R lang无法处理它。我应该在hadoop或类似的东西后面使用某种存储吗?我绝对没有处理/分析大数据的经验,因此任何想法、建议和TUT/文章都非常感谢。

访问日志可能包含大量基于您的问题您可能不需要的数据,如果您只关心请求的时间和组织IP,那么可以通过在将输入读入R之前从输入中提取列来轻松减少数据大小,一些标准命令行工具(如cut或awk)应该可以做到这一点。
如果您想保留更多详细信息,另一种选择是将access日志加载到数据库中,并将其用于进一步处理,30GB对于数据库来说并不多,但这当然意味着一些额外的工作:设计一个数据库模式,以及在数据库中加载数据的方法

您还可以进行以下类型的分析

获取IP地址的地理位置,并根据地理位置+地理位置时间比较访问频率地理位置白天的访问频率可能正常,但午夜后不会正常 如果您有用户名信息,请检查多个IP地址是否在同一时间段内使用同一用户名 WSO2已经使用他们的分析平台完成了一些异常检测工作,该平台对于大多数异常检测场景来说都是可伸缩的。看看-
这可能是一个比通过R更好的选择,因为它允许您通过类似SQL的查询以及机器学习来进行复杂的事件处理

您还可以进行以下类型的分析

a如果IP地址来自数据中心范围,则可能来自比普通用户更高的机器人

b如果IP地址来自搜索引擎范围,则很可能来自搜索引擎bot


您可以获取地理位置数据库,其中包含用于检测数据中心或搜索引擎的使用类型信息。

Check goaccess.io-适合我。不同网站的日志,分布在多台服务器上。允许使用GEOiP,并在开箱即用的情况下识别机器人

-注意,30gb的数据取决于文件的宽度,最初加载可能需要大约一个小时。所以如果您在一台性能较差的机器或笔记本电脑上工作,请设置它并将其忘记。如果您担心多个请求,那么您在文件的第一个1gb中看到它的可能性与在最后的20gb中看到的相同。。。你有没有试过加载你的数据?@BrandonBertelsen谢谢你提供的bigmemory库提示-我会试试的。大约前1Gb的数据:您的意思是,分析3%的数据片段将显示与整个100%的数据大致相同的结果?有时,是的。但无论哪种方式——看一个样本总是好的。等待。从抽样开始,进行一些探索性的数据分析-基本计数/分布。向ASN总结。分为可管理的块,并尝试使用分块的样本。看一看。另外,你可能知道一些好的交通来源。过滤掉这些,尽量减少体积。