探测引擎中每个部件的特定功能是:
分布跟踪软件。与Skywalking、Sidecar相比较,Jaeger能够 获得最多的数据字段,并且能够 检测到最多的异常场景,不过,Jaeger需要在业务系统的源代码中插入一根桩,这对于开发团队来说更具侵略性。Sidecar方式沒有源代码和镜像系统,可是利用端口转发捕获数据流量的方式也确定了它无法获得丰富的上下文,如云原生应用的API调用关系树(TraceID)。对于具有较低侵入性的采集工具收集的数据,实现异常检测覆盖更多场景还需要大量的后续工作。
资料过滤和整合模块。本模块的主要功能是在数据集中对脏数据进行过滤,并提取能够表示业务系统行为的数据。用API调用关系树、服务名、操作名、HTTPPOST参数,等等来表示业务系统行为的数据。
资料培训模块。利用采用机器学习或统计的方法,训练出商业系统中的正常行为,并根据商业系统的正常行为生成特征数据。先验知识为,在商业系统中大量存在的行为是正常行为,少量的训练行为属于异常行为。培训过程中,训练模型参数需根据专家知识的检验结果不断调整。
探测发动机。利用对商业系统的当前数据和特征数据库中的数据进行检索匹配,利用序列相似性计算等方法,找到特征数据库中与当前行为最匹配的特征数据。探测引擎需要将特征数据与当前数据的相似程度与基线进行比较,如果比较显示当前行为与正常行为之间的差异在基线限制之内,就是正常行为,如果超过基线限制,就是一个异常行为。在基线上,首先要根据专家知识设定合理的初始基线,并根据不同的情景,使用非监督模型,自行调整基线,或者由运营人员手工维护。