日志服务提供智能巡检功能,支持对日志、指标等数据进行自动化、智能化、自适应的异常巡检。本文介绍智能巡检的背景信息、工作原理、功能特性、基本概念、调度与执行场景和使用建议。

背景信息

基于时间的数据(例如日志、指标)日积月累后会积累大量的数据。例如,某个服务每天产生1000万条数据,则一年大约为36亿条数据。对于这些数据,使用固定巡检规则的人工巡检方式面临以下问题:

  • 效率低:对于异常现场的定位,需要人工配置各种各样的规则去进行异常的捕获。
  • 时效差:大部分时序数据具有时效性特征。故障、变更都会引起对应指标形态的变化,前一种规则条件下的异常可能在下一时刻是正常状态。
  • 配置难:时序数据形态各异。有突刺变化,折点变化,周期变化等诸多形态,阈值范围也各有不同。对于复杂形态下的异常,规则往往难以配置。
  • 效果差:数据流不断动态变化,业务形态日新月异,固定的规则方法很难在新的业态下起作用,从而产生大量的误报或者漏报。对于异常的程度,不同场景,不同用户,对其容忍的程度不同。在排查问题中,有效异常点捕捉的越多,有助于具体问题的排查;而在告警通知中,高危异常点越少,越有助于提升告警处理的效率。

针对以上问题,日志服务推出智能巡检功能,通过自研的人工智能算法,对指标、日志等流数据进行一站式整合、巡检与告警。使用智能巡检功能后,您只需要组织一下具体的监控项,算法模型就会自动为您完成异常检测、业态自适应、告警精细,让您从复杂繁琐的规则配置中解脱出来。

工作原理

日志服务通过消费组或SQL方式抽取或聚合出监控指标,按照调度规则定时拉取数据输入模型,将巡检出来的结果按照事件标准写入目标日志库(internal-ml-log)中,并对异常发送告警通知。具体工作原理如下图所示。

ml

功能特性

日志服务的智能巡检功能的特性如下表所示。

特性 说明
配置监控对象
  • 对于标准时序格式的数据,可以直接配置消费组发起任务。
  • 对于非数值化的日志数据,可以设置SQL语句或查询分析语句,转化成监控指标,发起任务。
定时分析数据 根据需求设置具体的数据特征,配置实体项和指标项。巡检实例自动发现新的监控实体,定时拉取数据进行自动建模与智能分析。模型定时调度最高支持秒级拉取。
参数设置与模型效果预览 不同模型参数设置后支持效果预览,同时对指标时序曲线与异常分数曲线进行可视化。您可以轻松配置最适合当前数据特征的模型参数。
结果输出多渠道 巡检的结果存储到目标Logstore中,异常信息通过告警通知到您。对应的时序特征存储到数据库中,等待您的反馈打标。

基本概念

日志服务的智能巡检功能涉及的基本概念如下表所示。

术语 说明
作业 一个智能巡检任务对应一个作业,包括数据特征、模型参数、告警策略等信息。
实例 一个智能巡检作业按照作业配置生成执行实例。每一个实例针对作业配置定时拉取数据,运行算法模型,分发巡检结果。
  • 一个作业有且生成一个实例,无论是正常被调度还是您触发异常实例重试的情况,不存在多个实例同时执行的情况。
  • 目前不支持参数的热升级。若您修改作业配置后,智能巡检作业会重新创建一个新的实例执行算法模型,与之前的实例无关。
  • 关于不同操作对实例的调度与执行的影响,请参见调度与执行场景
实例ID 执行实例的唯一标识。
创建时间 实例创建的时间。一般是按照您配置的作业规则生成,在补运行或追赶延迟时会立即生成实例。
执行时间 实例开始执行的时间。如果重试作业,则表示最后一次开始执行的时间。
结束时间 实例执行结束的时间。如果重试任务,则表示最后一次执行结束的时间。
执行状态 实例的执行状态。取值:
  • 运行中(RUNNING)
  • 重试中(STARTING)
  • 成功(SUCCEEDED)
  • 失败(FAILED)
数据特征 数据特征包含以下配置:
  • 观测间隔:数据观测采集的时间间隔,也是算法执行分析的时间间隔。由作业规则生成,不会受到上一个实例执行超时、延迟、补运行等情况的影响。大部分场景下,数据流的观测间隔是稳定的。最高支持秒级间隔。
  • 时间项:数据中用于指示观测值时间位置的字段。有且只能指定一个。
  • 实体项:数据中用于指示某一观测实体的若干字段。
  • 特征项:数据中用于指示具体观测数值的字段。可以配置多个。每项特征都可以配置取值范围,从而指导模型进行更精准的异常检测。
算法配置 算法配置包含以下配置:
  • 观测长度:算法用于分析建模所观测的数据点个数。取值范围为[200, 4000]。
  • 敏感度:算法输出的异常分数对异常现场的敏感度,敏感度越高,分数相对越高。
巡检事件 巡检事件包含以下配置:
  • 实体信息:标识当前巡检结果的数据来源。
  • 配置信息:标识当前巡检结果的作业配置。
  • 异常分数:模型对于异常程度的量化结果,取值范围为[0,1]。异常分数>0.75会通过告警发送通知。
  • 异常类型:模型对于异常现场的初步类型判别,包括5种类型:突刺、漂移、抖动、缺失、过阈值。

调度与执行场景

智能巡检作业的调度与执行的主要场景如下表所示。

场景 说明
从当前时间开始执行智能巡检作业 从当前时间发起作业,算法模型没有可分析的历史数据。巡检作业会持续累计200个观测点后再发出巡检事件,并随着观测点的累计提升异常检测的准确度。
从某个历史时间点开始执行智能巡检作业 在当前时间点创建智能巡检作业后,按照作业规则对历史数据进行处理,算法模型会快速消费历史数据,进行模型训练,并逐渐追上当前时间。超过作业创建时间后,发出巡检事件。
修改调度配置 修改调度配置后,下一个实例按照新配置生成。算法模型会记忆当前消费的时间位置,进而对新来的数据继续巡检。
重试失败的实例 如果实例执行失败(例如权限不足、源库不存在、目标库不存在、配置不合法等),系统支持自动重试。若您的状态一直显示启动中,可能是配置失败。错误日志会发送到您的internal-etl-log下,您可以检查下配置并重新发起。调度执行完成后,系统会根据实际执行情况变更实例状态为成功或失败。

使用建议

建议您在使用智能巡检时,根据业务情况,明确具体的监控项,从而进行高效的数据转化与巡检。具体说明如下:

  • 考虑数据上传Logstore的格式,明确字段的具体含义,确定观测时间间隔,从而完成巡检作业的快速配置。
  • 掌握所监控对象的时序数据变化情况,了解其稳定性、周期性,对异常形态有初步预期,从而完成算法参数的合理配置。
  • 按整时(例如整秒、整分钟、整小时)对齐巡检任务时间窗口,从而保证异常事件的告警及时性与多事件关联的准确性。