日志服务提供文本分析服务,用于对海量日志中的文本内容进行自动化和智能化的检测。本文介绍文本分析功能的背景信息、功能介绍、基本概念、调度与执行场景、使用建议等信息。
背景信息
服务在运行过程中会生成大量的日志,包括系统日志和业务日志等。日志被广泛地应用在系统监控和故障定位中,传统的日志分析手段以分析日志风险等级和匹配关键字为主,例如监控Error级别日志的内容和数量、监控含有Failed、Unsuccessfully等关键词的日志。但是在分布式环境和微服务架构下,以传统的人工方式监控、分析日志越来越困难,主要体现在如下两个方面:
- 系统每天产生的日志量达到TB甚至PB级别,人工分析往往费事费力。
- 在分布式环境和微服务架构中,Warning或者Error日志并不一定意味着系统异常,有可能是由系统正常的扩缩容或者更新迭代产生。因此,在人工分析时需要一定的专业知识,才能高效地定位到日志中的异常情况。
针对以上日志分析的困难情况,如果可以针对日志内容提供自动化、智能化的分析,辅助人工定位日志中的异常,那么一方面可以进一步挖掘日志中的价值,另一方面也可以降低日志异常分析的人工成本。针对文本的自动化、智能化分析应该具备以下特征:
- 可以高效地处理海量日志。
- 可以定位日志中的异常情况,或者缩小需要排查的异常范围。
- 提供可配置的参数使用户可以根据业务需求对日志文本分析进行定制化配置。
针对上述特征,日志服务推出文本分析功能,通过算法对于日志中的文本进行一站式的整合与分析。使用文本分析功能后,您只需要配置具体的监控项和少量的算法参数,算法会自动帮您识别日志中的异常情况,使您聚焦需要关注的日志内容。
功能介绍
目前,文本分析支持通过消费组方式拉取日志中的文本内容,不需要配置索引。文本分析作业按照调度规则定时拉取数据输入文本分析模型,文本分析模型将分析结果写入目标日志库(internal-ml-log)中,并将分析结果绘制为仪表大盘,帮助您快速了解文本分析的结果。
- 配置监控对象:配置待分析的日志字段(字段值为文本内容),然后根据业务需要配置算法参数,发起任务。通过消费组配置日志字段不需要开启索引。
- 定时分析数据:文本分析中的算法以时间窗口为单位分析数据。
- 结果输出:将分析结果输出到目标日志库中,并生成相应的仪表盘对分析结果进行可视化展示。
基本概念
日志服务文本分析功能涉及的基本概念如下表所示。
术语 | 说明 |
---|---|
作业 | 一个文本分析任务对应一个作业,包括数据特征、模型参数等信息。 |
实例 | 一个文本分析作业按照作业配置生成执行实例。每一个实例针对作业配置定时拉取数据,运行算法模型,分发分析结果。
|
实例ID | 执行实例的唯一标识。 |
创建时间 | 实例创建的时间。一般是按照您配置的作业规则生成,在补运行或追赶延迟时会立即生成实例。 |
执行时间 | 实例开始执行的时间。如果重试作业,则表示最后一次开始执行的时间。 |
结束时间 | 实例执行结束的时间。如果重试任务,则表示最后一次执行结束的时间。 |
执行状态 | 实例的执行状态。取值:
|
算法配置 | 算法配置包含时间窗口长度、异常总数阈值、模板源等。更多信息,请参见算法配置。 |
文本分析结果 | 本文分析结果包含日志模板、日志等级、日志类别、配置信息和异常分数等信息。更多信息,请参见查看文本分析结果。 |
调度与执行
一个作业可生成一个或多个实例,无论是正常被调度还是您触发异常实例重试的情况,同时只有一个实例处于运行中,不存在多个实例并发执行的情况。主要的调度与执行场景如下:
- 场景一:从当前时间开始文本分析作业。从当前时间发起作业,算法模型没有可分析的历史数据。文本分析作业会在配置的初始化窗口中训练模型,在初始化阶段会对异常结果进行一定的抑制。之后算法模型会动态适配输入的数据,进行持续更新。
- 场景二:修改调度配置对生成实例的影响。修改调度配置后,下一个实例按照新配置生成。算法模型会记忆当前消费的时间位置,进而对新来的数据继续分析。
- 场景三:重试失败的实例。如果实例执行失败(例如权限不足、源库不存在、目标库不存在、配置不合法),系统支持自动重试。如果您的状态一直显示启动中,可能是配置失败。错误日志会发送到您的internal-etl-log下,您可以检查下配置并重新发起。调度执行完成后,系统会根据实际执行情况变更实例状态为成功或失败。
使用建议
使用文本分析时,建议根据业务情况明确具体的监控项,从而对数据进行高效的分析。
- 明确日志中需要分析的文本字段,如果指定太多无关字段,可能会影响分析效果,降低分析速度。
- 掌握所监控对象的时序数据变化情况,了解其稳定性和周期性,对异常形态有初步预期,从而对算法参数进行更合理的配置。