我最近访问了大量服务器日志数据(在新工作中)。我在大学里有一些机器学习的经验。日志数据包括服务器日志、数据库访问日志等,我想从这样的数据中可以进行什么样的学习。
我尝试过的一件小事是根据过去一周的数据来预测一天中特定时间的请求数量,这看起来不错,但这有点微不足道。所以,
- 从这些数据中可以进行什么样的学习?
- 可能会根据之前垃圾邮件发送者的某些使用模式来预测 IP 对广告进行垃圾邮件点击的概率(是的,该公司对此很感兴趣)?
- 可能会预测流量何时会激增。
- 是否有专门利用的现有工具/项目?
- 有哪些有趣的资源/论文讨论类似的内容?
- 此外,服务器上特定时间段内与进程事件相关的数据。这对学习有用吗?
最佳答案
看看 Wei Xu等人(2010)Experience on Mining Google's Production Console Logs 以及他们引用的工作。简而言之,他们:
- 从源代码中提取日志模板(例如“写入文件%s”),以从日志中提取标识符(日志中与%s对应的东西是标识符)。他们使用某些启发式方法来区分标识符和非标识符(例如时间)。
- 使用值之间的比率而不是原始数字(例如失败与所有提交的比率)
- 使用主成分分析来发现此类特征向量中的异常情况。
您可能无法执行 1。但也许您可以编写自己的“解析器”来提取变量。
还有一个DARPA challenge发现此类数据中的攻击,但那是近 15 年前的事了。
有一些工具,例如 splunk ,但除了一个漂亮的界面之外,它们除了简单的搜索和过滤之外没有提供太多功能。更新: prelert 有一个异常检测插件.
我不知道更多。如果您发现任何其他内容,请告诉我。
那么我会做什么:
- 从日志中提取特征/变量
您可能无法像 Xu 那样访问生成消息的源代码,但我假设大部分日志可以被少量模式覆盖(例如,所有防火墙日志都将具有相同的图案)。您可以编写一个正则表达式解析器,从这些日志中提取特征(例如,连接在特定时间被拒绝)。
- 尝试对它们进行异常检测(PCA,或者只是与平均值的偏差)并进行预测。
关于logging - 服务器日志数据的机器学习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12129449/