我正在尝试一种无监督的异常检测算法,其中我的数据集仅包含正常日志数据。我已使用日志中的有效载荷列使用 Drain 算法来识别数据中的模式。
所以现在我可以得到以下数据。例如,考虑以下三种已识别的模式。 粗体部分代表键,其值将替换为。 italic 部分表示要用每个替换的值。
实例:未指定> >限制,默认为无限制, ['34ae441714e744fab7a7a154811ee7bc内存']
> GET > HTTP / >。>状态:> len:>时间:>。> ,” ['172.17.0.2','/ v2.1 / f09ddef028834df19337502ece1490c5 / servers / 34ae441714e744fab7a7a154811ee7bc','1.1','200','1783 ','0.1045711']“
实例:>尝试对节点>内存> MB磁盘> GB vcpus > CPU ,“ [[dc3b53790ca14b86abaa003c226412dd”,'wally117:','4096','40','2']“ *
还有更多这样标识的键值对。此外,这些图案会重复出现,并具有不同的值。
首先,我使用 CountVectorizer 对有效负载列中的值进行编码。 ngram(1,1)的形状接近 40000,21000 。我现在不确定下一步是否要进行异常检测,因为只有一种类型的数据,即正常数据。数据集中没有异常数据。
此问题也恰好是与异常检测相关的时间序列。
如果有人可以指导我介绍我应该采取的方法或一些相关的帖子,那将非常有帮助。
谢谢!