logging - 服务器日志数据的机器学习

标签 logging machine-learning

我最近访问了大量服务器日志数据(在新工作中)。我在大学里有一些机器学习的经验。日志数据包括服务器日志、数据库访问日志等,我想从这样的数据中可以进行什么样的学习。

我尝试过的一件小事是根据过去一周的数据来预测一天中特定时间的请求数量,这看起来不错,但这有点微不足道。所以,

  • 从这些数据中可以进行什么样的学习?
    • 可能会根据之前垃圾邮件发送者的某些使用模式来预测 IP 对广告进行垃圾邮件点击的概率(是的,该公司对此很感兴趣)?
    • 可能会预测流量何时会激增。
  • 是否有专门利用的现有工具/项目?
  • 有哪些有趣的资源/论文讨论类似的内容?
  • 此外,服务器上特定时间段内与进程事件相关的数据。这对学习有用吗?

最佳答案

看看 Wei Xu等人(2010)Experience on Mining Google's Production Console Logs 以及他们引用的工作。简而言之,他们:

  1. 从源代码中提取日志模板(例如“写入文件%s”),以从日志中提取标识符(日志中与%s对应的东西是标识符)。他们使用某些启发式方法来区分标识符和非标识符(例如时间)。
  2. 使用值之间的比率而不是原始数字(例如失败与所有提交的比率)
  3. 使用主成分分析来发现此类特征向量中的异常情况。

您可能无法执行 1。但也许您可以编写自己的“解析器”来提取变量。

还有一个DARPA challenge发现此类数据中的攻击,但那是近 15 年前的事了。

有一些工具,例如 splunk ,但除了一个漂亮的界面之外,它们除了简单的搜索和过滤之外没有提供太多功能。更新: prelert 有一个异常检测插件.

我不知道更多。如果您发现任何其他内容,请告诉我。

那么我会做什么:

  1. 从日志中提取特征/变量

您可能无法像 Xu 那样访问生成消息的源代码,但我假设大部分日志可以被少量模式覆盖(例如,所有防火墙日志都将具有相同的图案)。您可以编写一个正则表达式解析器,从这些日志中提取特征(例如,连接在特定时间被拒绝)。

  • 尝试对它们进行异常检测(PCA,或者只是与平均值的偏差)并进行预测。
  • 关于logging - 服务器日志数据的机器学习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12129449/

    相关文章:

    machine-learning - 属性约简与维度约简

    machine-learning - 提取属性时发生意外异常 Open Vino

    machine-learning - 控制台输出通知 (Spyder)

    java - Junit 测试日志语句

    ruby-on-rails - 503 服务不可用但 heroku 日志显示 200

    python - 哪个记录器在gunicorn 中输出这个?

    machine-learning - 处理 SVM 中缺失的属性

    machine-learning - 是什么使得 k-medoid "better"中的距离测量值比 k-means 中的距离测量值高?

    java - logback 模式在消息后打印 [jar]

    tomcat - 缺少 tc-server log4j 日志记录配置文件。日志记录可能会导致错误